【发布时间】:2020-08-17 22:05:52
【问题描述】:
我有一个产品列表,目前我正在实现各种过滤器功能。
每个产品都有 12 个变体,每个变体都有不同的价格。
每个产品都有定义为默认的“最便宜”变体(通过产品的默认属性属性)
我想调整 pre_get_posts 操作中的 wordpress 查询,以仅匹配最高和最低价格之间的产品 - 然而,正在寻找在 postmeta 中,我看到产品的每个变体都有一个条目 - 例如
product_id: 10, _price: 100 (-> default variation)
product_id: 10, _price: 110
product_id: 10, _price: 120
product_id: 11, _price: 110 (-> default variation)
product_id: 11, _price: 120
product_id: 11, _price: 130
....
如果我这样做:
$currentMetaQuery = $query->get('meta_query');
$currentMetaQuery[] = [
'key' => '_price',
'value' => array($minMax['min'], $minMax['max']),
'type' => 'numeric',
'compare' => 'BETWEEN'
];
$query->set('meta_query', $currentMetaQuery);
最小 110 和最大 200 我得到 ID 为 10 和 11 的产品(因为这两种产品都包含与过滤器查询匹配的变体)
如何: 我希望默认变体作为过滤的基础意思 -> 上面的查询应该只返回 ID 为 11 的产品。
所以查询实际上应该是这样的: 将查询限制在产品默认变体价格介于最低和最高之间的产品...
有人知道怎么做吗?
感谢您提供给我的任何意见或解决方案!
【问题讨论】:
标签: php wordpress woocommerce product-variations