Отзывы — важная часть интернет-магазина на WooCommerce, но иногда возникает необходимость отключить их для некоторых товаров. Например, если товар временно не принимается к оценке, или отзывы неуместны для определенных категорий. Рассмотрим, как отключить отзывы WooCommerce для отдельных товаров с помощью кода и плагинов.
Почему важно отключать отзывы для отдельных товаров
По умолчанию WooCommerce включает отзывы на всех товарах. Это может приводить к нескольким проблемам:
- Нежелательные негативные отзывы на новые или экспериментальные товары.
- Технические или сервисные товары, на которые отзывы могут не иметь смысла.
- Товары с ограниченным тиражом или временным предложением, где отзывы не нужны.
Отключение отзывов для конкретных товаров помогает сохранить репутацию и управлять контентом более гибко.
Отключение отзывов WooCommerce через пользовательский код
Самый эффективный способ — использовать фильтр WordPress и WooCommerce для отключения отзывов на уровне отдельных товаров. Добавьте следующий код в файл functions.php вашей темы или в плагин для кастомных функций.
function wp1_disable_reviews_for_specific_products( $comment_status, $post_id ) {
// Массив ID товаров, для которых нужно отключить отзывы
$disabled_reviews_products = array( 123, 456, 789 );
if ( in_array( $post_id, $disabled_reviews_products ) ) {
return 'closed'; // Отключаем отзывы
}
return $comment_status;
}
add_filter( 'comments_open', 'wp1_disable_reviews_for_specific_products', 10, 2 );В этом примере отзывы будут отключены для товаров с ID 123, 456 и 789. Чтобы узнать ID товара, перейдите в админку WooCommerce, откройте товар и посмотрите ID в URL или в списке товаров.
Этот способ полностью отключает возможность оставлять отзывы и скрывает форму комментариев.
Динамическое отключение по категории
Если вам нужно отключить отзывы для всех товаров определенной категории, можно расширить функцию:
function wp1_disable_reviews_by_category( $comment_status, $post_id ) {
if ( 'product' !== get_post_type( $post_id ) ) {
return $comment_status;
}
// Слаг категории, для которой отключаем отзывы
$disabled_category_slug = 'special-products';
if ( has_term( $disabled_category_slug, 'product_cat', $post_id ) ) {
return 'closed';
}
return $comment_status;
}
add_filter( 'comments_open', 'wp1_disable_reviews_by_category', 10, 2 );Вместо special-products укажите нужный слаг категории товаров.
Использование плагинов для управления отзывами WooCommerce
Если вы не хотите править код, можно использовать плагины с расширенными настройками отзывов:
- Clearfy Pro — этот плагин позволяет гибко управлять отзывами, включая отключение на уровне товаров и категорий без кода.
- Expert Review — расширенный плагин для отзывов, с возможностью настройки отображения отзывов для отдельных товаров.
Преимущество плагинов — удобный интерфейс и дополнительные функции, например, модерирование, звезды, интеграция с другими модулями.
Дополнительные решения и советы
1. Скрытие отзывов через CSS: если нужно временно скрыть отзывы, можно добавить CSS:
.woocommerce-tabs .reviews_tab {
display: none !important;
}
#reviews {
display: none !important;
}Однако это не отключает функционал, а лишь скрывает отзывы визуально, что не рекомендуется для долгосрочного решения.
2. Отключение рейтингов: если хотите отключить только звездные рейтинги, а отзывы оставить, в настройках WooCommerce можно отключить отображение рейтингов.
3. Автоматизация на большом сайте: если у вас тысячи товаров, рассмотрите использование пользовательских полей или таксономий для управления отзывами с помощью кода, чтобы не указывать ID вручную.
Заключение
Отключение отзывов WooCommerce для отдельных товаров — частая задача, решаемая как с помощью кода, так и через плагины. Код дает максимальную гибкость и контроль, плагины — удобство и дополнительные функции. Выбирайте подход, который подходит именно вашему сайту и уровню знаний.