Как использовать хук WooCommerce 'woocommerce_order_status_changed' для автоматизации процессов

|

Что такое хук 'woocommerce_order_status_changed' и зачем он нужен

Хук woocommerce_order_status_changed вызывается в WooCommerce при изменении статуса заказа. Он предоставляет возможность запускать кастомные функции, реагирующие на смену статуса, что полезно для автоматизации уведомлений, интеграций, обновления данных и других бизнес-процессов.

Параметры хука

Хук срабатывает с передачей следующих параметров:

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

Часто нужно отправлять кастомные email-уведомления клиентам или менеджерам при конкретных сменах статуса, например, когда заказ переходит в 'completed'. Без использования этого хука приходится вручную проверять заказы и отправлять сообщения, что неудобно и чревато ошибками.

Если уведомления не срабатывают, проверьте:

Пошаговое решение: простой пример автоматизации email при смене статуса

1. Добавьте следующий код в functions.php вашей темы или в отдельный плагин:

add_action('woocommerce_order_status_changed', 'send_custom_email_on_status_change', 10, 4);
function send_custom_email_on_status_change($order_id, $old_status, $new_status, $order) {
    // Отправлять письмо только при переходе в статус completed
    if ($new_status === 'completed') {
        $to = $order->get_billing_email();
        $subject = 'Ваш заказ #' . $order_id . ' выполнен';
        $message = 'Спасибо за покупку! Ваш заказ был успешно выполнен.';
        wp_mail($to, $subject, $message);
    }
}

2. Сохраните изменения, обновите страницу администратора WooCommerce.

Расширенный пример: отправка уведомления в Telegram при отмене заказа

add_action('woocommerce_order_status_changed', 'notify_telegram_on_cancelled', 10, 4);
function notify_telegram_on_cancelled($order_id, $old_status, $new_status, $order) {
    if ($new_status === 'cancelled') {
        $bot_token = 'ВАШ_TELEGRAM_BOT_TOKEN';
        $chat_id = 'ВАШ_CHAT_ID';
        $message = 'Заказ #' . $order_id . ' был отменён.';
        $url = "https://api.telegram.org/bot{$bot_token}/sendMessage?chat_id={$chat_id}&text=" . urlencode($message);
        wp_remote_get($url);
    }
}

Проверка результата

Для проверки, что автоматизация сработала:

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

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

Сравнение способов автоматизации уведомлений

МетодПреимуществаНедостатки
Хук 'woocommerce_order_status_changed'Прямой доступ к заказу, универсальность, полный контрольТребует навыков программирования
Плагины уведомленийПростота настройки, готовые шаблоныОграниченная гибкость, возможные конфликты
Внешние сервисы (Zapier, Integromat)Мощная интеграция, no-codeЗависимость от сторонних сервисов, задержки
Как удалить кеш в WordPress: практические методы для оптимизации сайта
13.11.2025
Как отключить AJAX-загрузку товаров в WooCommerce для улучшения совместимости
01.06.2026
Как использовать хуки WooCommerce для автоматизации управления заказами
03.07.2026
Как автоматизировать обновление цен в WooCommerce по расписанию
26.04.2026
Создание адаптивного видеоформата в WordPress: примеры и решение проблем
10.01.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙