Как отключить отзывы WooCommerce для отдельных товаров в WordPress

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

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

Прежде чем идти дальше, убедитесь, что отзывы включены в настройках WooCommerce: WooCommerce → Настройки → Товары → Включить отзывы. Если они выключены глобально, отключать отзывы на отдельных товарах бессмысленно.

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

1. Используем хук comments_open для отключения отзывов

В WooCommerce отзывы — это обычные комментарии к товару. Чтобы отключить их для конкретного товара, можно использовать фильтр comments_open. Ниже пример кода, который выключает отзывы для товара с ID 123:

add_filter('comments_open', 'disable_reviews_for_specific_products', 10, 2);
function disable_reviews_for_specific_products($open, $post_id) {
    // ID товаров, для которых нужно отключить отзывы
    $disabled_ids = array(123, 456);
    if (in_array($post_id, $disabled_ids)) {
        return false; // Отключаем комментарии (отзывы) для этих товаров
    }
    return $open;
}

2. Добавляем мета-поле для удобного управления в админке

Чтобы не прописывать ID в коде, можно добавить чекбокс на страницу редактирования товара, чтобы администратор мог отключать отзывы для конкретного товара прямо из админки.

add_action('woocommerce_product_options_general_product_data', 'add_disable_reviews_checkbox');
function add_disable_reviews_checkbox() {
    woocommerce_wp_checkbox(
        array(
            'id' => '_disable_reviews',
            'label' => __('Отключить отзывы для этого товара', 'woocommerce'),
            'description' => __('Если отмечено, отзывы к этому товару будут отключены.', 'woocommerce')
        )
    );
}

add_action('woocommerce_process_product_meta', 'save_disable_reviews_checkbox');
function save_disable_reviews_checkbox($post_id) {
    $disable = isset($_POST['_disable_reviews']) ? 'yes' : 'no';
    update_post_meta($post_id, '_disable_reviews', $disable);
}

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

Как проверить, что отзывы отключены для нужных товаров

  • Откройте страницу редактирования товара в админке.
  • Убедитесь, что чекбокс «Отключить отзывы для этого товара» установлен для нужного товара.
  • Перейдите на страницу товара на фронтенде.
  • Если отзывы отключены — вкладка «Отзывы» или форма комментариев не должна отображаться.
  • Для товаров без отключения отзывы должны работать как обычно.

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

  • Отзывы не отключаются: проверьте, что глобально отзывы включены в настройках WooCommerce и что фильтр comments_open не конфликтует с другими плагинами.
  • Отзывы отключаются на всех товарах: вероятно, условие в фильтре написано неправильно. Проверьте, что проверка ID товара или метаполя работает корректно.
  • Чекбокс не сохраняется: убедитесь, что функция сохранения метаполя подключена и вызывается правильно в woocommerce_process_product_meta.
  • Кэширование мешает обновлениям: если сайт использует кэш, очистите его после внесения изменений.

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

  • Не используйте жёстко прописанные ID товаров в коде — лучше добавлять метаполе для удобного управления.
  • Не забывайте проверять nonce и права пользователя при сохранении метаполей для безопасности.
  • Фильтр comments_open вызывается часто — код должен быть максимально лёгким и быстрым.
  • Если на сайте включено кэширование страниц (например, через плагин или сервер), убедитесь, что кэш обновляется после изменения настроек.

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

МетодПлюсыМинусыКогда использовать
Отключение в настройках WooCommerceПросто и быстроГлобально для всех товаровЕсли отзывы не нужны вообще
Фильтр comments_open с ID в кодеБыстро, без плагиновНужно менять код при измененияхДля статичных списков товаров
Добавление метаполя и фильтраУдобно, гибко, без плагиновНужно добавлять код в тему/плагинЕсли нужно админское управление
Плагин отключения отзывовИногда удобнее для непрофессионаловМожет влиять на производительностьЕсли не хочется писать код
Автоматическое удаление старого контента WordPress по датам
25.02.2026
Как создать настройку в админ панели WordPress
02.12.2025
Создать свой шорткод в WordPress: практическое руководство с примерами кода
17.11.2025
Как удалить автоматические черновики в WordPress по расписанию
14.02.2026
Как изменить автора опубликованного поста в WordPress программно
03.03.2026