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

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

Когда проблема видна сразу, а когда она прячется

В WooCommerce есть два уровня настройки: глобальный и на уровне товара. Если отзывы «пропали» не там, где нужно, обычно причина одна из трёх: включён глобальный запрет комментариев, у товара не снята галка Разрешить отзывы, либо тема выводит вкладку отзывов отдельно и кэширует шаблон. Поэтому сначала стоит понять, где именно включается вывод.

Что проверить в админке

  • Откройте товар в админке и посмотрите блок Обсуждение или Product data — у товара должна быть снята галка Разрешить отзывы.
  • Проверьте WooCommerce → Настройки → Товары: глобальная настройка не должна отключать комментарии для всего магазина, если вам нужен точечный сценарий.
  • Если отзывы всё равно видны, временно переключитесь на стандартную тему или отключите плагины, которые меняют вкладки товара. Иногда проблема не в WooCommerce, а в шаблоне.

Какой способ выбрать: настройка, код или плагин

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

СпособКогда подходитМинус
Настройка в карточке товара1–10 товаров, ручное управлениеНеудобно при большом каталоге
Код через хукНужны правила по ID, категории, типу товараНужно аккуратно поддерживать
Плагин для управления полями/контентомНужен интерфейс для контент-менеджераЛишняя зависимость и возможный оверхед

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

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

add_filter( 'woocommerce_product_tabs', function( $tabs ) {
    if ( ! is_product() ) {
        return $tabs;
    }

    $product_id = get_the_ID();

    // Укажите ID товаров, где отзывы не нужны.
    $disabled_reviews_for = array( 123, 456, 789 );

    if ( in_array( $product_id, $disabled_reviews_for, true ) ) {
        unset( $tabs['reviews'] );
    }

    return $tabs;
}, 98 );

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

Если нужно отключить комментарии полностью для выбранных товаров

Иногда недостаточно скрыть вкладку. Тогда лучше отключить поддержку комментариев у конкретных товаров при сохранении поста. Это влияет и на форму, и на возможность оставлять новые отзывы.

add_action( 'save_post_product', function( $post_id, $post, $update ) {
    if ( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
        return;
    }

    $disabled_reviews_for = array( 123, 456, 789 );

    if ( in_array( $post_id, $disabled_reviews_for, true ) ) {
        remove_post_type_support( 'product', 'comments' );
        wp_update_post( array(
            'ID'          => $post_id,
            'comment_status' => 'closed',
        ) );
    }
}, 10, 3 );

С этим кодом нужно быть осторожнее: remove_post_type_support() действует на весь тип записи, а не только на один товар. Для точечного сценария лучше ограничиться закрытием комментариев у нужных товаров через обновление поста или использовать фильтр вкладок, как в первом примере. Если вам нужно массовое правило по категории, лучше строить логику на проверке термина, а не на глобальном снятии поддержки.

Как отключить отзывы по категории товара

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

add_filter( 'woocommerce_product_tabs', function( $tabs ) {
    if ( ! is_product() ) {
        return $tabs;
    }

    global $product;

    if ( ! $product instanceof WC_Product ) {
        return $tabs;
    }

    $terms = get_the_terms( $product->get_id(), 'product_cat' );

    if ( empty( $terms ) || is_wp_error( $terms ) ) {
        return $tabs;
    }

    $blocked_categories = array( 'digital', 'services' );

    foreach ( $terms as $term ) {
        if ( in_array( $term->slug, $blocked_categories, true ) ) {
            unset( $tabs['reviews'] );
            break;
        }
    }

    return $tabs;
}, 98 );

Здесь важно использовать именно slug категории, а не название. Название могут поменять в админке, а slug обычно стабильнее для кода.

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

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

  • Откройте товар из списка отключённых и убедитесь, что вкладка отзывов исчезла.
  • Проверьте товар из обычной категории: отзывы должны остаться на месте.
  • Если у товара уже были отзывы, убедитесь, что они не ломают верстку и не выводятся в блоке ниже вкладок.
  • Очистите кэш страницы и кэш объекта, если он используется.
  • Проверьте мобильную версию: некоторые темы прячут вкладки в аккордеон, и там ошибка заметна только на узком экране.

Если у вас включён кэш на уровне сервера или CDN, изменения в шаблоне могут появиться не сразу. В таком случае сначала очищайте кэш, а потом проверяйте страницу в приватном окне.

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

Отзывы скрыли, но форма комментариев осталась

Это значит, что тема выводит форму отдельно от вкладки WooCommerce. Нужно искать шаблон single-product-reviews.php или переопределение в теме. Иногда достаточно убрать вызов комментариев в шаблоне товара, но править это лучше в дочерней теме.

Код работает не на всех товарах

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

После обновления темы отзывы снова появились

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

Пропали отзывы на всём магазине

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

Что учесть по безопасности и производительности

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

Для магазинов с большим каталогом лучше не строить тяжёлые запросы на каждом открытии карточки товара. Список ID или slug категорий должен быть коротким и статичным. Если правило сложное, например зависит от метаполя, проверьте, не создаёт ли код лишние запросы к базе на каждой странице товара.

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

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

Как удалить все старые метаданные в WordPress
09.02.2026
Защита от Brute Force атак в WordPress: как настроить надежную защиту
06.03.2026
Автоматическое создание резервных копий WordPress: плагины и кодовые решения
13.12.2025
WooCommerce: автоматическое удаление неоплаченных заказов после отсутствия платежа
19.06.2026
WooCommerce: Автоматическое удаление отменённых заказов и всех связанных данных
22.07.2026