WooCommerce: отладка проблем с отправкой писем после оформления заказа

Диагностика проблемы с отправкой писем в WooCommerce

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

  • Проверьте, активированы ли уведомления в настройках WooCommerce WooCommerce > Настройки > Email.
  • Посмотрите, не попадают ли письма в спам.
  • Используйте плагин WP Mail Logging (https://ru.wordpress.org/plugins/wp-mail-logging/) для логирования всех отправляемых писем.
  • Проверьте работу функции wp_mail() на вашем хостинге, создав простой тестовый скрипт.

Тестирование отправки почты вручную

Создайте файл test-mail.php в корне сайта с таким кодом:

<?php
wp_mail('ваш_email@пример.ком', 'Тестовая почта', 'Если вы получили это письмо, отправка работает.');
?>

И запустите его через браузер. Если письмо не приходит, проблема на уровне хостинга или конфигурации PHP.

Пошаговое решение проблем с отправкой писем в WooCommerce

1. Использование SMTP вместо стандартной функции wp_mail()

Большинство проблем с отправкой почты связаны с тем, что почтовый сервер хостинга блокирует функцию mail() PHP. Решение — настроить SMTP-сервер для отправки писем.

Рекомендуемые плагины:

Пример настройки SMTP через WP Mail SMTP (кратко):

  1. Установите и активируйте плагин.
  2. Перейдите в WP Mail SMTP > Настройки.
  3. Выберите SMTP как метод отправки.
  4. Введите данные SMTP-сервера вашего почтового провайдера (например, Gmail, Яндекс, Mail.ru, или корпоративный SMTP).
  5. Сохраните настройки и отправьте тестовое письмо.

2. Проверка шаблонов и хуков WooCommerce

Если письма не отправляются только для определённых статусов заказов или кастомных уведомлений, возможно, проблема в переопределении шаблонов email или хуков.

Проверьте, не отключены ли нужные уведомления в WooCommerce > Настройки > Email.

Если вы кастомизировали шаблоны писем в папке темы woocommerce/emails/, временно переименуйте папку, чтобы проверить отправку с дефолтными шаблонами.

3. Логирование и отладка через код

Для детального анализа можно добавить логирование в файл wp-content/debug.log с помощью функции:

add_action('woocommerce_email_before_send', function($email) {
    error_log('Отправка письма: ' . $email->id);
});

Это покажет, какие письма пытается отправить WooCommerce.

Проверка результата после внедрения

После настройки SMTP и проверки шаблонов:

  • Отправьте тестовое письмо из плагина SMTP.
  • Создайте тестовый заказ с разными статусами, чтобы проверить, приходят ли уведомления.
  • Проверьте лог плагина WP Mail Logging — должны быть записи об отправленных письмах.

Частые ошибки и как исправить

  • Письма не отправляются, хотя тест SMTP успешен. Проверьте, не перехватывают ли письма плагины безопасности или кастомный код, отключающий почту.
  • Письма приходят в спам. Настройте DKIM, SPF и DMARC записи в DNS вашего домена для почтового сервера.
  • Проблемы с кодировкой в письмах. Убедитесь, что тема письма и тело содержат правильную кодировку UTF-8, особенно если используются нестандартные символы.
  • Кастомные уведомления не отправляются. Проверьте, что вызов WC()->mailer()->send() сделан корректно с нужными параметрами.

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

  • Не храните пароли SMTP в коде — используйте настройки плагина с шифрованием.
  • Ограничьте количество попыток отправки писем, чтобы избежать блокировок почтовых серверов.
  • Используйте отдельный почтовый домен или поддомен для отправки писем WooCommerce, чтобы повысить доставляемость.
  • Регулярно обновляйте плагины SMTP и WooCommerce для совместимости и безопасности.

Сравнение способов отправки почты в WooCommerce

СпособПреимуществаНедостатки
Стандартная функция wp_mail()Простая настройка, не требует плагиновМогут блокировать хостинг или письма попадать в спам
SMTP с плагином (WP Mail SMTP, Post SMTP)Высокая надежность доставки, поддержка популярных почтовых сервисовТребует настройки и хранения данных SMTP
Сервисы сторонних SMTP (SendGrid, Mailgun)Отслеживание доставки, масштабируемостьПлатные сервисы, сложность настройки
Как установить и настроить WPRemark для массового управления комментариями в WordPress
08.01.2026
Как создать динамическую форму на AJAX в WordPress с примером кода
31.12.2025
Как использовать REST API для управления пользователями в WordPress
29.01.2026
WooCommerce: Как изменить страницу «Спасибо» после оформления заказа
16.06.2026
Как создать свой виджет для WordPress
25.11.2025