Как создать автоматические уведомления в WordPress через Webhook

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

Что такое webhook и зачем он нужен в WordPress

Webhook — это механизм, который позволяет автоматически отправлять HTTP-запросы на заданный URL при наступлении определённого события. В WordPress webhook можно использовать для:

  • уведомления внешних сервисов о создании или обновлении постов;
  • информирования CRM о новых пользователях или заказах;
  • отправки сигналов в мессенджеры (Telegram, Slack и др.);
  • синхронизации данных с внешними базами;
  • автоматизации других бизнес-процессов.

Webhook работает по принципу push-уведомлений, когда WordPress сам инициирует запрос, а не ждёт опроса.

Настройка собственного webhook в WordPress: создание функции и хука

Для начала создадим функцию, которая будет отправлять POST-запрос на внешний URL с нужными данными. Воспользуемся встроенной функцией wp_remote_post. Пример кода:

function wpgenerate_send_webhook_notification($post_id) {
    // Проверяем, чтобы это был нужный тип записи и не автосохранение
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
        return;
    }

    $post = get_post($post_id);
    if ($post->post_type !== 'post') {
        return;
    }

    $webhook_url = 'https://example.com/webhook'; // сюда вставьте свой URL

    $body = [
        'post_id' => $post_id,
        'title' => $post->post_title,
        'url' => get_permalink($post_id),
        'date' => $post->post_date,
    ];

    $response = wp_remote_post($webhook_url, [
        'headers' => [
            'Content-Type' => 'application/json',
        ],
        'body' => json_encode($body),
        'timeout' => 15,
    ]);

    if (is_wp_error($response)) {
        error_log('WPGENERATE webhook error: ' . $response->get_error_message());
    }
}
add_action('save_post', 'wpgenerate_send_webhook_notification');

Здесь мы создали функцию wpgenerate_send_webhook_notification, которая срабатывает при сохранении поста и отправляет JSON с данными на внешний URL. Используйте свой URL вместо https://example.com/webhook.

Детали реализации

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

Если нужно уведомлять о других событиях, например, когда пользователь регистрируется или создаётся заказ, можно использовать другие хуки — user_register, woocommerce_order_status_completed и т.п.

Пример webhook для уведомления в Telegram при публикации поста

Рассмотрим пример интеграции с Telegram-ботом через webhook. Для этого понадобится токен бота и chat_id, куда отправлять сообщение.

Добавим функцию, которая отправляет POST-запрос в Telegram API:

function wpgenerate_send_telegram_notification($post_id) {
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
        return;
    }

    $post = get_post($post_id);
    if ($post->post_status !== 'publish') {
        return; // уведомляем только о публикациях
    }

    $token = 'YOUR_BOT_TOKEN';
    $chat_id = 'YOUR_CHAT_ID';

    $message = 'Опубликована новая статья: ' . $post->post_title . '\n' . get_permalink($post_id);

    $url = 'https://api.telegram.org/bot' . $token . '/sendMessage';

    $response = wp_remote_post($url, [
        'body' => [
            'chat_id' => $chat_id,
            'text' => $message,
            'parse_mode' => 'HTML',
        ],
        'timeout' => 15,
    ]);

    if (is_wp_error($response)) {
        error_log('WPGENERATE Telegram webhook error: ' . $response->get_error_message());
    }
}
add_action('publish_post', 'wpgenerate_send_telegram_notification');

Таким образом, при публикации поста в Telegram будет отправлено уведомление с заголовком и ссылкой.

Как использовать плагины для webhook в WordPress

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

  • WP Webhooks — мощный плагин, который позволяет настроить как прием, так и отправку webhook с множеством фильтров и условий.
  • Uncanny Automator — инструмент для автоматизации задач, поддерживает интеграцию с webhook и множеством сервисов.
  • Clearfy Pro — улучшает производительность и безопасность сайта, в том числе предлагает дополнительные инструменты для оптимизации и интеграции, включая возможности webhook.

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

Пример настройки WP Webhooks для отправки уведомлений

В WP Webhooks можно настроить событие «Создание поста», задать URL webhook и передаваемые данные. В интерфейсе можно указать заголовки, тело запроса и формат (JSON, form-data).

После настройки достаточно активировать вебхук, и при сохранении поста запрос будет автоматически отправляться.

Рекомендации по безопасности и производительности webhook

При использовании webhook важно учитывать следующие моменты:

  • Добавляйте проверку nonce или подписи, если это возможно, чтобы защитить webhook от подделки.
  • Используйте асинхронные запросы или очереди задач (через wp_cron или внешние сервисы), чтобы не замедлять загрузку сайта.
  • Логируйте ошибки, чтобы отслеживать проблемы с доставкой уведомлений.
  • Ограничивайте права доступа и внимательно выбирайте события для отправки webhook, чтобы не создавать лишнюю нагрузку.

Заключение

Создание автоматических уведомлений в WordPress через webhook — мощный инструмент для интеграции сайта с внешними системами. Вы можете написать собственный код, как показано в примерах, или использовать готовые плагины. Главное — грамотно настроить события, данные и обеспечить безопасность.

Если хотите расширить функциональность сайта без усложнения кода, обратите внимание на Clearfy Pro — этот плагин поможет оптимизировать и обезопасить работу webhook и других функций.

Как добавить собственные типы постов в WordPress с примерами
03.12.2025
WooCommerce: автоматическое удаление неактивных пользователей по дате последнего заказа
06.06.2026
Автоматическое удаление старых терминов в WordPress
23.03.2026
Как автоматически отправлять сообщения в Telegram из WordPress
25.02.2026
Как установить автоматический редирект в WordPress без плагинов
24.01.2026