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_variationproduct,以便您也可以过滤可变产品。

因此您可以执行以下操作:

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 查询库存数量简单和可变产品的主要内容,如果未能解决你的问题,请参考以下文章

Oracle函数-单行函数-字符单行函数

Oracle函数-单行函数-数字日期日期处理函数

Oracle函数-单行函数-转换函数条件表达式

当创客空间比创客还多 想要活先加张床

woocommerce怎么变成英文

如何开发一个woocommerce插件