Как сделать так, чтобы многоуровневый виджет Woocommerce работал на странице товаров

Я добавил многоуровневый виджет навигации Woocommerce на боковую панель моего магазина. На главной странице отображаются категории, когда пользователь нажимает на какую-либо категорию, на странице отображаются подкатегории, а после выбора подкатегории пользователь видит товары.

Моя проблема в том, что многоуровневый виджет навигации работает только на странице, показывающей категории. Но я хочу, чтобы это работало на странице, которая показывает только продукты.

Если кто-то знает, в какой функции Woocommerce выбирает, какие продукты показывать на странице, это будет действительно полезно.

Спасибо.

UPD: Я обнаружил, что в widgets / class-wc-query.php в функции get_layered_nav_chosen_attributes () $ _GET работает неправильно. Когда я пытаюсь отфильтровать товары в подкатегориях или списках товаров, я вижу в $ _GET следующие значения:
[q] => / product-category / category-name / subcategory_name / filter_brand = brand_name
[query_type_brand] => или

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

UPD2: в это время у меня есть обходной путь. В функции class-wc-widge-layered-nav.php get_page_base_url () после вычисления $ link я добавил ложный аргумент типа ‘a = 1’. Теперь все необходимые аргументы проанализированы правильно. Поэтому в настоящее время я не знаю причину поведения. Я новичок в PHP и WordPress 🙂

2

Решение

Я решил проблему. Основной причиной была неправильная конфигурация nginx.

location {
try_files $uri $uri/ /index.php?q=$uri$args
}

Так что мой nginx добавил ненужные $ uri.
Правильное значение:

try_files $uri $uri/ /index.php?$args
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]