Диагностика задачи: зачем нужна автоматизация сообщений в WooCommerce
В интернет-магазине на WooCommerce важно не только корректно принимать заказы, но и вовремя информировать покупателей о статусах заказа, способах доставки, специальных предложениях или благодарить за покупку. Часто базовые уведомления WooCommerce не покрывают все потребности, и возникает необходимость настроить автоматическую отправку кастомных сообщений сразу после оформления заказа.
Типичные запросы:
- Отправка SMS или дополнительных email с инструкциями;
- Автоматическое добавление к письму купона на следующую покупку;
- Персонализированные сообщения с данными заказа и контактами поддержки;
- Отправка сообщений в мессенджеры через интеграцию.
Как определить, что базовые уведомления WooCommerce ограничены
Если вы хотите расширить функционал стандартных уведомлений, проверьте:
- В WooCommerce > Настройки > Email доступны ли нужные шаблоны и их настройка;
- Нужно ли менять содержание писем динамически в зависимости от данных заказа;
- Интеграция с внешними сервисами (SMS, Telegram, WhatsApp) невозможна без кода или плагинов;
- Отсутствует поддержка многоязычности или условных отправок.
Пошаговое решение: добавляем автоматическую отправку кастомного email после заказа
Рассмотрим, как программно добавить отправку дополнительного письма сразу после оформления заказа, используя стандартные хуки WooCommerce и WP Mail.
Шаг 1. Создаем функцию отправки письма
function wpsocial_send_custom_email_after_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
$to = $order->get_billing_email();
$subject = 'Спасибо за ваш заказ №' . $order_id;
$headers = array('Content-Type: text/html; charset=UTF-8');
$message = '<h1>Ваш заказ принят</h1>';
$message .= '<p>Спасибо за покупку в нашем магазине!</p>';
$message .= '<p>Ваш заказ №' . $order_id . ' будет обработан в ближайшее время.</p>';
$message .= '<p>Если у вас есть вопросы, свяжитесь с поддержкой.</p>';
wp_mail( $to, $subject, $message, $headers );
}Шаг 2. Подключаем функцию к хуку оформления заказа
add_action( 'woocommerce_thankyou', 'wpsocial_send_custom_email_after_order', 10, 1 );Хук woocommerce_thankyou срабатывает после успешного оформления заказа и получения ID заказа.
Шаг 3. Тестируем на тестовом заказе
- Оформите заказ как покупатель.
- Проверьте почту, указанную в заказе — должно прийти дополнительное письмо с кастомным содержимым.
- Если письма нет, проверьте логи почтового сервера или плагина SMTP.
Добавление отправки сообщений в Telegram через бота
Для интеграции с Telegram можно использовать простой HTTP-запрос к Bot API при оформлении заказа.
function wpsocial_send_telegram_notification( $order_id ) {
$order = wc_get_order( $order_id );
$chat_id = 'ВАШ_CHAT_ID';
$bot_token = 'ВАШ_BOT_TOKEN';
$message = "Новый заказ №" . $order_id . "\n";
$message .= "Сумма: " . $order->get_formatted_order_total() . "\n";
$message .= "Покупатель: " . $order->get_billing_email();
$url = "https://api.telegram.org/bot" . $bot_token . "/sendMessage?chat_id=" . $chat_id . "&text=" . urlencode( $message );
wp_remote_get( $url );
}
add_action( 'woocommerce_thankyou', 'wpsocial_send_telegram_notification', 20, 1 );Проверка результата после внедрения
- Оформите тестовый заказ с вашим email и телефоном (если SMS интеграция есть).
- Проверьте наличие писем в почтовом ящике (входящие, спам).
- Если настроена интеграция с Telegram или SMS — убедитесь, что сообщения пришли.
- Для отладки можно использовать плагины, например WP Mail Logging или Debug Bar.
Частые ошибки и их исправление
- Письма не отправляются: Проверьте работу функции
wp_mail, настройте SMTP плагин; - Сообщения в Telegram не приходят: Проверьте правильность
bot_tokenиchat_id, попробуйте вручную отправить сообщение боту; - Сообщения отправляются несколько раз: Убедитесь, что не подключаете функцию к нескольким хукам оформления заказа;
- Письмо приходит в спам: Настройте SPF и DKIM записи для домена, используйте проверенные почтовые сервисы.
Практические советы по производительности и безопасности
- Не выполняйте тяжелые запросы или API вызовы синхронно в хуках оформления заказа — используйте
wp_schedule_single_eventдля отложенного выполнения; - Для SMS и Telegram интеграций храните токены и ключи в
wp-config.phpили черезdefine, а не в открытом коде; - Избегайте отправки писем с большими вложениями или сложным HTML — это повышает риск блокировки;
- Для массовых уведомлений используйте специализированные сервисы (Mailgun, SendGrid) с интеграцией.
Сравнение способов автоматической отправки сообщений в WooCommerce
| Метод | Плюсы | Минусы | Пример |
|---|---|---|---|
| Стандартные email WooCommerce | Простота настройки, поддержка шаблонов | Ограниченная кастомизация | WooCommerce > Настройки > Email |
| Код на хуках (PHP) | Максимальная гибкость, кастомизация | Нужны знания PHP, риск ошибок | Примеры выше |
| Плагины уведомлений (например, AutomateWoo) | Удобный интерфейс, много функций | Платные, нагрузка на сайт | https://wpshop.ru/?utm_source=wpsocial.ru&utm_medium=article&utm_campaign=woocommerce-avtomaticheskoe-otpravlenie-soobshhenij-posle-pokupki |