Автоматическое создание и отправка push-уведомлений при создании нового заказа в WordPress

В современных интернет-магазинах на WordPress оперативное информирование менеджеров или клиентов о новых заказах имеет большое значение. В этой статье мы подробно разберём, как настроить автоматическое создание и отправку push-уведомлений при создании нового заказа в WordPress, используя примеры кода и популярные плагины.

Что такое push-уведомления и зачем они нужны для заказов WordPress

Push-уведомления — это сообщения, которые мгновенно доставляются пользователю или администратору прямо на устройство (браузер, смартфон, рабочий стол). В контексте интернет-магазина они позволяют:

  • Мгновенно оповестить менеджера о новом заказе для быстрого реагирования.
  • Уведомить клиента о статусе заказа или подтверждении.
  • Повысить уровень сервиса и ускорить обработку заказов.

Для WordPress и WooCommerce это особенно актуально, так как стандартные уведомления приходят по email и могут быть пропущены.

Как выбрать способ реализации push-уведомлений

Существует несколько подходов к реализации push-уведомлений в WordPress:

  • Через специализированные плагины, например, WPRemark. Они упрощают настройку и отправку уведомлений.
  • Использование сервисов пушей (OneSignal, Firebase Cloud Messaging) с их API и интеграцией через плагины.
  • Самописное решение с использованием PHP и JavaScript, если нужна тонкая кастомизация.

В этой статье мы рассмотрим пример на базе WooCommerce и стандартного API WordPress, чтобы создать собственное уведомление и отправить его через браузер.

Подключение и настройка события создания заказа в WooCommerce

WooCommerce генерирует событие woocommerce_new_order, которое срабатывает при создании нового заказа. Мы можем повесить на него свой обработчик.

Пример подключения обработчика в functions.php вашей темы или в собственном плагине:

add_action('woocommerce_new_order', 'wporder_send_push_notification_new_order', 10, 1);
function wporder_send_push_notification_new_order($order_id) {
    $order = wc_get_order($order_id);
    if (!$order) return;

    $order_total = $order->get_total();
    $order_url = admin_url('post.php?post=' . $order_id . '&action=edit');

    $message = "Новый заказ #" . $order_id . " на сумму " . wc_price($order_total);

    // Здесь вызываем функцию отправки push
    wporder_send_push($message, $order_url);
}

Этот код формирует сообщение для уведомления и передаёт его в функцию отправки пуша.

Пример функции отправки push-уведомления через Web Push API

Чтобы отправлять push-уведомления, нужно взаимодействовать с сервисом push либо использовать браузерные технологии. Ниже упрощённый пример отправки пуша через собственный сервис на базе Firebase Cloud Messaging (FCM).

Для начала создайте проект в Firebase, получите серверный ключ и настройте подписку пользователей на пуши в браузере (этот шаг требует JavaScript на фронтенде). Здесь мы рассмотрим только серверную часть отправки.

function wporder_send_push($message, $url) {
    $firebase_server_key = 'ВАШ_FIREBASE_SERVER_KEY';
    $device_tokens = wporder_get_subscribed_device_tokens(); // Функция, возвращающая массив токенов подписчиков

    if (empty($device_tokens)) return;

    $payload = array(
        'registration_ids' => $device_tokens,
        'notification' => array(
            'title' => 'Новый заказ в магазине',
            'body' => $message,
            'click_action' => $url,
            'icon' => 'https://ваш-сайт.ru/wp-content/uploads/2024/icon.png'
        )
    );

    $headers = array(
        'Authorization: key=' . $firebase_server_key,
        'Content-Type: application/json'
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));

    $result = curl_exec($ch);
    curl_close($ch);

    // Логирование результата или обработка ошибок
    // error_log('Push sent result: ' . $result);
}

Важный момент — wporder_get_subscribed_device_tokens() должна вернуть массив токенов устройств, которые подписались на уведомления. Для этого нужно реализовать фронтенд подписку с сохранением токенов в базу.

Пример подписки пользователей на push-уведомления в браузере

Чтобы пользователи могли получать уведомления, на стороне клиента должен быть код, который попросит разрешение и зарегистрирует сервис-воркер для пушей.

Пример на JavaScript, который можно добавить в ваш шаблон:

if ('serviceWorker' in navigator && 'PushManager' in window) {
    navigator.serviceWorker.register('/service-worker.js')
    .then(function(reg) {
        return reg.pushManager.getSubscription()
        .then(function(sub) {
            if (sub === null) {
                return reg.pushManager.subscribe({
                    userVisibleOnly: true,
                    applicationServerKey: urlBase64ToUint8Array('ВАШ_ПУБЛИЧНЫЙ_VAPID_КЛЮЧ')
                });
            } else {
                return sub;
            }
        });
    }).then(function(subscription) {
        // Отправить subscription.endpoint и ключи на сервер для сохранения
        fetch('/wp-json/wporder/v1/save-subscription', {
            method: 'POST',
            body: JSON.stringify(subscription),
            headers: {
                'Content-Type': 'application/json'
            }
        });
    });
}

Этот код регистрирует сервис-воркер и подписывает пользователя на пуши, после чего отправляет данные на сервер.

Использование готовых плагинов для упрощения задачи

Если вы не хотите реализовывать весь стек самостоятельно, можно использовать плагины:

  • WPRemark – плагин с возможностью отправки push-уведомлений и автоматизации уведомлений при заказах.
  • OneSignal – бесплатный и популярный сервис с плагином для WordPress, который легко интегрируется и поддерживает широкие возможности уведомлений.

Использование готовых решений сокращает время внедрения, но может ограничить кастомизацию. Если нужна гибкость – лучше писать свои обработчики.

Итоги и рекомендации по безопасности

Автоматизация push-уведомлений при создании заказов повышает оперативность работы и улучшает коммуникацию с клиентами и менеджерами. Важно:

  • Обеспечить безопасность хранения токенов и данных подписчиков.
  • Следить за корректной работой сервис-воркеров и подписок.
  • Обрабатывать ошибки при отправке уведомлений и логировать их.
  • Тестировать уведомления на разных устройствах и браузерах.

Таким образом, используя описанные методы и примеры, вы сможете внедрить эффективную систему пуш-уведомлений на сайте WordPress с WooCommerce и повысить качество работы с заказами.

Как автоматизировать изменение статьи на основе статистики просмотров в WordPress
30.03.2026
Автоматическое отключение неактивных платежных методов в WooCommerce
21.04.2026
Оптимизация обработки заказов в WordPress: лучшие практики и примеры кода
07.11.2025
Автоматическое создание и отправка экспресс-отчетов по заказам в WordPress
02.04.2026
Автоматизация обновления метаданных товаров WooCommerce в WordPress
07.04.2026