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

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

Если WooCommerce не отправляет письма после оформления заказа, сначала нужно локализовать проблему. Основные причины:

  • Проблемы с почтовым сервером или настройками SMTP;
  • Конфликт плагинов, блокирующих отправку;
  • Ошибки в коде темы или плагинов, перехватывающих хуки WooCommerce;
  • Задержки или блокировка на стороне хостинга;
  • Некорректные настройки email-уведомлений в WooCommerce.

Как проверить, работает ли отправка почты в WordPress

Используйте плагин Check Email или отправьте тестовое письмо через WP CLI:

wp mail send --to=youremail@example.com --subject='Test email' --message='If you receive this, mail works.'

Если тестовое письмо не пришло, проблема на уровне сервера или WordPress.

Проверка WooCommerce email

В админке WordPress перейдите WooCommerce → Настройки → Email и убедитесь, что уведомления активны и адреса получателей указаны верно. Можно активировать режим отладки для отправки почты в WooCommerce, добавив в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

После попытки отправки письма проверьте файл wp-content/debug.log на ошибки, связанные с почтой.

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

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

По умолчанию WordPress использует wp_mail(), который опирается на mail() PHP. Часто это ведет к блокировке писем или попаданию в спам. Лучшее решение — настроить SMTP через плагин, например WP Mail SMTP или аналогичный.

Пример настройки SMTP в коде без плагина (в functions.php темы):

add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.example.com';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 587;
    $phpmailer->Username = 'your_smtp_login';
    $phpmailer->Password = 'your_smtp_password';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From = 'noreply@yourdomain.com';
    $phpmailer->FromName = 'Your Store';
});

2. Отключение конфликтующих плагинов

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

3. Проверка кастомного кода и темы

Переключитесь временно на дефолтную тему (например, Storefront). Если письма отправляются — проблема в теме. Проверьте, нет ли хуков, которые перехватывают отправку писем:

remove_all_actions('woocommerce_order_status_completed_notification');

Убедитесь, что не отключаете стандартные уведомления.

4. Проверка логов сервера

Обратитесь к логам почтового сервера и хостинга. Часто блокировка происходит из-за превышения лимитов или отказа сервера SMTP.

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

После внедрения изменений:

  • Сделайте тестовый заказ в WooCommerce;
  • Проверьте, приходит ли письмо покупателю и администратору;
  • Проверьте папку спам;
  • Проверьте логи debug.log и SMTP;
  • Используйте инструменты Mail Tester для проверки SPF, DKIM, DMARC.

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

  • Письма уходят в спам — проверьте DNS-записи SPF, DKIM, DMARC на вашем домене.
  • Ошибка подключения к SMTP — проверьте правильность хоста, порта, логина и пароля SMTP.
  • Конфликт плагинов — используйте чистую установку WooCommerce для теста.
  • Отсутствие адреса отправителя или некорректный From — задайте правильный From через SMTP или фильтр:
add_filter('wp_mail_from', function() { return 'noreply@yourdomain.com'; });
add_filter('wp_mail_from_name', function() { return 'Your Store'; });

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

  • Используйте отдельный почтовый сервис для отправки уведомлений (Mailgun, SendGrid, Amazon SES).
  • Ограничьте количество отправляемых писем, чтобы не попасть под спам-фильтры.
  • Настройте кеширование страниц и исключите из кеша страницы оформления заказа и корзины.
  • Регулярно обновляйте WooCommerce и плагины SMTP для безопасности.

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

МетодПреимуществаНедостатки
Встроенный wp_mail()Простота, не требует настройкиНизкая надежность, письма часто в спаме
SMTP через плагин (WP Mail SMTP)Высокая надежность, простота настройкиЗависимость от стороннего сервиса
Ручная настройка SMTP в кодеГибкость, контрольСложнее в поддержке, требует знаний
Как создать автоматическое удаление старого контента в WordPress
23.12.2025
Добавить уникальные поля в формы регистрации WordPress с подтверждением
21.02.2026
WooCommerce: как автоматически удалять заказы со статусом «Отменено»
19.05.2026
WooCommerce: как автоматически удалять неактивные купоны
26.05.2026
Как автоматически удалять неиспользуемые медиа файлы в WordPress
04.03.2026