Связаться
Каталог · WordPress

Умный фильтр товаров для WooCommerce

Фасетный фильтр товаров для WooCommerce с собственной таблицей-индексом: честные счётчики, слияние дублей значений, числовые диапазоны и SEO-страницы фильтра.

Скачать бесплатно
Версия
v1.0.0
Совместимость
WooCommerce 6.0+ · WordPress 6.2+ · PHP 7.4+
Платформа
WordPress
Умный фильтр товаров для WooCommerce

Что включено в лицензии

Функция Free Pro
Фасетный фильтр: категория, атрибуты, цена, наличие, рейтинг
Честные счётчики: свой фасет остаётся полным, остальные сужаются
Собственная таблица-индекс вместо запросов по атрибутам и мета-полям
Дубли значений («12 В» / «12в» / «12 V») сливаются в одно
Числовые значения сортируются числами и работают диапазоном
Применение без перезагрузки, состояние фильтра в URL
Мобильная шторка, ползунок цены с реальными границами выборки
Цена и наличие — из wc_product_meta_lookup, без расхождений с сортировкой
SEO-страницы фильтра с собственным H1, title и человеческим URL
Остальные комбинации — noindex,follow и канонический адрес на чистую категорию
Не трогает канонический адрес, если активны Yoast, Rank Math или AIOSEO

Умный фильтр товаров для WooCommerce — фасетный фильтр, который не тормозит на большом каталоге. Вместо запросов по таблицам атрибутов и мета-полей модуль хранит собственную плоскую таблицу-индекс «товар → значение», поэтому добавление новых фасетов не замедляет выборку.

Фасетный фильтр WooCommerce со счётчиками, чипами и ползунком цены
Выбран «Зелёный»: свой фасет остаётся полным, остальные сужаются, сверху — чип выбранного и «Сбросить всё».

Честные счётчики

Рядом с каждым значением стоит количество товаров, которое учитывает уже выбранные фильтры. Свой фасет при этом не сужается: выбрав «Зелёный», покупатель по-прежнему видит, сколько есть синих и красных, и может переключиться одним кликом вместо того, чтобы сбрасывать всё и начинать сначала.

Дубли значений сливаются

Прайсы поставщиков приносят «12 В», «12в» и «12 V» как три разных атрибута. Модуль сводит их в одно значение, поэтому покупатель видит один чекбокс, а не три. Числовые значения сортируются числами, а не строками, и работают диапазоном.

Цена, наличие, рейтинг

Цена и наличие берутся из таблицы wc_product_meta_lookup, то есть из того же источника, что и сортировка WooCommerce — без расхождений между фильтром и листингом. Ползунок цены подтягивает реальные границы текущей выборки.

Применение без перезагрузки

Фильтр меняет выдачу без перезагрузки страницы и пишет состояние в URL, поэтому ссылку можно отправить или сохранить в закладки. На телефоне панель сворачивается в шторку, чтобы не съедать экран.

SEO

В индекс идёт только то, что вы сами сделали SEO-страницей фильтра: собственный H1, title и человеческий URL. Остальные комбинации отдают noindex,follow и канонический адрес на чистую категорию. Если на сайте работает Yoast, Rank Math или AIOSEO — канонический адрес остаётся за ними, модуль в это не вмешивается.

Совместимость

WooCommerce 6.0+, WordPress 6.2+, PHP 7.4+. Классические архивы категорий и страница магазина, HPOS. Фильтрация встраивается в главный запрос, поэтому работает с темами, которые выводят стандартный цикл товаров. Виджет ставится в любую виджет-зону или шорткодом.

Что получает админ

Фасеты складываются из того, что у вас уже есть в каталоге: категория, атрибуты товаров, цена, наличие, рейтинг. Ничего отдельно описывать не нужно — модуль берёт атрибуты WooCommerce как есть.

Для каждого фасета настраивается, как он выглядит покупателю: чекбоксы, ползунок для числовых значений или диапазон. Порядок фасетов в панели задаёте вы — то, чем в вашей категории действительно фильтруют, ставится первым.

Индекс перестраивается сам, когда товар меняется, и его можно перестроить полностью одной кнопкой — это понадобится один раз, после первого импорта большого прайса.

Как это работает — шаг за шагом

1. После установки модуль строит собственную плоскую таблицу-индекс «товар → значение». Это разовая операция, дальше индекс живёт сам.

2. Покупатель ставит галочку в фильтре. Запрос идёт не по wp_postmeta и не по таблицам атрибутов, а по этому индексу — одним простым SELECT вместо кучи JOIN-ов.

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

4. Выдача обновляется без перезагрузки, а состояние фильтра пишется в URL.

5. Товар изменили в админке или обновили импортом — индекс для этого товара перестраивается автоматически.

Почему это быстрее

Стандартная фильтрация WooCommerce собирает выборку через wp_postmeta и таксономии атрибутов. Каждый добавленный фасет — это ещё один JOIN, и на каталоге в несколько десятков тысяч товаров запрос превращается в многосекундный.

Плоский индекс «товар → значение» эту проблему снимает в корне: фасетов может быть пять или пятнадцать, структура запроса не меняется. Именно поэтому магазин с большим прайсом получает от модуля больше всего — на каталоге в двести товаров разницу вы не заметите.

Бесплатная версия и Pro

Бесплатная версия — это полноценный фильтр: все типы фасетов, честные счётчики, слияние дублей значений, числовые диапазоны, ползунок цены с реальными границами выборки, применение без перезагрузки, состояние в URL, мобильная шторка. Ограничений по времени и рекламы в админке нет.

Pro добавляет SEO-страницы фильтра: вы выбираете комбинацию фильтров, которую стоит продвигать («жёлтые шкафы», «ноутбуки до 30 000»), и она получает собственный H1, title и человеческий URL. Остальные комбинации остаются под noindex,follow с каноникалом на чистую категорию.

Это и есть главное отличие от «фильтра из темы»: управляемая горстка посадочных страниц под низкочастотные запросы вместо либо миллиона мусорных URL в индексе, либо полного отсутствия фильтровых страниц в поиске.

Сколько стоит

Лицензия Pro — 990 грн, на один сайт. Лицензия годовая: после окончания модуль работает дальше и ничего не выключается, прекращаются только обновления и поддержка. «Навсегда» мы не обещаем — WooCommerce меняет структуру запросов от версии к версии, и фильтр без обновлений рано или поздно разойдётся с ядром.

Технические требования

WordPress 6.2 и новее, WooCommerce 6.0 и новее, PHP 7.4 и новее. Работает с HPOS, классическими архивами категорий и страницей магазина.

Отдельных требований к хостингу нет: индекс — это одна обычная таблица MySQL, она не требует ни Elasticsearch, ни Redis, ни отдельного сервиса поиска.

Что под капотом

Фильтрация встраивается в главный запрос товаров, а не подменяет его своим. Из-за этого модуль остаётся совместимым с темами, которые выводят стандартный цикл WooCommerce, и не конфликтует с пагинацией и сортировкой.

Цена и наличие читаются из wc_product_meta_lookup — той же таблицы, из которой WooCommerce сортирует товары. Поэтому не бывает ситуации, когда фильтр говорит «есть в наличии», а сортировка по цене показывает другое.

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

Как установить

1. Загрузите архив в «Плагины → Добавить новый → Загрузить плагин» и активируйте.

2. Дождитесь построения индекса — при первом запуске модуль предлагает сделать это одной кнопкой.

3. В настройках соберите набор фасетов под свой каталог и задайте их порядок.

4. Поставьте виджет фильтра в боковую колонку категории или вставьте шорткодом туда, где он нужен.

5. Если купили Pro — добавьте SEO-страницы под те комбинации фильтров, которые действительно ищут.

История версий

1.0.0 — первый выпуск. Фасеты по категории, атрибутам, цене, наличию и рейтингу; собственная таблица-индекс; честные счётчики с несуженным собственным фасетом; слияние дублей значений и числовая сортировка; ползунок цены с границами текущей выборки; применение без перезагрузки и состояние фильтра в URL; мобильная шторка; совместимость с HPOS. В Pro — SEO-страницы фильтра с собственным H1, title и URL, noindex,follow на остальных комбинациях и невмешательство в каноникал Yoast / Rank Math / AIOSEO.

Частые вопросы

Нужно ли переписывать тему?

Нет. Фильтр встраивается в главный запрос товаров, поэтому работает с темами, которые выводят стандартный цикл WooCommerce. Виджет ставится в виджет-зону или шорткодом.

Выдержит ли большой каталог?

Условия фильтра идут по собственной плоской таблице-индексу «товар → значение», а не по таблицам атрибутов и мета-полей, поэтому добавление новых фасетов не замедляет выборку.

Что будет с дублями значений из прайсов поставщиков?

Они сливаются в одно значение: вместо трёх чекбоксов «12 В», «12в» и «12 V» покупатель видит один.

Счётчики учитывают уже выбранные фильтры?

Да. При этом свой фасет не сужается — выбрав «Зелёный», покупатель видит, сколько есть синих и красных, и переключается одним кликом.

Не засорит ли фильтр индекс Google?

Нет. В индекс идёт только то, что вы сами сделали SEO-страницей фильтра; остальные комбинации отдают noindex,follow и канонический адрес на категорию. Если работает Yoast, Rank Math или AIOSEO — канонический адрес остаётся за ними.

Сколько сайтов можно активировать одним ключом?

Один. Лицензия годовая: по истечении модуль продолжает работать, прекращаются только обновления и поддержка.

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль