Как сделать так чтобы фильтр работал при выбранной родительской категории, если товары находятся в подкатегориях?

Ссылка скопирована
1 ответ

Как сделать так чтобы фильтр работал при выбранной родительской категории, если товары находятся в подкатегориях?

У меня на сайте есть следующая структура категорий
Чехлы (0)
Чехлы для AirPods (0)
Чехлы для AirPods 1,2 (20)
Чехлы для AirPods Pro (30)
Есть атрибут "Модель" где пользователь может выбрать модель его наушников
И если пользователь перешел в категорию Чехлы для AirPods (0) , то фильтры не будут работать
Фильтры работают только в самой нижней категории

Дополнительно

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
WordPress-редакция Ответ

Если товары лежат в подкатегориях, а фильтр не работает при выбранной родительской категории, значит запрос фильтра смотрит только прямую категорию товара и не учитывает дочерние термины. В WooCommerce товары обычно привязаны к конечным подкатегориям, а не к родителю.

Для tax query нужно включить детей:

'tax_query' => [
    [
        'taxonomy' => 'product_cat',
        'field' => 'term_id',
        'terms' => $parent_category_id,
        'include_children' => true,
    ],
]

'tax_query' => [ [ 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $parent_category_id, 'include_children' => true, ], ]

Если фильтр работает через GET-параметр, сначала получите ID текущей категории и все дочерние:

$term_ids = get_term_children($parent_category_id, 'product_cat');
$term_ids[] = $parent_category_id;

$term_ids = get_term_children($parent_category_id, 'product_cat'); $term_ids[] = $parent_category_id;

И передайте их в запрос:

'terms' => $term_ids,
'operator' => 'IN'

'terms' => $term_ids, 'operator' => 'IN'

Если используете готовый фильтр-плагин, ищите настройку вроде «Include child terms», «Search in subcategories», «Hierarchical filtering». У многих фильтров это отдельная опция.

Также проверьте, не смешаны ли категории товаров product_cat с обычными рубриками WordPress category. Для WooCommerce нужен именно product_cat.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно