Как автоматически отправлять отзывы WordPress на email с примером кода

Работа с отзывами в WordPress — важный аспект для многих сайтов, особенно если это магазины, сервисы или блоги с обратной связью. В этой статье разберём, как организовать автоматическую отправку уведомлений с новыми отзывами на email, чтобы не пропустить важную информацию и оперативно реагировать на комментарии пользователей.

Почему важна автоматическая отправка отзывов на email в WordPress

Стандартно WordPress уведомляет администратора о новых комментариях, но не всегда это работает корректно или удобно. Например, если отзывы — это кастомный тип комментариев или используются сторонние плагины для отзывов, стандартные уведомления могут не срабатывать.

Настроив собственный механизм отправки писем, вы получаете полный контроль над форматом уведомлений, списком получателей и условиями отправки. Это помогает быстрее реагировать на отзывы, улучшать качество обратной связи и повышать лояльность пользователей.

В следующем разделе рассмотрим, как реализовать такой механизм с помощью стандартных хуков WordPress и собственного кода.

Использование хука comment_post для отправки уведомлений о новых отзывах

Хук comment_post вызывается при добавлении нового комментария или отзыва. Его удобно использовать, чтобы запускать отправку email с нужной информацией.

Пример функции, которая отправляет письмо при появлении нового отзыва:

function wpcodex_send_review_notification($comment_ID, $comment_approved) {
    if(1 !== $comment_approved) {
        return; // Отзыв не одобрен, не отправляем
    }

    $comment = get_comment($comment_ID);
    if('review' !== get_comment_type($comment_ID)) {
        return; // Если тип комментария не "review", игнорируем
    }

    $post = get_post($comment->comment_post_ID);
    $to = get_option('admin_email');
    $subject = 'Новый отзыв на сайте ' . get_bloginfo('name');
    $message = "Появился новый отзыв к записи '{$post->post_title}':\n\n";
    $message .= "Автор: {$comment->comment_author}\n";
    $message .= "Email: {$comment->comment_author_email}\n";
    $message .= "Отзыв:\n{$comment->comment_content}\n\n";
    $message .= 'Ссылка для просмотра: ' . get_comment_link($comment_ID);

    wp_mail($to, $subject, $message);
}
add_action('comment_post', 'wpcodex_send_review_notification', 10, 2);

В этом коде:

  • Проверяем, одобрен ли отзыв.
  • Проверяем, что тип комментария — именно review (если у вас кастомный тип отзывов; если обычные комментарии, уберите эту проверку).
  • Формируем письмо с данными отзыва и ссылкой на него.
  • Отправляем письмо на email администратора.

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

Как добавить поддержку HTML-писем и кастомизировать уведомления

По умолчанию функция wp_mail отправляет простые текстовые письма. Чтобы сделать уведомления более информативными и красивыми, можно использовать HTML-формат.

Добавим заголовки для HTML и изменим тело письма:

function wpcodex_send_review_notification_html($comment_ID, $comment_approved) {
    if(1 !== $comment_approved) {
        return;
    }

    $comment = get_comment($comment_ID);

    $to = get_option('admin_email');
    $subject = 'Новый отзыв на сайте ' . get_bloginfo('name');

    $headers = array('Content-Type: text/html; charset=UTF-8');

    $message = '<h2>Новый отзыв к записи "' . get_the_title($comment->comment_post_ID) . '"</h2>';
    $message .= '<p><strong>Автор:</strong> ' . esc_html($comment->comment_author) . '</p>';
    $message .= '<p><strong>Email:</strong> ' . esc_html($comment->comment_author_email) . '</p>';
    $message .= '<p><strong>Отзыв:</strong><br>' . nl2br(esc_html($comment->comment_content)) . '</p>';
    $message .= '<p><a href="' . esc_url(get_comment_link($comment_ID)) . '">Перейти к отзыву</a></p>';

    wp_mail($to, $subject, $message, $headers);
}
remove_action('comment_post', 'wpcodex_send_review_notification', 10);
add_action('comment_post', 'wpcodex_send_review_notification_html', 10, 2);

Теперь уведомления будут красивее и удобнее для чтения. Можно добавить CSS стили, если это необходимо, или подключать готовые шаблоны писем.

Использование плагинов для расширения функционала отзывов и уведомлений

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

  • WP Remark — мощный инструмент для управления отзывами и комментариями, включая отправку уведомлений и модерацию. Подробнее на wpshop.ru.
  • Expert Review — плагин для создания отзывов с оценками, который поддерживает уведомления и интеграцию с почтой.
  • Плагин Notifications — универсальный инструмент для настройки любых уведомлений по email, в том числе и по новым комментариям и отзывам.

Использование подобных плагинов позволяет избежать написания кода и быстро настроить необходимые функции.

Как сделать массовую отправку уведомлений по определённому расписанию

Иногда полезно не отправлять письмо при каждом новом отзыве, а собирать их и отправлять сводкой, например, раз в день или раз в неделю. Для этого можно использовать WP-Cron.

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

function wpcodex_schedule_review_summary() {
    if (!wp_next_scheduled('wpcodex_daily_review_summary_event')) {
        wp_schedule_event(time(), 'daily', 'wpcodex_daily_review_summary_event');
    }
}
add_action('wp', 'wpcodex_schedule_review_summary');

function wpcodex_send_review_summary() {
    $args = array(
        'status' => 'approve',
        'type' => 'review',
        'date_query' => array(
            'after' => '1 day ago'
        )
    );
    $comments = get_comments($args);
    if(empty($comments)) {
        return; // Нет новых отзывов
    }

    $message = '<h2>Сводка новых отзывов за сутки</h2><ul>';
    foreach($comments as $comment) {
        $message .= '<li><strong>' . esc_html($comment->comment_author) . '</strong>: ' . esc_html(wp_trim_words($comment->comment_content, 15)) . ' <a href="' . esc_url(get_comment_link($comment->comment_ID)) . '">Подробнее</a></li>';
    }
    $message .= '</ul>';

    $to = get_option('admin_email');
    $subject = 'Сводка новых отзывов за сутки на ' . get_bloginfo('name');
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers);
}
add_action('wpcodex_daily_review_summary_event', 'wpcodex_send_review_summary');

Этот код создаёт ежедневное событие, которое собирает все отзывы за последние 24 часа и отправляет их одним письмом.

Советы по отладке и безопасности отправки email в WordPress

При реализации отправки уведомлений важно:

  • Проверять корректность email-адресов и использовать функцию sanitize_email() перед отправкой.
  • Использовать функции экранирования, такие как esc_html() и esc_url(), чтобы избежать XSS-уязвимостей.
  • Проверять, не попадает ли письмо в спам. Для этого можно настроить SMTP-сервер с помощью плагинов, например WP Mail SMTP.
  • Логировать ошибки отправки, чтобы быстро выявлять возможные проблемы.

Эти простые рекомендации помогут сделать работу с уведомлениями стабильной и безопасной.

Как автоматически отправлять отзывы WordPress на email с примером кода
20.03.2026
WordPress: как создать динамическое меню с подменю через код
08.01.2026
WooCommerce: автоматическое обновление статуса заказа после успешной оплаты
14.05.2026
Как добавить собственные типы табличных данных в WordPress
09.04.2026
Как создать автоматический импорт данных из Google Sheets в WordPress
14.01.2026