Php 商业中的多订单
我想按平均评分(DESC)和价格(ASC)在分类页面中订购我的产品 顺序:3,2,1 所以我试着:Php 商业中的多订单,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我想按平均评分(DESC)和价格(ASC)在分类页面中订购我的产品 顺序:3,2,1 所以我试着: $args['meta_key'] = '_wc_average_rating'; $args['orderby'] = array( 'meta_value_num' => 'DESC', 'price' => 'ASC', ); 但它们不是按价格订购的。我还用\u price替换了price,结果相同 我正在使用WordPress(4.8)和WooCommerc
$args['meta_key'] = '_wc_average_rating';
$args['orderby'] = array(
'meta_value_num' => 'DESC',
'price' => 'ASC',
);
但它们不是按价格订购的。我还用\u price
替换了price
,结果相同
我正在使用WordPress(4.8)和WooCommerce(3.0.8)的最新版本
编辑:
如果我使用:
$args['meta_key'] = '_wc_average_rating';
$args['orderby'] = array(
'meta_value_num' => 'DESC',
'ID' => 'DESC',
);
订单按例外情况运行,先按平均评级进行描述,然后按ID进行描述。因此,我必须用
price
更改ID
,但我无法使其工作。通过传递带有参数的订单来检查
看看这些
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'sort_by_type' == $orderby_value ) {
$args['orderby'] = 'meta_value_num title';
$args['order'] = 'ASC';
$args['meta_key'] = 'sort_by_type';
}
if ( '_wc_average_rating' == $orderby_value ) {
$args['orderby'] = 'meta_value_num title';
$args['order'] = 'DESC';
$args['meta_key'] = '_wc_average_rating';
}
return $args;
}
它不起作用,返回:3,2,1。我认为这是默认顺序或类似的东西…两者都是不同的条件,或者你想要两者结合?在这里也列出订单(您需要2,1,3)?带有\u wc\u average\u评级的订单为3,2,1。使用按类型排序
返回0个产品。完美!谢谢您。
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'sort_by_type' == $orderby_value ) {
$args['orderby'] = 'meta_value_num title';
$args['order'] = 'ASC';
$args['meta_key'] = 'sort_by_type';
}
if ( '_wc_average_rating' == $orderby_value ) {
$args['orderby'] = 'meta_value_num title';
$args['order'] = 'DESC';
$args['meta_key'] = '_wc_average_rating';
}
return $args;
}