gpt4 book ai didi

php - 如何通过 post_meta 选择 WooCommerce 产品并订购

转载 作者:行者123 更新时间:2023-11-29 18:07:57 25 4
gpt4 key购买 nike

我使用以下代码来选择具有以下 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',
)
));

}

}

我希望产品按以下顺序显示:

  1. 新产品
  2. 旧产品
  3. 产品_几乎_新

我正在使用 $q->set('orderby', array(......) 但这没有效果。我的产品总是被订购 product_old, Product_almost_newproduct_new

有什么想法为什么我的“orderby”不起作用?如有任何帮助,我们将不胜感激。

最佳答案

除了一件事之外,你做的都很好。您在 orderby 中使用了数组中的数组,这是不正确的。它应该是这样的:

$q->set('orderby', array(
'product_new' => 'DESC',
'product_almost_new' => 'DESC',
'product_old' => 'DESC',
)
);

关于php - 如何通过 post_meta 选择 WooCommerce 产品并订购,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47672396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com