WooCommerce: как автоматически создавать комментарий к заказу при смене статуса

Диагностика задачи: зачем нужен автоматический комментарий к заказу?

В WooCommerce часто требуется фиксировать важные события в истории заказа для удобства менеджеров и клиентов. Например, при смене статуса заказа автоматически добавлять комментарий с пояснением или инструкцией. Это помогает избежать ручного ввода, уменьшить ошибки и улучшить коммуникацию.

Типичные ситуации

  • Заказ перешёл в статус "в обработке" — нужно добавить комментарий с информацией о сроках доставки.
  • Статус "выполнен" — автоматически добавляем благодарность и сроки гарантии.
  • Отмена заказа — комментарий с причиной и дальнейшими действиями.

Пошаговое решение: как реализовать автоматическое добавление комментария при смене статуса заказа

WooCommerce предоставляет хук woocommerce_order_status_changed, который срабатывает при изменении статуса заказа. Используем его для добавления комментария через метод add_order_note.

add_action('woocommerce_order_status_changed', 'auto_add_order_comment_on_status_change', 10, 4);function auto_add_order_comment_on_status_change($order_id, $old_status, $new_status, $order) {    if ($new_status === 'processing') {        $comment = 'Ваш заказ принят в обработку. Мы свяжемся с вами для подтверждения деталей.';        $order->add_order_note($comment, false);    } elseif ($new_status === 'completed') {        $comment = 'Спасибо за покупку! Ваш заказ выполнен и отправлен.';        $order->add_order_note($comment, false);    } elseif ($new_status === 'cancelled') {        $comment = 'Заказ отменён. Если у вас есть вопросы, пожалуйста, свяжитесь с поддержкой.';        $order->add_order_note($comment, false);    }}

Ключевые моменты:

  • Используем 4 аргумента — ID заказа, старый статус, новый статус и объект заказа.
  • В метод add_order_note вторым параметром передаём false, чтобы комментарий был виден только админам (если нужно клиенту — true).
  • Добавляем комментарии только для ключевых статусов, чтобы не засорять логи.

Проверка результата после внедрения

Чтобы убедиться, что решение работает:

  1. Перейдите в админку WordPress → WooCommerce → Заказы.
  2. Откройте любой заказ и измените его статус на processing, completed или cancelled.
  3. Обновите страницу заказа и перейдите в раздел "История заказов" (Order Notes).
  4. Проверьте, что появился нужный комментарий с вашим текстом.
  5. Если комментарий не появился, проверьте логи ошибок и убедитесь, что код добавлен в functions.php или в подключаемый плагин.

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

  • Комментарий не появляется: Возможно, функция не подключена или сработала с ошибкой. Проверьте правильность копирования кода и наличие синтаксических ошибок.
  • Комментарии не видны клиенту: Метод add_order_note принимает второй параметр false — комментарий скрыт для клиента. Поставьте true, если хотите, чтобы клиент видел заметку.
  • Хук срабатывает несколько раз: Проверьте, что код не добавлен в несколько мест и не дублируется.
  • Не тот статус: Убедитесь, что сравниваете статусы в нижнем регистре, как в WooCommerce (например, 'processing', а не 'Processing').

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

  • Код добавляйте в дочернюю тему или свой плагин, чтобы избежать потери при обновлениях.
  • Избегайте тяжёлых операций внутри хука, так как он срабатывает на каждый статус.
  • Если нужно отправлять уведомления клиенту, используйте отдельные функции и очереди для обработки.
  • Проверяйте права пользователя, если планируете показывать комментарии клиентам.

Сравнение способов добавления комментариев к заказам

МетодПлюсыМинусы
Ручное добавление через админкуПросто, без кодаТрабует время, возможны ошибки, не автоматизировано
Автоматизация через хук woocommerce_order_status_changedПолная автоматизация, гибкость, легко кастомизироватьТребует навыков разработки
Использование плагинов для автоматизацииУдобно, часто есть UIМожет нагружать сайт, ограничена функциональность
Как создать собственный виджет в WordPress: подробное руководство с примерами кода
18.11.2025
WooCommerce: как установить и настроить оповещения о статусе оплаты заказа
01.05.2026
Как настроить автоматическое расширение метаданных в WordPress для курсов
30.03.2026
WooCommerce: автоматическое удаление неактивных заказов по расписанию с помощью WP-Cron
07.08.2026
WooCommerce: автоматическое удаление неактивных заказов по расписанию с помощью WP-Cron
23.07.2026