Диагностика проблемы с оповещениями о новом заказе в WooCommerce
Если магазин на WooCommerce перестал отправлять уведомления о новых заказах на электронную почту администратора или менеджера, это может привести к задержке обработки заказов и ухудшить клиентский опыт. Прежде чем переходить к исправлению, необходимо чётко определить источник проблемы.
Основные причины отсутствия уведомлений:
- Неверно настроены email-шаблоны WooCommerce;
- Проблемы с почтовым сервером или SMTP;
- Конфликты с плагинами, которые влияют на отправку писем;
- Проблемы с хуками и статусами заказа;
- Ошибки в коде, переопределяющем стандартную логику уведомлений.
Пошаговое решение: как восстановить отправку уведомлений
Шаг 1. Проверяем стандартные настройки email WooCommerce
Перейдите в админке WordPress: WooCommerce > Настройки > Email. Убедитесь, что уведомление «Новый заказ» включено и адрес получателя указан корректно.
Адрес получателя: admin@example.comТакже проверьте, что шаблон письма не был изменён или повреждён.
Шаг 2. Тестируем отправку почты с сайта
Для проверки работы почты используйте плагин Check Email или отправьте тестовое письмо вручную через функцию wp_mail():
wp_mail('admin@example.com', 'Тестовая почта', 'Проверка отправки email из WordPress');Если письма не приходят, проблема на уровне сервера или настроек SMTP.
Шаг 3. Настраиваем SMTP для надежной отправки писем
Установите и активируйте плагин WP Mail SMTP. Введите параметры SMTP вашего почтового сервера (например, Gmail, Яндекс, или корпоративный SMTP).
После настройки отправьте тестовое письмо из плагина. Если письмо приходит — проблема решена на уровне отправки.
Шаг 4. Проверяем конфликты с плагинами и темой
Отключите все сторонние плагины, кроме WooCommerce, и переключитесь на дефолтную тему WordPress (например, Twenty Twenty-Three). Проверьте, отправляются ли уведомления при новом заказе.
Если письма начали приходить, включайте плагины по одному, чтобы обнаружить виновника.
Шаг 5. Проверяем статус заказа и хук отправки уведомлений
WooCommerce отправляет уведомления о новом заказе при смене статуса на processing или pending. Если в магазине используется кастомная логика смены статусов, убедитесь, что эти статусы задействованы.
add_action('woocommerce_order_status_processing', 'woocommerce_email_new_order_notification');Если уведомления не отправляются, можно вручную вызвать функцию отправки:
function send_admin_new_order_email( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if ( ! $order ) {
return;
}
// Получаем объект email
$mailer = WC()->mailer();
$mails = $mailer->get_emails();
if ( ! empty( $mails ) ) {
foreach ( $mails as $mail ) {
if ( $mail->id === 'new_order' ) {
$mail->trigger( $order_id );
}
}
}
}
add_action( 'woocommerce_thankyou', 'send_admin_new_order_email', 10, 1 );Проверка результата после внедрения
Создайте тестовый заказ в магазине и проверьте, пришло ли уведомление на почту администратора. Рекомендуется проверить:
- Папку «Входящие» и «Спам»;
- Логи почтового сервера (если есть доступ);
- Отчёты плагина SMTP (например, WP Mail SMTP ведет лог отправленных писем).
Частые ошибки и как их исправить
- Неверный email получателя: в настройках WooCommerce или SMTP указан неправильный адрес — исправьте на правильный.
- Письма попадают в спам: проверьте SPF, DKIM и DMARC записи домена, используйте SMTP с авторизацией.
- Конфликт плагинов: сторонние плагины для почты (например, Post SMTP, MailPoet) могут конфликтовать — временно отключайте для теста.
- Кастомизация email-шаблонов: повреждённые или неправильно изменённые шаблоны могут блокировать отправку — восстановите стандартные шаблоны.
- Неправильные статусы заказов: если заказ сразу переводится в статус, для которого не предусмотрены уведомления, они не отправятся — настройте логику статусов.
Практические советы по безопасности и производительности
- Используйте SMTP с авторизацией для отправки почты — это увеличит доставляемость и снизит риск попадания в спам.
- Регулярно обновляйте WooCommerce и плагины, связанные с почтой, чтобы избежать уязвимостей.
- Не используйте устаревшие плагины для почты, которые не поддерживаются разработчиками.
- Логи почты помогают быстро выявлять проблемы с отправкой — активируйте их в плагинах SMTP.
- Если на сайте много заказов, используйте очередь отправки писем (например, через сторонние SMTP-сервисы с API) для снижения нагрузки.
Сравнение способов решения проблемы оповещений
| Метод | Плюсы | Минусы | Компромисс |
|---|---|---|---|
| Стандартные настройки WooCommerce | Просто настроить, не требует кода | Зависит от хостинга и почтового сервера | Хорошо для небольших магазинов |
| Настройка SMTP через WP Mail SMTP | Повышенная надежность доставки | Требует дополнительных настроек | Оптимально для стабильной работы |
| Кастомный вызов функции отправки email | Гибкость, можно интегрировать с кастомными статусами | Требует знаний PHP и WooCommerce | Для опытных разработчиков |