WooCommerce: настройка подтверждения отзывов через email для улучшения качества и надежности

Проблема: как убедиться, что отзывы на WooCommerce достоверны

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

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

  • Много негативных отзывов с сомнительным содержанием.
  • Отзывы от пользователей, которые не совершали покупок.
  • Высокий процент спама в комментариях к товарам.
  • Обратная связь с клиентами указывает на несоответствие отзывов реальной покупке.

Пошаговое решение: настройка подтверждения отзывов по email в WooCommerce

1. Отключите стандартное автоматическое опубликование отзывов

В админке WordPress перейдите в Настройки > Обсуждение и включите опцию «Отзывы должны быть одобрены вручную». Это позволит не публиковать отзывы без проверки.

2. Добавьте поле email в форму отзыва и сохраните его

WooCommerce уже собирает email покупателя, но для публичной формы можно добавить поле email, если необходимо. Для подтверждения будем использовать email из заказа.

3. Создайте функцию отправки письма с подтверждением после отправки отзыва

Ниже пример кода, который отправляет письмо с уникальной ссылкой для активации отзыва.

add_action('comment_post', 'send_review_confirmation_email', 10, 2);function send_review_confirmation_email($comment_id, $comment_approved) {    if (get_comment_type($comment_id) !== 'review') return; // Только отзывы    if ($comment_approved != 0) {        wp_set_comment_status($comment_id, 'hold'); // Переводим в ожидание подтверждения    }    $comment = get_comment($comment_id);    $user_email = $comment->comment_author_email;    // Генерируем уникальный ключ подтверждения    $confirmation_key = wp_hash($comment_id . $user_email . time());    add_comment_meta($comment_id, 'confirmation_key', $confirmation_key);    $confirmation_url = add_query_arg([        'confirm_review' => $comment_id,        'key' => $confirmation_key    ], home_url('/'));    $subject = 'Подтвердите ваш отзыв на ' . get_bloginfo('name');    $message = 'Здравствуйте! Чтобы подтвердить ваш отзыв, перейдите по ссылке: ' . $confirmation_url;    wp_mail($user_email, $subject, $message);}

4. Обработка подтверждения по ссылке

Добавьте в functions.php проверку GET-параметров для активации отзыва.

add_action('init', 'confirm_review_by_email');function confirm_review_by_email() {    if (!isset($_GET['confirm_review'], $_GET['key'])) return;    $comment_id = intval($_GET['confirm_review']);    $key = sanitize_text_field($_GET['key']);    $saved_key = get_comment_meta($comment_id, 'confirmation_key', true);    if ($key === $saved_key) {        wp_set_comment_status($comment_id, 'approve');        delete_comment_meta($comment_id, 'confirmation_key');        wp_redirect(add_query_arg('review_confirmed', '1', get_permalink()));        exit;    } else {        wp_die('Неверный ключ подтверждения.');    }}

Как проверить, что решение работает

  • Отправьте новый отзыв на товар.
  • Проверьте, что отзыв не появляется сразу в списке.
  • Проверьте почтовый ящик, должно прийти письмо с подтверждением.
  • Перейдите по ссылке из письма, после чего отзыв должен появиться на сайте.

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

  • Письма не отправляются: Проверьте настройки почты на сервере, используйте SMTP-плагин (например, WP Mail SMTP).
  • Отзыв не активируется после перехода по ссылке: Убедитесь, что правильно передаются GET-параметры и что ключ совпадает.
  • Отзыв сразу публикуется без подтверждения: Проверьте, что комментарии на товары установлены на ручное одобрение.
  • Пользователь не видит сообщения о необходимости подтверждения: Добавьте уведомление на сайте после отправки отзыва.

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

  • Используйте проверку nonce для подтверждения ссылок, чтобы избежать CSRF-атак.
  • Очистите устаревшие неподтвержденные отзывы через WP-Cron, чтобы база не разрасталась.
  • Для массовых магазинов рассмотрите использование специализированных плагинов модерации отзывов с подтверждением.

Сравнение способов реализации подтверждения отзывов

МетодПлюсыМинусыПример
Ручная модерацияПростота, контроль качестваТрудозатратно, задержкиСтандартные настройки WP
Подтверждение по email (код)Автоматизация, повышает довериеНужно настраивать, требует почтового сервераКод из статьи
Специализированный плагинРасширенный функционал, удобствоДополнительные расходы, возможные конфликтыWP Review Pro, Customer Reviews
Как использовать хуки в WordPress для расширения функциональности
06.11.2025
Как удалить пустые термины в таксономии WordPress
27.03.2026
Создание динамического файлового каталога в WordPress: практическое руководство
24.02.2026
Как изменить URL адрес постов в WordPress без перенаправлений
02.01.2026
Как добавить произвольные поля в комментарии WordPress
26.12.2025