Автоматическое удаление товара в WooCommerce после отрицательной оценки

|

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

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

Стандартно WooCommerce не предлагает автоматического удаления товаров по оценкам, поэтому задача решается через кастомный код с использованием хуков и API отзывов.

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

1. Определяем порог отрицательной оценки

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

2. Отслеживаем добавление или изменение отзывов

Отслеживаем событие сохранения комментария (отзыва) с оценкой, чтобы пересчитать средний рейтинг товара.

add_action('comment_post', 'check_product_rating_after_review', 10, 2);  // Когда добавляется новый отзыв
function check_product_rating_after_review($comment_ID, $comment_approved) {
    if ($comment_approved != 1) return; // Проверяем только одобренные отзывы

    $comment = get_comment($comment_ID);
    $product_id = $comment->comment_post_ID;

    if (get_post_type($product_id) !== 'product') return; // Только для товаров

    $average = wc_get_rating_html( wc_get_average_rating($product_id) ); // Получаем рейтинг товара
    $rating = floatval(get_post_meta($product_id, '_wc_average_rating', true)); // Получаем средний рейтинг из мета

    if ($rating <= 2) {
        wp_trash_post($product_id); // Удаляем товар в корзину
    }
}

3. Пересчет рейтинга товара

WooCommerce хранит средний рейтинг в мета поле _wc_average_rating. Мы используем это значение для проверки порога.

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

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

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

Альтернативные варианты реализации

МетодПлюсыМинусыКомпромисс
Код на хуках (как в статье)Бесплатно, гибко, быстроТребует знаний PHP, может конфликтовать с другими плагинамиПроверять на тестовом сайте перед запуском
Плагин автоматизации отзывовПростота установки, поддержкаМожет быть платным, ограниченная кастомизацияИспользовать для сложных сценариев
Ручное удалениеМинимальный риск ошибокНеэффективно для большого каталогаИспользовать как временное решение

Дополнительный пример: удаление товара по суммарному числу отрицательных отзывов

add_action('comment_post', 'delete_product_after_negative_review_count', 10, 2);
function delete_product_after_negative_review_count($comment_ID, $comment_approved) {
    if ($comment_approved != 1) return;

    $comment = get_comment($comment_ID);
    $product_id = $comment->comment_post_ID;

    if (get_post_type($product_id) !== 'product') return;

    $args = [
        'post_id' => $product_id,
        'status' => 'approve',
        'meta_key' => 'rating',
        'meta_value' => 2,
        'meta_compare' => '<=',
        'count' => true
    ];
    $negative_count = get_comments($args);

    if ($negative_count >= 3) {
        wp_trash_post($product_id);
    }
}
Как использовать WPRemark для автоматических отзывов в WordPress: подробное руководство
21.03.2026
Как автоматизировать управление медиа-содержимым в WordPress: практические решения и примеры
31.01.2026
Как использовать Yelly для создания уникальных карт в WordPress
31.03.2026
Как полностью удалить загруженные файлы из медиабиблиотеки WordPress без остаточных файлов
09.05.2026
Как убрать версию WordPress из header для безопасности сайта
05.11.2025
×
WPRemark
Внимание Внимание Внимание Внимание
-15%

на WPRemark плагин WordPress

Прокачай свой сайт! ⋙