Как изменить шаблон электронной почтовой рассылки в WordPress

Почему важно менять шаблон email в WordPress

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

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

В этой статье разберём разные способы изменения шаблонов email в WordPress — от использования готовых плагинов до самостоятельной доработки с примерами кода.

Стандартные возможности WordPress для изменения email-шаблонов

По умолчанию WordPress использует функцию wp_mail() для отправки email, а содержимое писем формируется в ядре или в плагинах. Для базовой кастомизации можно:

  • Изменить заголовок письма и отправителя с помощью хуков wppay_wp_mail_from и wppay_wp_mail_from_name;
  • Перехватить содержимое письма с помощью фильтра wppay_wp_mail_content (этого в ядре нет, но можно добавить через переопределение wp_mail() или обёртку);
  • Использовать функцию wppay_custom_wp_mail, чтобы расширить стандартную отправку письма и добавить HTML-шаблоны.

Ниже пример, как изменить имя и email отправителя с помощью хуков:

add_filter('wp_mail_from', 'wppay_wp_mail_from');
function wppay_wp_mail_from($original_email_address) {
    return 'no-reply@wppay.ru';
}

add_filter('wp_mail_from_name', 'wppay_wp_mail_from_name');
function wppay_wp_mail_from_name($original_email_from) {
    return 'WP Pay Support';
}

Используем плагины для кастомных email-шаблонов

Если хочется быстро и без глубоких знаний PHP изменить шаблоны писем, можно воспользоваться мощными плагинами. Вот несколько популярных и удобных:

  • WP Mail SMTP — кроме настройки SMTP, позволяет кастомизировать отправителя и шаблоны;
  • Email Templates — простой плагин с визуальным редактором шаблонов для стандартных уведомлений;
  • WooCommerce Email Customizer — если у вас интернет-магазин на WooCommerce, этот плагин поможет сделать все письма полностью уникальными;
  • Better Notifications for WP — позволяет создавать и редактировать любые уведомления админов и пользователей с HTML-поддержкой.

Пример: как добавить кастомный шаблон письма в WooCommerce с помощью плагина:

  1. Установите и активируйте плагин WooCommerce Email Customizer.
  2. Перейдите в WooCommerce > Настройки > Email Customizer.
  3. Выберите нужный тип письма (например, "Заказ завершен") и отредактируйте шаблон через визуальный редактор.
  4. Сохраните изменения, и теперь все письма этого типа будут отправляться с вашим дизайном.

Самостоятельное создание кастомного HTML-шаблона для email

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

function wppay_get_email_html_template($subject, $message) {
    $header = '<div style="background:#f8f8f8;padding:20px;text-align:center;"><h2>WP Pay</h2></div>';
    $footer = '<div style="background:#f1f1f1;padding:10px;text-align:center;font-size:12px;color:#999;">Это письмо отправлено с сайта wppay.ru</div>';
    $body = '<div style="padding:20px;font-family:Arial,sans-serif;">' . $message . '</div>';
    return $header . $body . $footer;
}

add_filter('wp_mail_content', 'wppay_customize_email_content', 10, 2);
function wppay_customize_email_content($content, $args) {
    return wppay_get_email_html_template($args['subject'], $content);
}

Здесь мы оборачиваем обычный текст письма в HTML с шапкой и подвалом, задавая стили. Такой подход позволяет централизованно менять дизайн всех писем.

Как тестировать и отлаживать email в WordPress

При разработке и кастомизации писем важно уметь быстро тестировать отправку и отображение. Вот несколько советов:

  • Используйте плагины, например, WP Mail Logging для просмотра всех отправленных писем в админке;
  • Для локальной разработки настройте SMTP-сервер, например, MailHog, чтобы перехватывать письма;
  • Проверяйте верстку в различных почтовых клиентах, так как поддержка HTML и CSS сильно отличается;
  • Используйте валидаторы HTML и специальные сервисы для email (например, Litmus, Email on Acid) для проверки совместимости;
  • Для тестовых рассылок применяйте функцию wppay_send_test_email с примером ниже.
function wppay_send_test_email() {
    $to = 'your-email@example.com';
    $subject = 'Тестовое письмо с wppay.ru';
    $message = 'Это тестовое письмо для проверки шаблонов.';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    wp_mail($to, $subject, wppay_get_email_html_template($subject, $message), $headers);
}
// Запуск теста вручную, например, добавьте вызов в functions.php
// wppay_send_test_email();

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

Отправка почты напрямую через wp_mail() может быть ненадёжной и попадать в спам. Чтобы повысить доставляемость:

  • Используйте SMTP-сервисы (Gmail, SendGrid, Mailgun) с плагином WP Mail SMTP;
  • Добавьте SPF, DKIM и DMARC записи в DNS вашего домена, чтобы подтвердить подлинность писем;
  • Минимизируйте использование внешних стилей и скриптов внутри писем;
  • Оптимизируйте изображения, используемые в письмах, чтобы не замедлять загрузку;
  • Обрабатывайте ошибки отправки и логируйте результаты для быстрого реагирования.

Например, добавим обработчик ошибок в обёртку wppay_custom_wp_mail:

function wppay_custom_wp_mail($to, $subject, $message, $headers = '', $attachments = array()) {
    $html_message = wppay_get_email_html_template($subject, $message);
    if (is_array($headers)) {
        $headers[] = 'Content-Type: text/html; charset=UTF-8';
    } else {
        $headers .= "\r\nContent-Type: text/html; charset=UTF-8";
    }
    $sent = wp_mail($to, $subject, $html_message, $headers, $attachments);
    if (!$sent) {
        error_log('Ошибка отправки письма: ' . $subject . ' на адрес ' . $to);
    }
    return $sent;
}
Как установить лимит на платежи в WordPress по суммам и пользователям
14.03.2026
WooCommerce: как исключить оплату для определённых продуктов
21.05.2026
Как отловить и исправить ошибки платежных запросов в WordPress
07.04.2026
Как отладить проблемы с подключением платежных систем в WordPress
02.02.2026
Как создать автоматическую отчетность по платежам в WordPress
26.12.2025