WooCommerce: как исключить товары по метаданным из списка связанных товаров

Диагностика проблемы: почему стандартный подбор связанных товаров не подходит

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

Пошаговое решение: исключение товаров по метаданным из связанных товаров WooCommerce

1. Определите мета-ключ и значение для исключения

Первым делом надо понять, по какому именно метаданному вы хотите исключать товары. Например, у вас есть мета-ключ _exclude_from_related со значением yes для товаров, которые не должны показываться как связанные.

2. Используйте фильтр woocommerce_related_products_args для изменения запроса связанных товаров

WooCommerce позволяет модифицировать аргументы WP_Query, который выбирает связанные товары, через фильтр woocommerce_related_products_args. Добавьте в functions.php вашей темы или в кастомный плагин следующий код:

add_filter('woocommerce_related_products_args', 'exclude_related_products_by_meta', 10, 1);
function exclude_related_products_by_meta($args) {
    // Добавляем условие meta_query для исключения товаров с нужным метаданным
    $meta_query = isset($args['meta_query']) ? $args['meta_query'] : array();
    $meta_query[] = array(
        'key'     => '_exclude_from_related',
        'value'   => 'yes',
        'compare' => '!='
    );
    $args['meta_query'] = $meta_query;
    return $args;
}

3. Проверка правильности работы

Очистите кэш сайта и браузера, откройте страницу товара, у которого есть связанные товары. Убедитесь, что товары с метаданным _exclude_from_related = yes не отображаются в блоке связанных товаров.

Проверка результата после внедрения

  • Откройте несколько товаров с разными связанными товарами;
  • Проверьте, что исключённые товары по метаданным не показываются в списке;
  • Используйте инструменты разработчика браузера, чтобы убедиться, что запрос к базе формируется с meta_query;
  • Для точной проверки можно временно вывести SQL-запрос через плагин Debug Bar или аналогичные инструменты.

Частые ошибки при реализации и как их исправить

Отсутствие мета-ключа или опечатки в названии

Убедитесь, что мета-ключ точно совпадает с тем, что используется в базе. Ошибка в одной букве приведёт к тому, что условие не сработает.

Кэширование выводимых связанных товаров

Если на сайте настроено кэширование (плагины, серверное кэширование), изменения могут не отобразиться сразу. Очистите кэш, отключите временно кеширование для проверки.

Неправильный приоритет фильтра

Если другие плагины или тема тоже меняют woocommerce_related_products_args, попробуйте повысить приоритет фильтра, например, установить 20 или выше.

Практические советы по безопасности и производительности

  • Используйте метаданные с префиксом под вашим плагином или темой, чтобы избежать конфликтов;
  • Не добавляйте слишком сложные meta_query с OR-условиями — это может замедлить запрос;
  • В больших магазинах лучше кешировать результаты запросов связанных товаров;
  • Проверьте совместимость кода с вашими версиями WooCommerce и WordPress;
  • Для массового добавления метаданных используйте WP-CLI или SQL-запросы, чтобы не нагружать админку.

Сравнение вариантов реализации

МетодПлюсыМинусы
Фильтр woocommerce_related_products_argsПростой, гибкий, не требует плагинов, легко поддерживатьТребует базовых знаний PHP, может конфликтовать с другими фильтрами
Использование плагина для кастомизации связанных товаровИнтерфейс, дополнительные функцииНагрузка на сайт, возможные конфликты, лицензии
Изменение шаблонов темыПолный контроль над выводомТребует знаний PHP/HTML, не оптимально для сложной логики выборки

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
YARPP настройка и оптимизация подбора связанных записей в WordPress
10.11.2025
Как создать собственный виджет в WordPress: пошаговое руководство
03.11.2025
WooCommerce: как исключить товары по метаданным из списка связанных товаров
06.06.2026
YARPP и REST API: как добавить связанные записи в ответы API WordPress
26.01.2026
Как отключить автовывод YARPP и оптимизировать производительность WordPress
21.04.2026
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙