Поддержка WooCommerce Фильтр по товарам дешевле/дороже чем

  • Помогите правильно составить запрос.
    На сайте есть товары дороже 40000 и дешевле.
    Мне нужно выбрать те, что дешевле.
    В результате запроса по коду ниже в $featured_query попадают только простые товары, а вариации игнорируются.
    Как мне сделать, чтобы вариативные товары тоже попадали в выборку?

    $args = array(
     'post_type' => 'product',
     'post_status' => 'publish',
     'relation' => 'AND'
    );
    ....
    $yfymp_compare_value = (int)$yfymp_compare_value; // сумма
    $args['meta_query'] = array('relation' => 'OR',
     array(
     'key' => '_regular_price', // цена базовая
     'value' => $yfymp_compare_value,
     'compare' => '<',
     'type' => 'numeric'
    ),
    array(
     'key' => '_sale_price', // цена распродажи
     'value' => $yfymp_compare_value,
     'compare' => '<',
     'type' => 'numeric'
    ),
    );
    $featured_query = new WP_Query($args);
    

    Т.е сейчас даже если у товара 2 вариации и в одном варианте она стоит 10000, а в др 20000 (т.е обе вариации удовлетворяют условию), в $featured_query все равно не попадает.
    С обычными товарами проблем нет. Данный код фильтрует их как надо.

    • Тема изменена 4 года, 11 месяцев назад пользователем icopydoc.
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Зачем изобретать велосипед, если виджет фильтрации по цене есть в штатном функционале WC. И он корректно работает с вариативными товарами
    https://docs.woocommerce.com/document/woocommerce-widgets/

    Затем, что мне это не для виджета нужно вовсе.
    Это для моего плагина, который формирует фид экспорта на другие сайты по определенным условиям. Условий очень много.
    Собственно вопрос прежний. Что в приведенном мною примере, в запросе не так? Почему попадают только простые товары, а вариативные пропускаются?

    Модератор Yuri

    (@yube)

    Почему попадают только простые товары, а вариативные пропускаются?

    Потому что 'post_type' => 'product'

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Фильтр по товарам дешевле/дороже чем» закрыта для новых ответов.