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

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

Ошибка с отправкой уведомлений о смене статуса заказа — одна из частых проблем в WooCommerce. Часто пользователи жалуются, что покупатели не получают письма с подтверждением, уведомлениями об оплате или изменении статуса заказа.

Для начала нужно проверить следующие моменты:

  • Включены ли email-уведомления в настройках WooCommerce;
  • Работает ли базовая отправка почты с сервера (например, через wp_mail);
  • Не блокируются ли письма спам-фильтрами;
  • Не конфликтуют ли плагины или тема с отправкой почты;
  • Корректно ли настроен SMTP (если используется);
  • Настроены ли триггеры для отправки писем (статусы заказов и т.д.).

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

1. Проверка включения email-уведомлений в WooCommerce

Перейдите в WooCommerce → Настройки → Email и убедитесь, что нужные уведомления активны (например, "Новый заказ", "Обработка заказа", "Завершённый заказ" и т. д.). Проверьте, что адреса получателей корректны.

2. Тестирование отправки почты в WordPress

Создайте простой тестовый скрипт для проверки wp_mail — если письма не отправляются на базовом уровне, проблема не в WooCommerce:

add_action('admin_post_test_mail', function() {
    wp_mail('your_email@example.com', 'Test mail', 'This is a test mail from WordPress.');
    wp_die('Mail sent (check inbox).');
});

Перейдите по URL https://your-site.com/wp-admin/admin-post.php?action=test_mail и проверьте, дошло ли письмо.

3. Настройка SMTP для надежной отправки писем

Если письма не отправляются или попадают в спам, рекомендуется настроить SMTP-сервер. Для этого можно использовать бесплатный плагин WP Mail SMTP или аналогичный. В настройках укажите SMTP-сервер вашего почтового провайдера (Gmail, Яндекс, Mail.ru и т.п.).

4. Проверка конфликтов с плагинами и темой

Деактивируйте все плагины, кроме WooCommerce, и переключитесь на стандартную тему (например, Twenty Twenty-Three). Проверьте, отправляются ли письма. Если да — включайте плагины по одному, чтобы выявить конфликтующий.

5. Чистка очереди писем и кэширования

Если на сайте используются плагины очереди писем или кэширования (например, WP Rocket, Redis), убедитесь, что они не задерживают отправку писем. Очистите кэш и проверьте настройки отправки.

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

Иногда помогает хук, который принудительно вызывает отправку письма, например:

add_action('woocommerce_order_status_completed', 'force_send_completed_email', 20, 1);
function force_send_completed_email($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    WC()->mailer()->get_emails()['WC_Email_Customer_Completed_Order']->trigger($order_id, $order);
}
<

Этот код вручную отправляет письмо при переходе заказа в статус "завершённый".

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

Чтобы убедиться в исправлении:

  1. Создайте тестовый заказ в магазине;
  2. Измените статус заказа (например, на "обработка" или "завершён");
  3. Проверьте, приходит ли письмо на указанный адрес клиента;
  4. Проверьте папку «Спам» и логи почтового сервера (если есть доступ).

Также используйте плагин WP Mail Logging для ведения логов отправленных писем и диагностики ошибок.

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

  • Письма отключены в настройках WooCommerce. Проверьте раздел Email и включите нужные уведомления.
  • Неправильный email получателя. Адреса должны быть корректными и актуальными.
  • Неправильно настроенный SMTP или его отсутствие. Настройте SMTP через плагин для стабильной отправки.
  • Конфликты с плагинами или темой. Диагностируйте, отключая плагины и меняя тему.
  • Почтовый сервер блокирует сообщения. Проверьте SPF, DKIM, DMARC записи и настройте их при необходимости.
  • Отсутствие или неправильное использование хуков WooCommerce. Используйте стандартные хуки или правильно вызывайте методы отправки.

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

  • Настройте SPF, DKIM и DMARC записи для домена, чтобы письма не попадали в спам и не были подделаны.
  • Используйте SMTP с поддержкой шифрования (TLS) для безопасной передачи почты.
  • Не отправляйте письма синхронно в момент обработки заказа — это может замедлить работу сайта. Используйте очереди отправки, например, через сторонние сервисы (Mailgun, SendGrid и т.п.).
  • Логируйте отправку почты для быстрого обнаружения ошибок.
  • Регулярно обновляйте WooCommerce, тему и плагины для избежания багов и уязвимостей.

Сравнение способов решения проблемы отправки писем в WooCommerce

МетодПлюсыМинусыКогда использовать
Включение email-уведомлений в WooCommerceПростая настройка, без кодаНе помогает при проблемах с серверомПервичная проверка
Настройка SMTP через плагинНадежная отправка, меньше спамаТребует дополнительных настроекПроблемы со стандартной отправкой почты
Принудительный вызов отправки письма через хукГарантирует отправку уведомленияТребует программирования, может дублировать письмаЕсли письма не отправляются автоматически
Диагностика конфликтов с плагинами и темойВыявляет корень проблемыЗанимает времяЕсли стандартные методы не помогают
WooCommerce не отображает атрибуты продуктов: как исправить
19.04.2026
Кастомизация вывода таблицы постов в WordPress с помощью WP_Query
20.12.2025
Как избежать проблемы с хранением данных в WordPress: практические советы
14.02.2026
Как создать уникальный REST API endpoint в WordPress: подробное руководство с примерами
01.12.2025
Решение проблем с хуками в WordPress для разработчиков
09.12.2025