Автоматическое создание отзывов в WooCommerce после покупки

Диагностика задачи: зачем автоматизировать создание отзывов

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

Как проверить наличие автоматических отзывов и их статус

Для начала убедитесь, что в вашем WooCommerce включена возможность оставлять отзывы:

  • Перейдите в WooCommerce → Настройки → Товары → Отзывы.
  • Убедитесь, что опция Включить отзывы для товаров активна.
  • Проверьте, что разрешено оставлять отзывы только покупателям (Разрешить отзывы только для покупателей, которые приобрели товар).

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

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

Будем создавать отзыв программно сразу после изменения статуса заказа на "завершён". Для этого используем хук woocommerce_order_status_completed.

add_action('woocommerce_order_status_completed', 'auto_create_reviews_after_purchase', 10, 1);
function auto_create_reviews_after_purchase($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    if (!$order) return;

    foreach ($order->get_items() as $item_id => $item) {
        $product_id = $item->get_product_id();
        $user_id = $order->get_user_id();
        $review_content = 'Спасибо за покупку! Отличный товар.'; // Можно генерировать динамически

        // Проверяем, есть ли уже отзыв от этого пользователя для товара
        $args = array(
            'post_type' => 'product',
            'post_id' => $product_id,
            'author' => $user_id,
            'count' => true
        );
        $existing_reviews = get_comments(array(
            'post_id' => $product_id,
            'user_id' => $user_id,
            'count' => true,
            'status' => 'approve',
            'type' => 'review'
        ));

        if ($existing_reviews == 0) {
            // Создаем отзыв
            $commentdata = array(
                'comment_post_ID' => $product_id,
                'comment_author' => $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
                'comment_author_email' => $order->get_billing_email(),
                'comment_content' => $review_content,
                'comment_type' => 'review',
                'comment_parent' => 0,
                'user_id' => $user_id,
                'comment_approved' => 1,
            );
            wp_insert_comment($commentdata);
        }
    }
}

Этот код добавьте в functions.php вашей дочерней темы или в плагин для кастомизации. Он автоматически создаст отзыв с текстом "Спасибо за покупку! Отличный товар." для каждого товара из завершённого заказа, если отзыв от пользователя ещё не был оставлен.

Как кастомизировать текст и рейтинг

Вы можете расширить код и добавить рейтинг к отзыву. Для этого после вставки комментария вызовите update_comment_meta:

$comment_id = wp_insert_comment($commentdata);
if ($comment_id) {
    update_comment_meta($comment_id, 'rating', 5); // Оценка 5 из 5
}

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

Чтобы проверить, что автоматизация работает:

  • Сделайте тестовый заказ и переведите его в статус "завершён" вручную (если не происходит автоматически).
  • Перейдите на страницу товара и убедитесь, что появился новый отзыв с вашим тестовым пользователем.
  • Проверьте в базе данных таблицу wp_comments наличие комментариев с типом review для соответствующих товаров.

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

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

  • Отзывы не создаются: Проверьте, что хук woocommerce_order_status_completed срабатывает. Для отладки добавьте error_log('Хук сработал'); внутри функции.
  • Отзывы создаются, но без рейтинга: Убедитесь, что после wp_insert_comment вызывается update_comment_meta с правильным ключом rating.
  • Отзывы создаются дублирующимися: Добавьте проверку наличия отзыва от пользователя для данного товара, как в примере.
  • Проблемы с доступом пользователя: Если заказ оформлен гостем (без регистрации), $order->get_user_id() будет 0, тогда нужно использовать email для поиска отзывов или пропускать автоматическое создание.

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

  • Не создавайте отзывы с одинаковым содержимым для всех товаров — используйте динамические тексты или шаблоны с переменными, чтобы избежать спама.
  • Добавляйте лимит на количество созданных автоматически отзывов, чтобы не перегружать базу.
  • Используйте транзакции и проверки ошибок, если планируете массовую обработку заказов через крон.
  • Для повышения безопасности не давайте гостям создавать отзывы автоматически — ограничьте по user_id.
  • Если ваш магазин большой, кешируйте запросы к комментариям при проверке существующих отзывов.

Сравнение способов автоматизации отзывов

МетодПлюсыМинусы
Код через хук woocommerce_order_status_completedПолный контроль, нет зависимости от плагинов, легко кастомизироватьТребует навыков разработки, возможны ошибки при неправильной реализации
Плагины автоматизации отзывов (например, YITH WooCommerce Review Reminder)Простота настройки, расширенный функционал напоминанийМожет быть избыточным, нагрузка на сайт, платные функции
Ручной сбор отзывов через email-серииПерсонализированный подход, высокая лояльностьНе автоматизирован, требует внешних сервисов

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как использовать хуки в WordPress для расширения функциональности
11.11.2025
Как установить ограничения на покупки в WooCommerce по пользователям
06.06.2026
Как создать автоматический контроль версий файлов темы WordPress
13.04.2026
Как решить проблему переопределения функций в теме WordPress
18.05.2026
Как создать собственный виджет в WordPress с применением wpbook
22.11.2025
×
Делай сайт лучше!!

-20% на премиум темы и плагины

Использовать скидку ⋙