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

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

Проблема с отправкой уведомлений о новых заказах — одна из частых в WooCommerce. Клиенты и администраторы не получают письма, что ведет к пропущенным заказам и негативному опыту пользователей. Для диагностики используйте следующие шаги:

  • Проверьте статус заказов в админке WooCommerce (обычно "Обработка" или "Новый").
  • Убедитесь, что почтовая функция PHP работает на сервере. Для этого создайте тестовый скрипт mailtest.php с кодом
    <?php
    mail('ваш_email@пример.com', 'Test mail', 'Это тестовое письмо');
    ?>
    и запустите его через браузер.
  • Проверьте настройки WooCommerce: WooCommerce > Настройки > Электронная почта. Все типы писем должны быть активны, адреса получателей указаны правильно.
  • Просмотрите логи почты в WooCommerce, если включена опция логирования.
  • Используйте плагин WP Mail Logging для отслеживания попыток отправки писем.
  • Проверьте, не блокирует ли отправку писем серверный firewall или антивирус.

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

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

PHP mail() часто ограничен или блокируется хостингом. Использование SMTP с проверенной почтой — лучший способ. Рекомендуемый плагин: WP Mail SMTP.

<?php
// Пример конфигурации SMTP через плагин WP Mail SMTP
add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.yourmail.com';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 587;
    $phpmailer->Username = 'your_email@domain.com';
    $phpmailer->Password = 'your_password';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From = 'your_email@domain.com';
    $phpmailer->FromName = 'Ваш магазин';
});
?>

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

Иногда кастомные шаблоны писем или сторонние плагины ломают отправку. Верните стандартные шаблоны:

  • Перейдите в WooCommerce > Настройки > Электронная почта.
  • Для каждого шаблона нажмите "Управлять" и сбросьте изменения.

3. Проверка хуков и кастомного кода, влияющего на отправку

Если в functions.php или плагинах есть фильтры, изменяющие логику отправки писем, временно деактивируйте их. Особенно фильтры на woocommerce_email_enabled_* и woocommerce_email_recipient_*.

// Пример отключения отправки письма о новом заказе
add_filter('woocommerce_email_enabled_new_order', '__return_false');

4. Проверка очереди писем (если используется плагин очереди)

Плагины для очередной отправки писем (например, WP Offload SES) могут сбои в очереди. Очистите очередь или временно выключите такие плагины.

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

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

  • Создайте тестовый заказ в WooCommerce с тестовой почтой.
  • Убедитесь, что вы и администратор получили письма о новом заказе.
  • Проверьте логи плагина WP Mail Logging, все ли письма отправлены без ошибок.
  • Если письма не пришли, проверьте папку "Спам" и логи сервера SMTP.

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

  • Письма не отправляются вообще: Проверьте работу функции mail() на сервере, настройте SMTP.
  • Письма приходят в спам: Настройте SPF, DKIM и DMARC для домена, используйте проверенный SMTP-сервер.
  • Письма отправляются, но без данных заказа: Возможно, кастомные шаблоны или хуки нарушают передачу данных. Верните стандартные шаблоны.
  • Конфликт плагинов: Отключите недавно добавленные плагины, которые могут влиять на почту.
  • Неправильные адреса получателей в настройках WooCommerce: Проверьте раздел "Электронная почта" в настройках WooCommerce.

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

  • Используйте SMTP с безопасным протоколом TLS.
  • Регулярно обновляйте плагины и WooCommerce, чтобы избежать уязвимостей.
  • Для больших магазинов используйте сторонние сервисы рассылок (например, Mailgun или SendGrid) через API или SMTP.
  • Ограничьте количество отправляемых писем в минуту, чтобы избежать блокировок провайдером.
  • Логи почты очищайте регулярно, чтобы не нагружать базу данных.

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

МетодПлюсыМинусыРекомендуется для
PHP mail()Простота, не требует настроекНизкая надежность, письма попадают в спамТестовые сайты, простые проекты
SMTP через WP Mail SMTPНадежная доставка, поддержка TLSТребует настройки сервера и учетных данныхЛюбые коммерческие проекты
Сервисы рассылки (Mailgun, SendGrid)Высокая масштабируемость и аналитикаСложнее в настройке, платные тарифыБольшие магазины с большим объемом писем

Наш каталог плагинов WordPress