WooCommerce Заказы не отправляют письма подтверждения: 7 исправлений
Почему WooCommerce-письма перестают работать
WooCommerce отправляет письма через функцию WordPress wp_mail(), которая по умолчанию использует PHP-функцию mail(). Большинство хостинг-провайдеров блокируют или ограничивают её. Результат: письма выглядят так, будто отправляются, но никогда не доходят.
Это одна из самых распространённых проблем поддержки WooCommerce, и почти всегда она связана с настройками SMTP, а не с ошибкой WooCommerce.
Шаг 1: Проверьте настройки электронной почты WooCommerce
Перейдите в WooCommerce → Настройки → Электронные письма.
Убедитесь:
- Уведомление "Новый заказ" включено и имеет действительный адрес получателя
- "Заказ клиента обрабатывается" включено
- Адрес "От" исходит из вашего реального домена (не Gmail/Hotmail)
Шаг 2: Отправьте тестовое письмо
Всё ещё в WooCommerce → Настройки → Электронные письма, откройте любой шаблон письма и нажмите "Отправить тестовое письмо".
- Если тестовое письмо пришло → WooCommerce работает, проблема в триггерах статуса заказа
- Если тестовое письмо не пришло → доставка почты WordPress сломана
Шаг 3: Установите и настройте WP Mail SMTP
Этот плагин заменяет PHP-почту на правильное SMTP-соединение. Он бесплатный и решает 90% проблем с электронной почтой WordPress.
WooCommerce → Плагины → Добавить новый → поиск "WP Mail SMTP"
После установки перейдите в Настройки WP Mail SMTP → Общие, выберите провайдера из списка ниже и введите его данные:
- Brevo (Sendinblue): зарегистрируйтесь на brevo.com, войдите, перейдите в SMTP & API → API Keys, создайте ключ. В плагине выберите "Sendinblue", вставьте ключ API.
- Mailgun: зарегистрируйтесь на mailgun.com, получите домен и API-ключ (раздел Domains). В плагине выберите "Mailgun", введите регион (US/EU), домен и API-ключ.
- SendGrid: зарегистрируйтесь на sendgrid.com, создайте API-ключ с правами "Mail Send". В плагине выберите "SendGrid", вставьте ключ.
Рекомендуемые SMTP-провайдеры (бесплатный тариф):
| Провайдер | Бесплатный лимит | Лучше всего подходит для |
|---|---|---|
| Brevo (Sendinblue) | 300/день | Большинство сайтов |
| Mailgun | 100/день | Разработчики |
| SendGrid | 100/день | Высокие объёмы |
| Gmail SMTP | 500/день | Личные проекты |
После настройки используйте встроенный инструмент тестирования WP Mail SMTP → Email Test, чтобы отправить тестовое письмо.
Шаг 4: Проверьте папки со спамом и настройте DNS
Попросите клиента проверить спам. Gmail особенно фильтрует транзакционные письма с IP-адресов общего хостинга.
Если письма попадают в спам, добавьте DNS-записи у вашего хостинг-провайдера или регистратора домена:
- SPF: создайте TXT-запись со значением
v=spf1 include:_spf.google.com ~all(если используете Gmail) илиv=spf1 include:sendinblue.com ~allдля Brevo. - DKIM: ваш почтовый провайдер (Brevo/Mailgun и т.д.) сгенерирует DNS-запись – скопируйте её как TXT-запись.
- Убедитесь, что адрес "От" совпадает с вашим доменом.
Шаг 5: Проверьте последовательность статусов заказа
WooCommerce отправляет письма только при определённых изменениях статуса:
| Изменение статуса | Отправленное письмо |
|---|---|
| Ожидает → Обрабатывается | Клиент: "Заказ получен" |
| Обрабатывается → Завершён | Клиент: "Заказ выполнен" |
| Любой → Приостановлен | Клиент: "Заказ приостановлен" |
Если заказы переходят сразу в "Завершён" (часто бывает с цифровыми товарами или некоторыми платёжными шлюзами) — письмо "Обрабатывается" никогда не отправляется.
Проверьте: WooCommerce → Заказы — в каком статусе оказываются новые заказы?
Шаг 6: Проверьте конфликты плагинов
Некоторые плагины вмешиваются в отправку писем WooCommerce и случайно ломают её. Чтобы проверить:
- Отключите все плагины, кроме WooCommerce
- Сделайте тестовый заказ
- Если письмо пришло → активируйте плагины по одному, чтобы найти конфликт
Шаг 7: Проверьте журнал ошибок
Добавьте в wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Сделайте тестовый заказ и проверьте wp-content/debug.log на наличие ошибок, связанных с почтой. После диагностики обязательно отключите отладку (закомментируйте строки или удалите).
Быстрое исправление
В 9 из 10 случаев: установите WP Mail SMTP, настройте его с бесплатной учётной записью Brevo или Mailgun — и всё готово. Занимает около 15 минут.
Если вы выполнили все шаги, но письма всё ещё не отправляются, или вы не хотите делать это самостоятельно — мы в DevCev Digital можем провести диагностику и настроить всё за вас. Просто опишите проблему здесь: /free-diagnostic.