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

Диагностика задачи: зачем отключать отзывы на отдельных страницах

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

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

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

1. Отключение отзывов для конкретного товара по ID

Для начала рассмотрим самый простой сценарий — отключение отзывов на товаре с заданным ID.

add_filter('comments_open', function($open, $post_id) {
    $disabled_ids = array(123, 456); // Замените на ID товаров без отзывов
    if (in_array($post_id, $disabled_ids)) {
        return false;
    }
    return $open;
}, 10, 2);

Этот код нужно добавить в файл functions.php вашей дочерней темы или в кастомный плагин.

2. Отключение отзывов для категории товаров

Чтобы отключить отзывы на всех товарах в определённой категории, используйте проверку термина:

add_filter('comments_open', function($open, $post_id) {
    if (is_admin()) return $open; // чтобы не мешать в админке

    $disabled_categories = array('no-reviews'); // slug категории
    $terms = wp_get_post_terms($post_id, 'product_cat', array('fields' => 'slugs'));
    if (array_intersect($terms, $disabled_categories)) {
        return false;
    }
    return $open;
}, 10, 2);

3. Отключение отзывов на странице товара с определённым условием (например, по метаполю)

Если нужно более гибкое управление — можно создать поле ACF или пользовательское метаполе disable_reviews и отключать отзывы по нему:

add_filter('comments_open', function($open, $post_id) {
    $disable = get_post_meta($post_id, 'disable_reviews', true);
    if ($disable) {
        return false;
    }
    return $open;
}, 10, 2);

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

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

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

  • Отзывы не отключаются: Проверьте, что фильтр comments_open подключён с приоритетом не выше 10, и код загружается (без ошибок PHP).
  • Отзывы отключаются на всех товарах: Проверьте условия проверки ID, категорий или метаполей — возможно, они всегда возвращают true.
  • Отзывы показываются в админке: Фильтр не должен блокировать комментарии в админке — добавьте проверку is_admin().
  • Кэширование мешает обновлению: Очистите кэш сайта и браузера, отключите плагин кэширования на время теста.

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

  • Добавляйте код в дочернюю тему или отдельный плагин, чтобы сохранить изменения при обновлениях.
  • Используйте is_admin() в фильтре, чтобы код не мешал работе админки.
  • Если у вас большой каталог, избегайте сложных запросов в фильтре comments_open, чтобы не замедлять загрузку страниц.
  • Для массового редактирования товаров используйте WP-CLI или SQL-запросы для установки метаполя disable_reviews, если выбрали такой подход.

Сравнение подходов для отключения отзывов в WooCommerce

МетодПростотаГибкостьПотенциальные минусы
Отключение по ID товараОчень простоНизкая (только отдельные товары)Требуется обновлять список вручную
Отключение по категорииСреднеСредняя (по категориям)Нельзя отключить по другим условиям
Отключение по метаполюСреднеВысокая (любые условия)Требует дополнительной настройки метаполей
Как создать настраиваемую настройку темы WordPress в панели администратора
12.01.2026
Как удалить удалённых пользователей WordPress по дате их последней активности
19.03.2026
Как добавить автозаполнение форм в WordPress без плагинов
23.03.2026
Как автоматически отключить отзывы на отдельных страницах WooCommerce
26.06.2026
Как автоматизировать удаление старого контента в WordPress по дате публикации
11.04.2026