WooCommerce: не отправляются письма о статусах заказов — как исправить

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

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

  • Активна ли функция отправки email в WooCommerce (WooCommerce > Настройки > Email) и настроены ли нужные уведомления;
  • Правильно ли настроен SMTP-сервер на хостинге — стандартная функция PHP mail() часто блокируется; рекомендуется использовать SMTP с аутентификацией;
  • Не конфликтуют ли плагины, связанные с почтой или WooCommerce (например, плагины безопасности, кеширования);
  • Проверить логи сервера почты и WooCommerce (если включены) на наличие ошибок отправки;
  • Убедиться, что тема или кастомный код не отключают хуки отправки писем.

Пошаговое решение: настраиваем корректную отправку email в WooCommerce через SMTP

1. Установка и настройка SMTP-плагина

Для надежной доставки писем используйте плагин WP Mail SMTP (https://ru.wordpress.org/plugins/wp-mail-smtp/). После установки и активации:

  1. Перейдите в WP Mail SMTP > Settings;
  2. Выберите SMTP-провайдера (например, Gmail, Яндекс, Mail.ru или собственный SMTP-сервер хостинга);
  3. Заполните поля SMTP-сервера, порт, метод шифрования, логин и пароль;
  4. Сохраните настройки и отправьте тестовое письмо из интерфейса плагина.

2. Проверка и включение писем WooCommerce

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

  • Новый заказ;
  • Обработка заказа;
  • Завершённый заказ;
  • Отменённый заказ.

При необходимости отредактируйте шаблоны писем или проверьте, что они не отключены.

3. Проверка пользовательских изменений

Если вы кастомизировали функционал отправки писем через хуки типа woocommerce_email_enabled_{email_id} или woocommerce_email_recipient_{email_id}, временно отключите этот код и проверьте, отправляются ли письма.

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

add_action('woocommerce_thankyou', 'force_send_new_order_email', 20, 1); function force_send_new_order_email($order_id) { if (!$order_id) return; $order = wc_get_order($order_id); if (!$order) return; $mailer = WC()->mailer(); $mails = $mailer->get_emails(); if (!empty($mails['WC_Email_New_Order'])) { $mails['WC_Email_New_Order']->trigger($order_id); } }

Добавьте этот код в файл functions.php вашей темы для проверки, отправляется ли письмо о новом заказе.

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

  • Отправьте тестовый заказ на сайте;
  • Проверьте, пришло ли уведомление на email администратора и покупателя;
  • Если письма не пришли, проверьте папку «Спам» и логи SMTP-плагина;
  • Для дополнительной диагностики включите WP_DEBUG и WP_DEBUG_LOG в wp-config.php, чтобы отслеживать ошибки.

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

  • Письма уходят в спам — настройте SPF, DKIM и DMARC записи для домена, используйте SMTP с авторизацией и корректным From-адресом;
  • Письма не отправляются из-за блокировки хостингом — используйте сторонний SMTP-сервис (Gmail, SendGrid, Mailgun);
  • Конфликт плагинов — отключите плагины, связанные с почтой или кешированием, поочередно для выявления виновника;
  • Кастомный код отключает отправку — проверьте все хуки, связанные с email, в functions.php и плагинах.

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

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

Сравнение способов настройки отправки email в WooCommerce

МетодПлюсыМинусы
Стандартная PHP mail()Простая настройка, не требует плагиновНизкая надежность, письма часто попадают в спам или не отправляются
SMTP через WP Mail SMTPНадежная отправка, поддержка популярных почтовых сервисов, логированиеТребует настройки аккаунта SMTP и плагина
Собственный сервер рассылки (например, Mailgun)Высокая масштабируемость, контроль доставкиСложнее в настройке, требует дополнительных сервисов
Кастомные условные аргументы для WP_Query в WordPress: практическое руководство
24.03.2026
Решение проблем с хуками в WordPress для разработчиков
09.12.2025
Автоматическое отключение плагинов в WordPress по условиям с примерами кода
18.03.2026
WooCommerce: отключение автоматического обновления продуктов без плагинов
13.05.2026
WooCommerce не отображает атрибуты продуктов: как исправить
19.04.2026