Диагностика проблем с отправкой уведомлений WooCommerce
Если в вашем магазине на WooCommerce клиенты или администраторы не получают уведомления о новых заказах, это может привести к потере продаж и ухудшению сервиса. Первым делом нужно определить, на каком этапе происходит сбой:
- Проверьте настройки электронной почты WooCommerce в
WooCommerce > Настройки > Электронная почта. Убедитесь, что почтовый адрес правильный и уведомления включены. - Проверьте, отправляются ли вообще письма с сайта. Для этого можно использовать плагин WP Mail Logging или аналогичные, чтобы видеть логи отправляемых писем.
- Проверьте, не попадают ли письма в спам у получателей.
- Сделайте тестовую отправку из раздела
WooCommerce > Настройки > Электронная почта, чтобы проверить базовую работу. - Проверьте конфигурацию SMTP-сервера, если вы используете сторонний SMTP-плагин.
Пошаговое решение проблемы с отправкой уведомлений
1. Настройка SMTP для корректной отправки
Частая причина — неправильная работа функции wp_mail(), которая по умолчанию использует mail() PHP, плохо работающую на многих хостингах. Рекомендуется настроить SMTP:
add_action('phpmailer_init', function($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.example.com';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587;
$phpmailer->Username = 'user@example.com';
$phpmailer->Password = 'yourpassword';
$phpmailer->SMTPSecure = 'tls';
$phpmailer->From = 'no-reply@example.com';
$phpmailer->FromName = 'Магазин';
});Этот код можно добавить в файл functions.php вашей темы или в небольшой плагин. Но лучше использовать проверенные SMTP-плагины, например WP Mail SMTP.
2. Проверка и переустановка шаблонов писем
Если уведомления отправляются, но письма приходят пустыми или с ошибками, возможно, повреждены шаблоны WooCommerce:
- Перейдите в
WooCommerce > Настройки > Электронная почта - Внизу страницы найдите кнопку для сброса шаблонов писем к дефолтным.
- Если вы делали кастомизацию шаблонов в теме, проверьте, что они совместимы с текущей версией WooCommerce.
3. Очистка очереди почты при использовании плагинов очереди
Если на сайте установлен плагин для очередной отправки писем (например, WP Offload SES, или специализированные SMTP-решения), очистите очередь и убедитесь, что плагин работает корректно.
4. Проверка конфликтов с плагинами
Отключите все плагины, кроме WooCommerce и SMTP, и проверьте отправку уведомлений. Если проблема решена — включайте плагины по одному, чтобы найти конфликтующий.
Как проверить, что уведомления теперь работают
- Отправьте тестовый заказ в магазине и проверьте, приходит ли письмо администратору и клиенту.
- Используйте плагин WP Mail Logging для просмотра логов отправленных писем.
- Проверьте папки «Спам» у получателей.
- Можно отправить тестовое письмо из настроек WooCommerce > Электронная почта.
Частые ошибки и их исправление
- Письма не отправляются вообще — проблема с функцией
wp_mail()или сервером SMTP. Решение: настройте SMTP через плагин или вручную. - Письма приходят в спам — отсутствие SPF, DKIM, DMARC в настройках домена. Проверьте и настройте эти записи у регистратора или хостера.
- Письма пустые или с ошибками верстки — повреждены шаблоны WooCommerce. Сбросьте шаблоны к дефолтным.
- Конфликты плагинов — отключайте плагины поочередно и тестируйте.
Практические советы по безопасности и производительности
- Используйте SMTP с безопасным соединением (TLS/SSL).
- Настройте SPF и DKIM для вашего домена — это уменьшит попадание писем в спам.
- Регулярно обновляйте WooCommerce и плагины, чтобы не было уязвимостей.
- Используйте кеширование страниц, но исключайте страницы оформления заказа и личного кабинета, чтобы не мешать работе WooCommerce.
Сравнение способов настройки отправки почты в WooCommerce
| Метод | Плюсы | Минусы |
|---|---|---|
| PHP mail() | Простая настройка, без плагинов | Низкая надежность, письма часто в спаме |
| SMTP с плагином (WP Mail SMTP и др.) | Высокая надежность, поддержка логов, безопасность | Требует настройки SMTP-сервера |
| Внешние сервисы (SendGrid, Mailgun) | Максимальная доставка, аналитика | Сложнее настройка, может быть платным |