Woocommerce:woocommerce 查询库存数量简单和可变产品
Posted
技术标签:
【中文标题】Woocommerce:woocommerce 查询库存数量简单和可变产品【英文标题】:Woocommerce: woocommerce query for stock quantity simple and varibale products 【发布时间】:2019-02-27 05:01:15 【问题描述】:我将为 woocommerce 产品编写一个查询,以显示库存 = 1 的产品。此外,如果产品是可变的并且任何变量的库存 =1 都应包含在此查询中。 例如:
产品一:
简单 库存数量:1产品二:
简单 库存数量:5个产品三:
变化 变量一: 库存数量:1 变量二: 库存数量:4个 变量三: 库存数量:7产品四:
变化 变量一: 库存数量:3个 变量二: 库存数量:2个 变量三: 库存数量:5个所以查询应该返回产品 1 和产品 3。
我使用了以下查询:
$query = array(
'relation' => 'AND',
array(
'key' => '_stock_status',
'value' => 'instock',
'compare' => '='
),
array(
'key' => '_stock',
'type' => 'numeric',
'value' => '1',
'compare' => '='
),
);
但是,退回产品三是不行的。 你能帮帮我吗?
提前致谢。
【问题讨论】:
【参考方案1】:您需要为变体产品添加帖子类型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 );
【讨论】:
您好,感谢您的帮助。我在 woocommerce 默认查询中使用此查询。所以我必须在“woocommerce_product_query”操作中使用它。因此,我对其进行了测试,结果显示了 woocommerce 存档页面中的所有变化(意味着具有相同标题和缩略图但 URL 不同的重复产品)。你有什么想法吗? 另外,在您的示例中,那里存在重复的结果。如果变异库存为 1,我需要显示主要产品作为结果。感谢您的帮助 @Reza 我刚刚修改了我的答案,现在请检查一下以上是关于Woocommerce:woocommerce 查询库存数量简单和可变产品的主要内容,如果未能解决你的问题,请参考以下文章