У меня есть список продуктов, и в настоящее время я реализую различные функции фильтра.
Каждому продукту присвоено 12 вариантов, и каждому варианту назначена своя цена.
Каждый В продукте есть «самый дешевый» вариант, определенный по умолчанию (через свойство атрибутов продукта по умолчанию)
Я хочу адаптировать запрос wordpress в действии pre_get_posts для соответствия только продуктам между максимальной и минимальной ценой - однако , глядя на постмету, я вижу, что для каждого варианта продукта есть запись - например,
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, я получу продукты с идентификаторами 10 и 11 (поскольку оба продукта содержат варианты, которые соответствует запросу фильтра)
hower: Я хочу, чтобы вариации по умолчанию были основой для фильтрации значение -> приведенный выше запрос должен возвращать только продукт с идентификатором 11.
Таким образом, запрос на самом деле должен выглядеть примерно так: ограничить запрос продуктами, где вариант продукта по умолчанию имеет цену в диапазоне от минимальной до максимальной ...
У кого-нибудь есть идеи, как это сделать?
Спасибо за любой вклад или решения, которые вы могли бы показать мне!