• Resolved arkadiy1

    (@arkadiy1)


    Здравствуйте! (в одном из топиков было написано что можно писать на русском)))

    Помогите пожалуйста решить проблему, я вывожу ваш фильтр на странице магазина и в настройках указываю исключить из выдачи категорию, при этом из select категория пропадает, но в самой выдаче товары из этой категории сохраняются(
    я воспользовался кодом который удаляет эту категорию из стандартной выдачи woocommerce –

    /**
    * Exclude products from a particular category on the shop page
    */
    function custom_pre_get_posts_query( $q ) {
    if (is_shop()){
    $tax_query = (array) $q->get( ‘tax_query’ );
    $tax_query[] = array(
    ‘taxonomy’ => ‘product_cat’,
    ‘field’ => ‘slug’,
    ‘terms’ => array( ‘souvenirs’ ), // Don’t display products in the clothing category on the shop page.
    ‘operator’ => ‘NOT IN’
    );
    $q->set( ‘tax_query’, $tax_query );
    }
    }
    add_action( ‘woocommerce_product_query’, ‘custom_pre_get_posts_query’ );

    после этого когда заходишь на страницу магазина, товаров из исключенной категории нет, но стоит сбросить фильтр эти товары снова появляются, я так понимаю это плагин отрабатывает собственный вывод? Как мне на это можно повлиять, что бы товары из определенной категории вообще не выводились на странице магазина? Заранее спасибо!

Viewing 5 replies - 1 through 5 (of 5 total)
  • pavloborysenko

    (@pavloborysenko)

    Здравствуйте

    Да. Исключить терм в фильтре не влияет на выдачу. Это влияет только на отображение самого фильтра.

    Далее у Вас правильный подход:

    Если Вы используете Ajax режим или шорткод [woof_products] – используйте этот хук woof_products_query что бы добавить Ваш запрос

    Если Вы не используете ajax режим и Ваш код не работает – попробуйте использовать parse_query с приоритетом 10000

    Thread Starter arkadiy1

    (@arkadiy1)

    Шорткод не использую, а Ajax включен. То есть вы имеете в виду к моему коду дописать еще один экшн, я правильно понял?

    add_action( ‘woof_products_query’, ‘custom_pre_get_posts_query’ );

    К сожалению, после этого фильтр пишет что вообще не найдено ни одного товара( Наверное я все таки делаю что то не так?

    pavloborysenko

    (@pavloborysenko)

    Здравствуйте

    Вы правильно меня поняли. Но только это фильтр( add_filter ) и нужно использовать немного другую функцию. И обязательно возвращать запрос

    Thread Starter arkadiy1

    (@arkadiy1)

    Здравствуйте.

    А вы не подскажите какую именно другую функцию?)) Или в каком направлении рыть? У вас в документации я ничего подобного не нашел( не хочется отказываться от вашего плагина. И еще можно вопрос) а какой смысл исключать из фильтра категорию, если она все равно показывается в выдаче?) Или это уже премиум версия нужна что бы выдача тоже учитывалась?)

    pavloborysenko

    (@pavloborysenko)

    Здравствуйте

    Какой смысл? – Динамический пересчет + отображение связанных фильтров

    Или в каком направлении рыть? – Используйте этот фильтр woof_products_query

    передается запрос – также добавьте Ваш запрос как здесь – https://c2n.me/3UL7whj.png

    и возвратите запрос return $q;

Viewing 5 replies - 1 through 5 (of 5 total)

The topic ‘Filter problem’ is closed to new replies.