对于这个问题,我知道如何解决,但我希望有更好/更快的方法来解决它。
我的产品循环中有一个自定义元查询,如果库存为0,它不会显示我的产品,但我只想在产品的缺货订单设置为否时执行此操作。如果不运行2个查询(一个获取所有帖子并检查是否启用了缺货订单,另一个仅在未启用缺货订单时执行元查询),这是否可行?
这是我的自定义元查询functions.php
:
add_action( \'woocommerce_product_query\', \'woo_custom_outofstock_query\' );
function woo_custom_outofstock_query( $q ) {
$meta_query = $q->get( \'meta_query\' );
$meta_query[] = array(
\'key\' => \'_stock\',
\'value\' => \'0.000000\',
\'compare\' => \'NOT IN\'
);
$q->set( \'meta_query\', $meta_query );
}
编辑:我将查询更改为:
$meta_query = $q->get( \'meta_query\' );
$meta_query[] = array(
\'key\' => \'_stock\',
\'value\' => \'0.000000\',
\'compare\' => \'NOT IN\'
);
$meta_query[] = array(
\'key\' => \'_backorders\',
\'value\' => \'no\',
\'compare\' => \'!=\'
);
$q->set( \'meta_query\', $meta_query );
这应该可以做到,但由于某些原因,它仍然不起作用。此外,当我在WooCommerce设置中隐藏缺货产品时,当启用缺货订单时,它仍然不会显示库存为0的产品。