• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Удалить фильтр товаров в главной категории

sekiro

Новичок
Товарищи, прошу помощи. Хочу удалить виджет фильтра товаров с главной категории, а оставлять только в субкатегориях. Использую дефолтный фильтр от Woocommerce "Фильтр по атрибутам". Его функционал вполне устраивает. Для решения задачи использую приведенный ниже код. Взят он из тостера, а опубликован WP_Panda. Но как вы могли догадатся, не работает. Помогите разобрать код. Ниже напишу свой разбор, прошу дополнить и поправить, если будут ошибки.

PHP:
add_action('init','wpp_remove_filter_in_specific_cat');
function wpp_remove_filter_in_specific_cat(){
    if(is_product_category( 'ссылка на категорию' ) ) {
        remove_action('woocommerce_before_shop_loop','функция из плагина фильтра которая вешает фильтр на экшен смотреть ее в плагине', 'приоритет с которым повешена функция на экшен смотреть ее там же');
    }
}


add_action - прикрепляет ф-ю на хук. В неё надо передавать 4 параметра, но тут 2. Ошибка?
is_product_category - проверяю нахожусь ли в указаной категории, если да, удаляю фильтр. Как правильно указывать ссылку? 'santehnika'?
remove_action - удяляю хук. Вопрос правильно ли Панда указал 1 параметр? И где брать 2 и 3. 2 вроде нашел, WC_Widget_Layered_Nav_Filters.
Проясните пожалуйста.
 

ADv

Гуру
Местный
Товарищи, прошу помощи. Хочу удалить виджет фильтра товаров с главной категории, а оставлять только в субкатегориях. Использую дефолтный фильтр от Woocommerce "Фильтр по атрибутам". Его функционал вполне устраивает. Для решения задачи использую приведенный ниже код. Взят он из тостера, а опубликован WP_Panda. Но как вы могли догадатся, не работает. Помогите разобрать код. Ниже напишу свой разбор, прошу дополнить и поправить, если будут ошибки.

PHP:
add_action('init','wpp_remove_filter_in_specific_cat');
function wpp_remove_filter_in_specific_cat(){
    if(is_product_category( 'ссылка на категорию' ) ) {
        remove_action('woocommerce_before_shop_loop','функция из плагина фильтра которая вешает фильтр на экшен смотреть ее в плагине', 'приоритет с которым повешена функция на экшен смотреть ее там же');
    }
}


add_action - прикрепляет ф-ю на хук. В неё надо передавать 4 параметра, но тут 2. Ошибка?
is_product_category - проверяю нахожусь ли в указаной категории, если да, удаляю фильтр. Как правильно указывать ссылку? 'santehnika'?
remove_action - удяляю хук. Вопрос правильно ли Панда указал 1 параметр? И где брать 2 и 3. 2 вроде нашел, WC_Widget_Layered_Nav_Filters.
Проясните пожалуйста.
add_action - не ошибка.
is_product_category - либо слаг рубрики 'santehnika', либо ее ID, как вариант. Можно передавать массивом, но придется чутку дописать.
remove_action - woocommerce_before_shop_loop - область до цикла вывода товаров / подкатегорий. WC_Widget_Layered_Nav_Filters - неверно. Вам нужно найти add_action, выполняющий нужное действие, и его убирать. В целом, ищете add_action в плагине, удаляете его с помощью remove_action, при условии нахождения в нужной рубрике, и вешаете это на свой add_action('init','wpp_remove_filter_in_specific_cat') (чото расписал в обратном порядке, но, надеюсь, суть ясна).
 
Последнее редактирование:

sekiro

Новичок
Да, я понял суть. Прописал массивом в функцию is_product_category. Где искать add_action который нужно убрать? Это не знаю. В my_site.com/www/wp-content/plugins/woocommerce/includes/widgets ?
 
Сверху Снизу