[英]What is the best approach to checking stock in a Woocommerce meta query
我正在两个产品之间创建一种单向关系,“链接到”产品输出“链接自”产品的产品信息。
我可以使用自定义字段创建关系,并使用元查询根据该字段生成结果,但我还需要检查“链接自”产品是否仍然有货(如果没有库存管理),或库存数量大于 0。
这是我到目前为止采用的方法,它不返回任何匹配结果(当确实有匹配时):
$the_query = new WP_Query(array(
'posts_per_page' => -1,
'post_type' => 'product',
'meta_key' => 'exact_new_version',
'meta_value' => $product->get_id(),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => '_stock_status',
'value' => array('instock'),
'compare' => 'IN',
),
array(
'key' => '_stock_quantity',
'value' => 0,
'compare' => '>'
)
)
));
另一种方法是检查查询循环中返回的匹配项的存量,但我认为这效率要低得多。
通过将两组关联数组传递到具有 AND 关系的元查询中,我设法获得了预期的结果,其中一组(检查库存)包含另外两个嵌套关联。 具有 OR 关系的数组。
本质上,元值必须匹配“instock”项目(如果未使用库存控制)或库存“> 0”的项目,如果它是:
$the_query = new WP_Query(array(
'posts_per_page' => -1,
'post_type' => 'product',
'meta_query' =>
array(
'relation' => 'AND',//*
array(
'key' => 'new_version',
'value' => $product->get_ID(),
'compare' => 'LIKE',
),
array(
'relation' => 'OR', //**
array(
'key' => '_stock_status',
'value' => array('instock'),
'compare' => 'IN',
),
array(
'key' => '_stock_quantity',
'value' => 0,
'compare' => '>',
),
),
),
));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.