我正在使用以下代码选择包含以下post_meta键的产品:_product_new
,_product_almost_new
和_product_old
。
我的代码:
add_action( 'woocommerce_product_query', 'custom_vtp_shop_order' );
function custom_vtp_shop_order($q){
if ( ! $q->is_main_query() ) return;
if (! is_admin() && (is_shop() || is_archive) ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'Sold', 'Service' ),
'operator' => 'NOT IN'
)));
$q->set('meta_query', array(array(
'relation' => 'OR',
'product_new' => array(
'key' => '_product_new',
'value' => '1',
),
'product_almost_new' => array(
'key' => '_product_almost_new',
'value' => '1',
),
'product_old' => array(
'key' => '_product_old',
'value' => '1',
)
)));
/*THIS HAS NO EFFECT*/
$q->set('orderby', array(array(
'product_new' => 'DESC',
'product_old' => 'DESC',
'product_almost_new' => 'DESC',
)
));
}
}
我希望产品按以下顺序显示:
我正在使用$ q-> set('orderby',array(......)但这没有效果。我的产品总是被订购product_old
,product_almost_new
,product_new
。
为什么我的'orderby'无效?任何帮助表示赞赏。
答案 0 :(得分:0)
$q->set('orderby', array(
'product_new' => 'DESC',
'product_almost_new' => 'DESC',
'product_old' => 'DESC',
)
);