Contact Form 7: отправка данных формы во вторые сервисы через Webhook

Contact Form 7 — один из самых популярных плагинов для создания форм в WordPress. Часто возникает задача не просто получать письма с форм, а отправлять данные в CRM, мессенджеры, сервисы аналитики или другие приложения. Один из удобных и универсальных способов интеграции — использование Webhook. В этой статье мы подробно разберем, как реализовать отправку данных Contact Form 7 во вторые сервисы через Webhook, рассмотрим примеры кода и рекомендации по безопасности.

Что такое Webhook и зачем он нужен с Contact Form 7

Webhook — это механизм, при котором одно приложение отправляет данные в другое по HTTP-запросу (обычно POST) в момент наступления события. В случае Contact Form 7 событием будет отправка формы. Это позволяет мгновенно передавать данные, например, в CRM, чат-бот, Google Sheets, сервисы аналитики или любые REST API.

Преимущества Webhook с Contact Form 7:

  • Автоматическая передача данных без участия пользователя
  • Гибкость интеграции с любыми сторонними сервисами
  • Нет необходимости использовать сторонние плагины для каждой интеграции
  • Возможность добавления дополнительной логики в обработчик

Однако Contact Form 7 из коробки не поддерживает Webhook. Для реализации потребуется добавить свой PHP-код или использовать плагины расширения.

Как в Contact Form 7 реализовать отправку данных через Webhook: пример кода

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

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

add_action('wpcf7_mail_sent', 'contactform7ru_send_webhook');
function contactform7ru_send_webhook($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) {
        return;
    }

    $data = $submission->get_posted_data();

    // Собираем нужные поля формы
    $webhook_data = array(
        'name' => isset($data['your-name']) ? sanitize_text_field($data['your-name']) : '',
        'email' => isset($data['your-email']) ? sanitize_email($data['your-email']) : '',
        'message' => isset($data['your-message']) ? sanitize_textarea_field($data['your-message']) : '',
    );

    // URL вашего Webhook-сервиса
    $webhook_url = 'https://example.com/api/webhook';

    // Отправляем POST-запрос
    $args = array(
        'body' => json_encode($webhook_data),
        'headers' => array('Content-Type' => 'application/json'),
        'timeout' => 10,
    );

    $response = wp_remote_post($webhook_url, $args);

    // Опционально: логируем ошибку
    if (is_wp_error($response)) {
        error_log('ContactForm7ru Webhook ошибка: ' . $response->get_error_message());
    }
}

Обратите внимание, что здесь мы используем хук wpcf7_mail_sent, который срабатывает после успешной отправки формы. Мы получаем отправленные данные, фильтруем их для безопасности, формируем JSON и отправляем на URL Webhook.

Вместо https://example.com/api/webhook подставьте URL нужного вам сервиса.

Настройка Webhook для популярных сервисов

Разберем несколько примеров популярных интеграций через Webhook с Contact Form 7.

Отправка данных в Google Sheets через Webhook

Google Sheets не предоставляет прямого Webhook, но можно использовать сервисы типа Zapier или Make (Integromat) для создания промежуточного Webhook. Вам нужно:

  1. Создать Webhook URL в Zapier/Make
  2. Добавить его в код выше вместо $webhook_url
  3. Настроить в Zapier/Make передачу данных в Google Sheets

Так вы получите автоматическое добавление заявок из формы в таблицу.

Интеграция с CRM Битрикс24 через Webhook

В Битрикс24 есть входящие Webhook, которые принимают заявки. Чтобы отправить данные Contact Form 7 в Битрикс24:

  • Создайте входящий Webhook в вашем Битрикс24 (раздел Приложения > Входящие Webhook)
  • Получите URL Webhook
  • Подставьте URL в код выше
  • Подготовьте массив $webhook_data в формате, который требует Битрикс24 (обычно это JSON с нужными полями)

Это позволит автоматически создавать сделки или лиды из форм сайта.

Отправка уведомлений в Telegram через Webhook

Отправлять данные в Telegram можно через Bot API. Для этого:

  1. Создайте бота в Telegram и получите токен
  2. Получите ID чата для отправки сообщений
  3. Добавьте в функцию отправку запроса на https://api.telegram.org/bot{TOKEN}/sendMessage с нужным текстом

Пример кода отправки уведомления:

function contactform7ru_send_telegram($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) return;

    $data = $submission->get_posted_data();
    $message = "Новая заявка:\n";
    $message .= "Имя: " . ($data['your-name'] ?? '') . "\n";
    $message .= "Email: " . ($data['your-email'] ?? '') . "\n";
    $message .= "Сообщение: " . ($data['your-message'] ?? '');

    $telegram_api = 'https://api.telegram.org/botYOUR_BOT_TOKEN/sendMessage';
    $chat_id = 'YOUR_CHAT_ID';

    wp_remote_post($telegram_api, [
        'body' => [
            'chat_id' => $chat_id,
            'text' => $message
        ]
    ]);
}
add_action('wpcf7_mail_sent', 'contactform7ru_send_telegram');

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

Плагины для интеграции Contact Form 7 с Webhook

Если вы не хотите писать код, есть несколько плагинов, которые упрощают работу с Webhook:

  • Contact Form 7 to Webhook — позволяет настроить URL Webhook и передавать данные из формы без программирования.
  • Clearfy Pro — многофункциональный плагин оптимизации и безопасности, который упрощает написание кастомных интеграций и работу с формами.

Использование плагинов удобно, если у вас нет навыков PHP или хотите быстро настроить интеграцию.

Рекомендации по безопасности при работе с Webhook

При передаче данных через Webhook важно соблюдать меры безопасности:

  • Используйте HTTPS для защищенного соединения
  • Проверяйте и фильтруйте все данные, получаемые из формы (как в примерах выше)
  • Добавляйте проверку подписи или токена на стороне сервиса, если это поддерживается
  • Обрабатывайте ошибки и логируйте неудачные попытки отправки
  • Ограничивайте частоту отправки запросов, чтобы избежать DDoS

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

Отладка и тестирование Webhook с Contact Form 7

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

  1. Используйте сервисы для тестирования Webhook, например Webhook.site, куда можно временно отправлять запросы и видеть их содержимое
  2. Настройте логирование ошибок в WordPress через error_log или плагины для отладки
  3. Проверяйте ответы сервера на POST-запросы в своем коде
  4. Пошагово тестируйте интеграцию на тестовом сайте

Это позволит избежать ошибок в работе формы и интеграции.

Итог

Отправка данных из Contact Form 7 во вторые сервисы через Webhook — мощный и гибкий способ интеграции. С помощью простого PHP-кода или плагинов вы сможете связать вашу форму с CRM, мессенджерами, таблицами и другими системами, автоматизируя бизнес-процессы и улучшая взаимодействие с пользователями.

Если хотите узнать больше о расширениях для WordPress и Contact Form 7, рекомендуем посмотреть WpShop.ru — отличный ресурс с плагинами и темами для любых задач.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Contact Form 7: динамические формы с подгрузкой данных из внешних источников
07.04.2026
Contact Form 7: динамические поля и подгрузка данных из базы WordPress
24.12.2025
Contact Form 7: автоответы и подтверждения отправки формы в WordPress
04.11.2025
Contact Form 7: динамические поля с подгрузкой данных из JSON файла
10.04.2026
Contact Form 7: как добавить внутреннюю валидацию на PHP для защиты и гибкости
05.12.2025
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙