首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Woocommerce: woocommerce查询库存数量、简单和多样化的产品

Woocommerce: woocommerce查询库存数量、简单和多样化的产品
EN

Stack Overflow用户
提问于 2018-09-23 13:24:35
回答 1查看 1.4K关注 0票数 2

我将为woocommerce产品编写一个查询,以显示有stock = 1的产品。此外,如果产品是可变的,并且任何变量都有stock =1,那么这个查询应该包括其中。例如:

产品一:

  • 简单
  • 库存数量:1

产品二:

  • 简单
  • 库存数量:5

产品三:

  • 变化
  • 变量1:
  • 库存数量:1
  • 变量2:
  • 库存数量:4
  • 变量3:
  • 库存数量:7

产品四:

  • 变化
  • 变量1:
  • 库存数量:3
  • 变量2:
  • 库存数量:2
  • 变量3:
  • 库存数量:5

因此查询应该返回product和Product3。

我使用了以下查询:

代码语言:javascript
复制
$query = array(
        'relation' => 'AND',
        array(
            'key'     => '_stock_status',
            'value'   => 'instock',
            'compare' => '='
        ),
        array(
            'key'     => '_stock',
            'type'    => 'numeric',
            'value'   => '1',
            'compare' => '='
        ),
    ); 

但是,它不能工作返回产品三。你能帮帮我吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-23 14:39:18

您需要将post类型的product_variation用于变体产品& product,这样也可以过滤可变产品。

因此,您可以进行以下操作:

代码语言:javascript
复制
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 );
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52466523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档