无法同时获得有库存和无库存的产品WC_Product_Query Woocommerce

时间:2018-09-26 08:54:04

标签: php wordpress woocommerce filtering

我正在使用新的WC_Product_Query获取库存报告的产品,但到目前为止,我只能在查询中设置“有货”或“无货”。

我该如何设置查询以获取所有产品而不论库存状态如何,还是将其设置为仅获取有库存和无库存产品,因为我们不使用缺货订单?

$query = new WC_Product_Query( array(
                        'orderby' => 'title',
                        'order' => 'ASC',
                        'return' => 'ids',
                        'category' => $club_cat,
                        'limit' => -1,
                    ) );

值得一提的是,如果我使用'stock_status' => 'outofstock',,我将不会退回任何产品,而'stock_status' => 'instock',只退回有库存的产品。

我不确定是否与此相关,但是我们使用简单和可变产品的组合,其中一些是在产品级别进行库存管理的,而另一些则是在库存管理的 在变体级别。

感谢您的阅读:)

1 个答案:

答案 0 :(得分:1)

您的代码运行完美。我已经测试了这个查询:

$query = new WC_Product_Query( array(
    'orderby' => 'title',
    'order' => 'ASC',
    //'return' => 'ids',
    'limit' => -1,
    'stock_status' => 'outofstock',
) );
  

重要注意事项: WC_Product_Query不会循环生成产品变体,因为它仅适用于“产品”帖子类型。

因此,您最好使用WP_Query 来代替,即使计划在将来的WooCommerce版本中进行数据库更改,而且无论如何也不会出现这种情况。 WC_Product_QueryWC_Order_Query仍然需要很大的增强,例如它们非常有限。