Почему важно менять шаблон 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 с помощью плагина:
- Установите и активируйте плагин WooCommerce Email Customizer.
- Перейдите в WooCommerce > Настройки > Email Customizer.
- Выберите нужный тип письма (например, "Заказ завершен") и отредактируйте шаблон через визуальный редактор.
- Сохраните изменения, и теперь все письма этого типа будут отправляться с вашим дизайном.
Самостоятельное создание кастомного 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;
}