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

Диагностика проблемы: почему нужно отключать отзывы selectively

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

Как работает отключение отзывов в WooCommerce

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

Проверка текущего состояния

Для одиночного товара откройте редактирование в админке WordPress и найдите блок «Отзывы» в настройках товара. Если его нет, отзывы отключены. Глобально проверьте: «WooCommerce → Настройки → Продукты → Включить отзывы».

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

Мы реализуем фильтр, который отключит отзывы для товаров по условию. Например, отключим отзывы для категории товаров no-reviews или для товаров с произвольным метаполем.

1. Добавление кода в functions.php или в отдельный плагин

add_filter('comments_open', 'disable_reviews_for_specific_products', 10, 2);
function disable_reviews_for_specific_products($open, $post_id) {
    if (get_post_type($post_id) !== 'product') {
        return $open; // только для товаров
    }

    // Отключаем отзывы для товаров из категории 'no-reviews'
    if (has_term('no-reviews', 'product_cat', $post_id)) {
        return false;
    }

    // Альтернативно: отключаем отзывы по метаполю '_disable_reviews'
    $disable = get_post_meta($post_id, '_disable_reviews', true);
    if ($disable === 'yes') {
        return false;
    }

    return $open;
}

2. Добавление метаполя для удобства

Чтобы управлять отключением отзывов без правки кода, можно добавить кастомное поле _disable_reviews через Advanced Custom Fields или вручную, ставить значение yes для нужных товаров.

3. Создание категории 'no-reviews'

Через админку WooCommerce создайте категорию «no-reviews» и прикрепите к ней соответствующие товары.

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

Откройте страницу товара с категорией no-reviews или с метаполем _disable_reviews = yes. Вкладка с отзывами и форма для добавления отзыва должны отсутствовать. Для других товаров отзывы должны отображаться.

Дополнительно можно проверить через REST API:

GET /wp-json/wp/v2/comments?post=ID_товара

Если отзывы отключены, комментарии не показываются.

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

  • Отзывы не отключаются на уровне администратора. Проверьте, что глобальная настройка отзывов в WooCommerce включена, иначе фильтр не сработает.
  • Метаполе не учитывается. Убедитесь, что поле _disable_reviews именно такое и значение yes — без лишних пробелов и регистра.
  • Отзывы отображаются несмотря на категорию. Проверьте правильность слага категории и что товары действительно прикреплены к ней.
  • Кэширование сайта мешает обновлениям. Очистите кэш плагинов, CDN и браузера после изменений.

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

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

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

МетодОписаниеПлюсыМинусы
Отключение в настройках товара (GUI)Вручную выключить отзывы для каждого товара в админкеПросто, подходит для 1-2 товаровНе подходит для массовых изменений
Использование категории 'no-reviews'Группировка товаров и отключение отзывов по категорииУдобно для больших групп товаровНужна категория, может быть неудобно для сложных условий
Использование метаполя '_disable_reviews'Управление отключением отзывов через кастомное полеГибко, легко интегрируется с ACF и другими плагинамиПотребуется добавить UI для удобства
Как использовать хук woocommerce_before_calculate_totals для изменения цены товаров в WooCommerce
25.04.2026
Как добавить капчу в формы WordPress без плагинов
02.03.2026
Как использовать WPRemark для улучшения комментариев в WordPress
01.01.2026
Как использовать хуки в WordPress для расширения функциональности
23.11.2025
Как добавить CSS класс к постам в WordPress по условию
10.04.2026