Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 商业中的多订单_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 商业中的多订单

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

我想按平均评分(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)和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;
}