Почему может потребоваться отключить отзывы на отдельные товары WooCommerce
В стандартной конфигурации WooCommerce отзывы включены для всех товаров. Однако бывают ситуации, когда отзывы нежелательны: например, для товаров на предзаказ, цифровых продуктов без физического образца, или товаров с ограниченной аудиторией. Отключать отзывы полностью для всего магазина не всегда удобно, поэтому полезна возможность отключить отзывы выборочно.
Диагностика: как проверить, включены ли отзывы на товаре
По умолчанию отзывы выводятся на странице товара, если в настройках WooCommerce они включены. Чтобы проверить, активны ли отзывы на конкретном товаре:
- Перейдите в админку WordPress → WooCommerce → Настройки → Вкладка «Товары» → «Отзывы» и убедитесь, что опция «Включить отзывы» активна.
- Откройте страницу товара на фронтенде и посмотрите, отображаются ли отзывы.
- Проверьте, нет ли в теме или плагинах переопределения шаблонов отзывов.
Пошаговое решение: отключение отзывов для отдельных товаров через код
Самый надежный и контролируемый способ — добавить фильтр в functions.php вашей дочерней темы или в кастомный плагин. Ниже пример кода, который отключает отзывы на товарах с ID 123 и 456:
add_filter('woocommerce_product_tabs', 'disable_reviews_for_selected_products', 98);
function disable_reviews_for_selected_products($tabs) {
$excluded_ids = array(123, 456); // ID товаров, для которых отключаем отзывы
if (is_product()) {
global $product;
if (in_array($product->get_id(), $excluded_ids)) {
unset($tabs['reviews']);
}
}
return $tabs;
}Этот код полностью удалит вкладку отзывов с страницы товара.
Альтернативный способ — отключить возможность оставлять отзывы, но оставить уже существующие
Если нужно, чтобы отзывы отображались, но пользователи не могли добавлять новые, используйте следующий код:
add_filter('comments_open', 'disable_new_reviews_for_selected_products', 10, 2);
function disable_new_reviews_for_selected_products($open, $post_id) {
$excluded_ids = array(123, 456);
if (is_product() && in_array($post_id, $excluded_ids)) {
return false; // Запретить добавление новых отзывов
}
return $open;
}Проверка результата после внедрения кода
- Очистите кеш сайта, если используется кеширование.
- Откройте страницу товара с ID из списка отключения и убедитесь, что вкладка отзывов отсутствует или форма добавления отзыва не отображается.
- Для контроля откройте страницу товара без ограничения — отзывы должны показываться.
Частые ошибки и как их исправить
- Код не работает на страницах товаров. Проверьте, что используете хук
woocommerce_product_tabsилиcomments_openправильно, и что код вставлен вfunctions.phpактивной дочерней темы. - Отзывы остаются видимыми, но форма не удаляется. Возможно, тема или плагин выводят отзывы нестандартно. Проверьте шаблоны темы.
- Код ломает страницу товара. Ошибка синтаксиса или конфликт с другими плагинами. Проверьте логи ошибок и отключите другие плагины для теста.
Практические советы для безопасности и производительности
- Не модифицируйте напрямую файлы основной темы WooCommerce или темы, используйте дочернюю тему.
- Добавляйте коды через плагин для кастомных функций или через
functions.phpдочерней темы. - Тестируйте изменения на тестовом сервере перед запуском на боевом сайте.
- Не отключайте отзывы массово через плагины без необходимости — это может повлиять на SEO и доверие пользователей.
Сравнение методов отключения отзывов в WooCommerce
| Метод | Плюсы | Минусы | Когда использовать |
|---|---|---|---|
Удаление вкладки отзывов через woocommerce_product_tabs | Полное скрытие отзывов на выбранных товарах, простой код | Отзывы полностью скрыты, нельзя читать старые отзывы | Если нужна полная блокировка отзывов на товар |
Запрет на добавление новых отзывов через comments_open | Отзывы остаются видимыми, только добавление новых запрещено | Отзывы не удаляются, пользователи видят старые отзывы | Если важно сохранить отзывы, но запретить новые |
| Использование плагинов (например, Disable Comments) | Графический интерфейс, простота | Отключает отзывы глобально, редко поддерживает выборочные товары | Для полного отключения отзывов на сайте |