WooCommerce: автоматическое удаление отзывов с низким рейтингом

В чем заключается задача и зачем удалять отзывы с низким рейтингом автоматически

В интернет-магазинах на WooCommerce отзывы играют ключевую роль в формировании доверия к товарам. Однако иногда появляются отзывы с очень низким рейтингом (1 или 2 звезды), которые могут быть не конструктивными, спамом или фейковыми. Автоматическое удаление таких отзывов позволяет поддерживать качество отзывов, экономить время на модерации и улучшать восприятие товаров покупателями.

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

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

  • Частоту появления плохих отзывов.
  • Влияние этих отзывов на конверсию и продажи.
  • Наличие повторяющихся негативных отзывов с похожим содержанием.

Если негативных отзывов много и они не удаляются быстро, стоит автоматизировать процесс.

Пошаговое решение: как автоматически удалять отзывы с рейтингом ниже заданного

1. Создаем функцию для удаления отзывов по рейтингу

Добавьте следующий код в файл functions.php вашей дочерней темы или в плагин для кастомного кода:

function wc_delete_low_rating_reviews() {
    $args = [
        'post_type'      => 'product',
        'numberposts'    => -1,
        'post_status'    => 'publish',
        'fields'         => 'ids'
    ];
    $product_ids = get_posts($args);

    foreach ($product_ids as $product_id) {
        $comments = get_comments([
            'post_id' => $product_id,
            'status' => 'approve',
            'type' => 'review',
            'meta_query' => [
                [
                    'key' => 'rating',
                    'value' => 2, // Удаляем отзывы с рейтингом 1 и 2
                    'compare' => '<=',
                    'type' => 'NUMERIC'
                ]
            ]
        ]);

        foreach ($comments as $comment) {
            wp_delete_comment($comment->comment_ID, true);
        }
    }
}

2. Запускаем функцию автоматически через WP-Cron

Добавьте планировщик для вызова функции, например, раз в сутки:

if (!wp_next_scheduled('wc_daily_delete_low_rating_reviews')) {
    wp_schedule_event(time(), 'daily', 'wc_daily_delete_low_rating_reviews');
}

add_action('wc_daily_delete_low_rating_reviews', 'wc_delete_low_rating_reviews');

3. Очистка планировщика при деактивации

function wc_deactivate_cleanup() {
    wp_clear_scheduled_hook('wc_daily_delete_low_rating_reviews');
}
register_deactivation_hook(__FILE__, 'wc_deactivate_cleanup');

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

  • Посмотрите в админке WooCommerce > Отзывы: количество отзывов с 1 и 2 звездами должно уменьшиться или обнулиться после запуска крона.
  • Для проверки функции вручную вызовите wc_delete_low_rating_reviews(); через консоль WP-CLI или временно добавьте вызов в код.
  • В базе данных в таблице wp_comments не должно оставаться отзывов с comment_type = 'review' и мета rating ≤ 2.

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

  • Отзывы не удаляются: Проверьте, что у комментариев есть мета ключ rating с числовым рейтингом. Если рейтинг хранится иначе, адаптируйте meta_query.
  • Функция не запускается по расписанию: Убедитесь, что WP-Cron работает корректно, посетите сайт или используйте плагин WP Crontrol для диагностики.
  • Удаляются нужные отзывы: Настройте значение рейтинга в условии удаления, например, <=1 если хотите удалять только 1-звездочные отзывы.

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

  • Выполняйте удаление по частям, если товаров и отзывов много, чтобы избежать превышения лимита времени выполнения скрипта.
  • Используйте WP-Cron или системный cron для регулярного запуска, чтобы не нагружать сервер.
  • Резервное копирование базы данных перед внедрением автоматического удаления — обязательный шаг.
  • Ограничьте права доступа к коду, чтобы исключить случайное или злонамеренное изменение.

Сравнение решений: плагин vs кастомный код

КритерийПлагинКастомный код
ГибкостьОграничена функционалом плагинаМаксимальная, можно адаптировать под конкретные условия
ПроизводительностьМожет влиять на скорость из-за лишних функцийОптимизированный код без лишнего
БезопасностьЗависит от качества плагинаЗависит от разработчика, требует тестирования
ПоддержкаЕсть поддержка и обновленияПоддержка на вас или команду разработчиков
СтоимостьМожет быть платнымБесплатно, если пишете сами
Как отключить автоматическое выполнение PHP кода в WordPress
09.02.2026
WooCommerce: автоматическое удаление отзывов с низким рейтингом
14.06.2026
Добавление поля телефона в форму регистрации WordPress с подтверждением номера
12.01.2026
Как добавить автоматическое удаление отсутствующих вложений в Telegram каналах WordPress
22.01.2026
Добавить уникальные поля в формы регистрации WordPress с подтверждением
21.02.2026