我将为woocommerce产品编写一个查询,以显示具有stock = 1的产品。如果该产品是变量并且任何变量具有stock = 1,则此查询中也应包括该查询。 例如:
产品一:
产品二:
产品三:
产品四:
因此查询应返回产品1和产品3。
我使用以下查询:
$query = array(
'relation' => 'AND',
array(
'key' => '_stock_status',
'value' => 'instock',
'compare' => '='
),
array(
'key' => '_stock',
'type' => 'numeric',
'value' => '1',
'compare' => '='
),
);
但是,返回产品三无效。 你能帮我吗?
提前谢谢。
答案 0 :(得分:0)
您需要为差异产品&product_variation
添加帖子类型product
,以便也可以过滤变量产品。
因此您可以执行以下操作:
add_action( 'woocommerce_product_query', 'modify_query', 10, 2 );
function modify_query( $q, $instance ) {
$post_type = array( 'product', 'product_variation' );
$q->set( 'post_type', (array) $post_type );
$meta_query[] = [
'relation' => 'AND',
[
'key' => '_stock_status',
'value' => 'instock',
'compare' => '=',
],
[
'key' => '_stock',
'type' => 'numeric',
'value' => '1',
'compare' => '=',
],
];
$q->set( 'meta_query', $meta_query );
}