Диагностика проблемы с отправкой писем в WooCommerce
Если WooCommerce не отправляет письма после оформления заказа, это может привести к потере клиентов и снижению доверия. Сначала нужно определить, на каком этапе происходит сбой: на стороне сервера, WordPress или WooCommerce.
- Проверьте, отправляются ли письма вообще. Для этого можно использовать плагин
WP Mail Logging, который записывает все попытки отправки писем. - Убедитесь, что сервер поддерживает функцию
mail()PHP. Для этого создайте тестовый файлmailtest.phpс кодом:
<?php
$to = 'youremail@example.com';
$subject = 'Test mail';
$message = 'This is test mail from server';
$headers = 'From: noreply@yourdomain.com' . "\r\n";
if(mail($to, $subject, $message, $headers)) {
echo 'Письмо отправлено';
} else {
echo 'Ошибка отправки';
}
?>Запустите файл через браузер и проверьте, приходит ли письмо.
Если письмо не приходит, скорее всего, проблема на стороне сервера (блокировка или отсутствие настроенного SMTP).
Проверка настроек WooCommerce для отправки почты
- Перейдите в WooCommerce → Настройки → Email и проверьте, что нужные уведомления включены и адреса отправки корректны.
- Проверьте, не отключены ли письма в коде темы или сторонних плагинах (например, через фильтр
woocommerce_email_enabled_*).
Пошаговое решение проблемы с отправкой писем
1. Настройка SMTP для отправки почты
PHP-функция mail() часто блокируется хостингом. Решение — использовать SMTP. Для этого установите и настройте плагин WP Mail SMTP (https://wpshop.ru/plugins/clearfy?utm_source=wpbloger.ru&utm_medium=article&utm_campaign=woocommerce-kak-izbezhat-problemy-s-otpravkoy-pisem-posle-pokupki).
Пример настройки с Gmail SMTP:
SMTP Host: smtp.gmail.com
SMTP Port: 587
Encryption: TLS
Authentication: ON
SMTP Username: your-email@gmail.com
SMTP Password: your-app-password2. Проверка и исправление фильтров, отключающих email
Откройте файл functions.php текущей темы или плагина и ищите код, который может отключать письма:
add_filter('woocommerce_email_enabled_new_order', '__return_false');Если такие фильтры есть, прокомментируйте или удалите их.
3. Обновление WooCommerce и WordPress
Устаревшие версии иногда вызывают баги с отправкой писем. Обновите WooCommerce и WordPress до последних стабильных версий.
4. Тестирование отправки писем вручную
Можно запустить тестовую отправку через консоль WP-CLI:
wp wc email send --order_id=123 --email=new_orderЗамените 123 на ID реального заказа.
Проверка результата после внедрения
- Создайте тестовый заказ в WooCommerce.
- Проверьте логи плагина
WP Mail Logging, что письмо было отправлено. - Убедитесь, что письмо пришло на указанный email.
- Проверьте, что нет ошибок в
debug.logWordPress (если включен режим отладки).
Частые ошибки и их исправление
- Письма приходят в спам. Настройте SPF, DKIM и DMARC записи домена. Используйте SMTP с авторизацией.
- Письма не отправляются из-за блокировки хостингом. Используйте SMTP с внешним почтовым сервисом (Gmail, SendGrid, Mailgun).
- В теме или плагине отключены письма. Проверьте и удалите фильтры с
woocommerce_email_enabled_*. - Отсутствие уведомлений для конкретного типа писем. Проверьте, включены ли нужные email-уведомления в настройках WooCommerce.
Практические советы по безопасности и производительности
- При использовании SMTP храните пароль в
wp-config.phpили настройках плагина, избегайте хардкода в открытом виде. - Для массовой рассылки заказных писем используйте специализированные сервисы, чтобы избежать блокировок.
- Регулярно очищайте логи плагина
WP Mail Logging, чтобы не перегружать базу данных. - Для ускорения сайта отключите ненужные email-уведомления, чтобы минимизировать нагрузку.
Сравнение способов решения проблемы отправки писем
| Метод | Плюсы | Минусы | Рекомендации |
|---|---|---|---|
| PHP mail() | Простая настройка, нативно поддерживается | Может блокироваться хостингом, письма в спам | Только для тестов, не для продакшена |
| SMTP через WP Mail SMTP | Надежная доставка, поддержка авторизации | Нужно настраивать, требует учетных данных | Оптимальный выбор для большинства сайтов |
| Плагины массовой рассылки (SendGrid, Mailgun) | Высокая скорость и надежность, аналитика | Платные сервисы, сложнее настройка | Для больших интернет-магазинов и маркетинга |