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

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

Почему важно правильно реализовать автоматическую отправку email в WordPress

Отправка писем с сайта — не просто отправка текста. Важно гарантировать доставляемость писем, корректное оформление, возможность кастомизации и защиту от попадания в спам. Кроме того, использование стандартных функций WordPress, таких как wp_mail(), требует дополнительной настройки SMTP или интеграции внешних сервисов.

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

Основы отправки email в WordPress с помощью кода

В WordPress для отправки почты используется функция wp_mail(). Она является оберткой для стандартной PHP-функции mail() и упрощает отправку писем. Рассмотрим базовый пример отправки письма:

function wpeditor_send_test_email() {
    $to = 'user@example.com';
    $subject = 'Тестовое письмо от wpeditor.ru';
    $message = 'Это тестовое сообщение, отправленное из WordPress.';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    wp_mail($to, $subject, $message, $headers);
}

Этот код отправит простое HTML-письмо. Добавим вызов этой функции, например, при определённом событии или через крон-задание.

Настройка SMTP для надежной доставки

По умолчанию wp_mail() использует сервер хостинга, что часто приводит к проблемам с доставкой и попаданием в спам. Чтобы этого избежать, рекомендуют настроить SMTP-сервер.

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

add_action('phpmailer_init', 'wpeditor_configure_smtp');
function wpeditor_configure_smtp($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.yourhost.com';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 587;
    $phpmailer->Username = 'your_email@domain.com';
    $phpmailer->Password = 'your_email_password';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From = 'your_email@domain.com';
    $phpmailer->FromName = 'Ваш сайт';
}

После такой настройки письма будут отправляться через надежный SMTP-сервер, что значительно повысит доставляемость.

Автоматизация отправки email при событиях WordPress

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

Пример: отправка письма администратору при новом комментарии

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

add_action('comment_post', 'wpeditor_notify_admin_new_comment', 10, 2);
function wpeditor_notify_admin_new_comment($comment_ID, $comment_approved) {
    if(1 === $comment_approved) {
        $comment = get_comment($comment_ID);
        $post = get_post($comment->comment_post_ID);
        $to = get_option('admin_email');
        $subject = 'Новый комментарий на вашем сайте';
        $message = 'Появился новый комментарий к статье "' . $post->post_title . '".';
        $message .= '<br>Текст комментария: ' . $comment->comment_content;
        $headers = array('Content-Type: text/html; charset=UTF-8');
        wp_mail($to, $subject, $message, $headers);
    }
}

Так вы будете автоматически получать уведомления о новых комментариях без дополнительных плагинов.

Отправка напоминаний с помощью WP-Cron

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

Пример регистрации задачи и функции отправки:

add_action('wpeditor_weekly_email_event', 'wpeditor_send_weekly_email');
function wpeditor_send_weekly_email() {
    $to = 'subscriber@example.com';
    $subject = 'Еженедельная рассылка';
    $message = 'Это ваша еженедельная рассылка с обновлениями.';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    wp_mail($to, $subject, $message, $headers);
}

// Регистрируем событие при активации темы или плагина
if (! wp_next_scheduled('wpeditor_weekly_email_event')) {
    wp_schedule_event(time(), 'weekly', 'wpeditor_weekly_email_event');
}

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

Рекомендуемые плагины для автоматизации email в WordPress

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

  • WP Mail SMTP — позволяет настроить SMTP отправку с удобным интерфейсом и поддержкой популярных почтовых сервисов.
  • Expert Review — плагин для создания форм с отправкой уведомлений и автоматизацией рассылок, отлично подходит для сайтов с обратной связью.
  • My Popup — помогает создавать всплывающие окна с подписками на рассылку, автоматизируя сбор email адресов.
  • WPRemark — автоматизирует отправку комментариев и уведомлений, расширяя стандартные возможности WordPress.

Все эти плагины доступны на WPSHOP.RU с дополнительными настройками и поддержкой.

Советы по улучшению доставляемости и безопасности email

Чтобы письма доходили до пользователей, нужно учитывать несколько важных аспектов:

Правильное оформление писем

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

Защита от спама

Отправляйте письма только заинтересованным пользователям, добавляйте механизмы подтверждения подписки (double opt-in), используйте SPF, DKIM и DMARC записи на вашем домене.

Логирование отправленных писем

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

function wpeditor_log_wp_mail($to, $subject, $message) {
    $log = date('Y-m-d H:i:s') . " TO: $to | SUBJECT: $subject\n";
    error_log($log, 3, WP_CONTENT_DIR . '/mail.log');
}
add_action('wp_mail', 'wpeditor_log_wp_mail', 10, 3);

Так вы сможете отслеживать, какие письма и когда отправлялись.

Итоги и рекомендации для разработчиков

Создание автоматической отправки email в WordPress — задача, которую можно решить как простым кодом на wp_mail(), так и с помощью мощных плагинов. Важно обеспечить надежную доставку через SMTP, продумать логику отправки при событиях и соблюдать стандарты оформления писем.

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

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

⭐⭐⭐⭐⭐
WooCommerce: решение проблемы с пропавшими вариантами товаров
12.05.2026
Как использовать REST API для автоматического обновления товаров в WooCommerce
03.05.2026
Автоматическое удаление устаревших данных через Transient API в WordPress
22.03.2026
Как создать динамические формы в WordPress с помощью плагинов и кода
18.11.2025
Как настроить автоматический импорт товаров в WordPress: пошаговое руководство
26.11.2025
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙