[英]How to show New Products in custom woocommerce shortcode
我想编辑 woocommerce 产品简码以仅显示没有价格的产品; 创建新产品时,它没有价格值(不为空,不为空)。 如何过滤没有价格的新产品?
我使用'value' => ''但我的简码不显示新产品。 当我为新产品设置价格然后将其删除时,该产品会显示在我的简码中。 我的简码是: [products class="bp-noprice"]
add_filter( 'woocommerce_shortcode_products_query', 'biapin_filter_woocommerce_shortcode_products_query', 10, 3 );
function biapin_filter_woocommerce_shortcode_products_query( $query_args, $atts, $loop_name ) {
if ( $atts['class'] == 'bp-noprice' ) {
$query_args['meta_query'] = array (
array(
'key' => '_price',
'value' => '',
'compare' => 'IN',
),
);
}
return $query_args;
}
这会将简码更新为仅显示没有价格的简单产品。 0.00 的价格是指某物有价格,但已被移除。 NOT EXISTS
存在的价格是在 new 中输入的产品,但价格字段为空。 如果您只想要后者,那么您可以调整查询并删除0
条件。
请注意,此查询将是一个包含 tax_query 选项的slow query
。
add_filter( 'woocommerce_shortcode_products_query', 'biapin_filter_woocommerce_shortcode_products_query', 10, 3 );
function biapin_filter_woocommerce_shortcode_products_query( $query_args, $atts, $loop_name ) {
if ( 'bp-noprice' === $atts['class'] ) {
$query_args['meta_query'] = array(
'relation' => 'OR',
array(
'key' => '_price',
'value' => '0',
'compare' => '=',
'type' => 'NUMERIC',
),
array(
'key' => '_price',
'compare' => 'NOT EXISTS',
),
);
$query_args['tax_query'] = array(
array(
'taxonomy' => 'product_type',
'field' => 'slug',
'terms' => array( 'simple' ),
),
);
}
return $query_args;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.