Как автоматически отслеживать изменения в WooCommerce и отправлять уведомления

Диагностика задачи: зачем нужно отслеживать изменения в WooCommerce

В интернет-магазине на WooCommerce часто требуется знать, когда и какие изменения происходят: обновление статусов заказов, изменение цен, изменений в товарах, добавление новых пользователей и прочее. Это нужно для своевременного реагирования, аналитики и поддержки клиентов. Без автоматизации это сложно, особенно если магазин крупный.

Как отследить изменения в WooCommerce: обзор доступных хуков

WooCommerce строится на базе WordPress и использует множество хуков и фильтров. Для отслеживания изменений удобно использовать следующие действия:

  • woocommerce_update_product — при обновлении товара;
  • woocommerce_order_status_changed — при изменении статуса заказа;
  • profile_update — при обновлении профиля пользователя;
  • save_post_shop_order — при сохранении заказа;
  • woocommerce_new_order — при создании нового заказа.

Эти хуки позволяют «подписаться» на события и запускать собственный код, например, отправку уведомлений.

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

Рассмотрим практический пример — отправку email-уведомления администратору при смене статуса заказа.

add_action('woocommerce_order_status_changed', 'wpd_notify_admin_on_order_status_change', 10, 4); 
function wpd_notify_admin_on_order_status_change($order_id, $old_status, $new_status, $order) {
    $admin_email = get_option('admin_email');
    $subject = "Заказ #$order_id изменил статус с $old_status на $new_status";
    $message = "Статус заказа #$order_id был изменён.

Старый статус: $old_status
Новый статус: $new_status

Ссылка на заказ: " . admin_url('post.php?post=' . $order_id . '&action=edit');
    wp_mail($admin_email, $subject, $message);
}

Код подключается в functions.php темы или в отдельный плагин. При любом изменении статуса заказа администратору придёт письмо.

Отслеживание обновлений в товарах и отправка уведомлений

Для уведомления о редактировании товара можно использовать хук woocommerce_update_product:

add_action('woocommerce_update_product', 'wpd_notify_admin_on_product_update', 10, 1);
function wpd_notify_admin_on_product_update($product_id) {
    $product = wc_get_product($product_id);
    $admin_email = get_option('admin_email');
    $subject = "Товар \"" . $product->get_name() . "\" обновлён";
    $message = "Товар с ID $product_id был обновлён.

Название: " . $product->get_name() . "
Цена: " . wc_price($product->get_price()) . "

Редактировать: " . admin_url('post.php?post=' . $product_id . '&action=edit');
    wp_mail($admin_email, $subject, $message);
}

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

  1. Измените статус любого заказа в WooCommerce через админку.
  2. Проверьте почтовый ящик администратора — должно прийти письмо с деталями.
  3. Измените информацию о товаре (например, цену) и сохраните.
  4. Снова проверьте почту — уведомление об обновлении товара должно прийти.
  5. Для отладки можно временно добавить error_log внутри функций, чтобы убедиться, что они вызываются.

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

  • Письма не приходят: проверьте настройки почты на сервере, используйте плагины типа WP Mail SMTP для диагностики.
  • Хук не срабатывает: убедитесь, что код подключён корректно и нет конфликтов с другими плагинами.
  • Письмо приходит пустым или без данных: проверьте правильность получения параметров в функции, используйте var_dump для отладки.

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

  • Не отправляйте уведомления на каждый чих — фильтруйте события по важности, чтобы не перегружать почтовый сервер.
  • Используйте WP Cron для пакетной отправки уведомлений, если изменений много.
  • Для безопасности не храните в письмах чувствительные данные, например, пароли или личную информацию.
  • По возможности используйте SMTP-сервер для отправки почты, чтобы избежать попадания в спам.

Таблица сравнения способов реализации уведомлений об изменениях

МетодПлюсыМинусыРекомендации
Хуки WooCommerce и WordPressЛёгкая интеграция, гибкость, нет дополнительных плагиновТребует знаний PHP, возможны конфликтыИспользовать для простых уведомлений, при необходимости расширять
Плагины уведомлений (например, Better Notifications for WP)Готовые шаблоны, визуальный интерфейс, поддержка разных событийДополнительная нагрузка, не всегда нужный функционалДля пользователей без навыков кодирования
Внешние сервисы (Zapier, Integromat)Мощная автоматизация, интеграция с почтой и мессенджерамиСтоимость, зависимость от сторонних сервисовДля крупных проектов с большим числом интеграций
Как создать автоматическое резервное копирование WordPress
26.11.2025
Как исправить нерабочие AJAX-запросы в WooCommerce: практическое руководство
17.04.2026
Как отображать разный контент для разных ролей пользователей в WordPress
14.01.2026
WooCommerce: как автоматически удалять старые отзывы о товарах
17.06.2026
Как автоматически отключать неиспользуемые плагины WordPress для оптимизации сайта
10.03.2026