[英]WP_Query Woocommerce Filter Variable Products by Attributes and Variations Regular Price
我有可变产品,它的属性名为:“数量”,其中有“ 100”,“ 200”,“ 500”之类的变体。 所有这些变化都有正常的价格。 我想过滤并显示数量变化为'200'且价格为正常价格10的变量产品。
我正在使用此代码,但它显示的是数量变化为'200'的所有产品,但未按变化的常规价格进行过滤。
$query = array(
'post_status' => 'publish',
'post_type' => array('product', 'product_variation'),
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'pa_quantity',
'field' => 'term_id',
'terms' => '67',
),
'meta_query' => array(
array(
'key' => '_regular_price',
'value' => 10,
'compare' => '=',
'type' => 'NUMERIC'
),
),
)
);
例如,我使用的是数量属性的术语200的ID(即67)。
所以,我终于找到了答案...这可能会在将来对某人有所帮助。
这是查询,该查询将首先为具有术语ID 75的属性Quantity过滤变量产品,然后将进一步为价格为500的变化过滤结果。
$query = array(
'post_status' => 'publish',
'post_type' => array('product', 'product_variation'),
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'pa_quantity',
'field' => 'term_id',
'terms' => '75',
),
),
'meta_key' => '_price',
'meta_value' => 500,
);
$wc_query = new WP_Query($query);
在示例代码中,您没有在放入元查询之前关闭tax_query数组。
另外,如果您只有一个元字段值,则可以尝试不使用元查询。 而是定义元键和元值,如下所示:
$query = array(
'post_status' => 'publish',
'post_type' => array('product', 'product_variation'),
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'pa_quantity',
'field' => 'term_id',
'terms' => '67',
),
),
'meta_key' => '_regular_price',
'meta_value' => 10,
);
以下是查询的正确版本,在启动meta_query之前关闭tax_query
$query = array(
'post_status' => 'publish',
'post_type' => array('product', 'product_variation'),
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'pa_quantity',
'field' => 'term_id',
'terms' => '67',
),
),
'meta_query' => array(
array(
'key' => '_regular_price',
'value' => 10,
'compare' => '=',
'type' => 'NUMERIC'
),
),
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.