Contact Form 7 и Telegram: 4 способа получать заявки
Обновлено 10 октября 2026 г. · 8 мин чтения
Contact Form 7 — самая популярная форма WordPress, но из коробки она умеет только отправлять письмо. Если письма уходят в спам или читаются раз в день, заявки остывают. Ниже — четыре способа получать отправки CF7 в Telegram с их плюсами и ограничениями.
Способ 1. Готовый плагин из каталога WordPress
В каталоге WordPress есть несколько плагинов, которые пересылают отправки Contact Form 7 в Telegram. Обычно нужно создать бота через @BotFather, указать в настройках плагина токен бота и Chat ID.
Плюс — настройка за 10 минут без кода. Минусы — плагины небольших авторов редко обновляются, а история заявок по-прежнему живёт только в почте. При выборе смотрите на дату последнего обновления и совместимость с текущей версией WordPress.
Способ 2. Свой код через хук Contact Form 7
CF7 даёт хуки, через которые можно получить данные отправки. Код ниже добавляется в functions.php дочерней темы или в небольшой собственный плагин.
add_action('wpcf7_before_send_mail', function ($form) {
$submission = WPCF7_Submission::get_instance();
if (!$submission) return;
$d = $submission->get_posted_data();
$text = "Заявка: " . $form->title() . "\n"
. "Имя: " . ($d['your-name'] ?? '—') . "\n"
. "Email: " . ($d['your-email'] ?? '—') . "\n"
. "Сообщение: " . ($d['your-message'] ?? '—');
wp_remote_post('https://api.telegram.org/bot' . TG_TOKEN . '/sendMessage', [
'timeout' => 5,
'body' => ['chat_id' => TG_CHAT_ID, 'text' => $text],
]);
});Используйте wpcf7_before_send_mail, а не wpcf7_mail_sent: второй хук срабатывает только после успешной отправки письма. Если почта сломана, вы не получите и уведомление в Telegram — то есть потеряете заявку дважды.
Константы TG_TOKEN и TG_CHAT_ID храните в wp-config.php, а не в коде темы. Учтите, что синхронный запрос к Telegram замедляет ответ формы, а при недоступности API сообщение просто не уйдёт — повторной отправки здесь нет.
Способ 3. Пересылка писем в Telegram
Можно оставить CF7 как есть и пересылать письма в Telegram через бота-пересыльщика или правило почтового ящика. Это работает, только если письма вообще доходят: при проблемах с SPF, DKIM или функцией mail() хостинга теряться будут и письма, и уведомления.
Способ 4. Плагин сервиса сбора заявок
Плагин Site-Inbox подписывается на отправки Contact Form 7 и Elementor Pro, сохраняет каждую заявку в общей панели и отправляет уведомление в Telegram. Стандартные поля your-name, your-email, your-phone и your-message распознаются автоматически, остальные поля формы сохраняются в дополнительных данных.
- Заявка сохраняется, даже если письмо не ушло.
- При сбое сети отправка повторяется в фоне через WP-Cron.
- Видно сайт, форму, страницу и UTM-метки.
- Можно подключить регистрации, комментарии и заказы WooCommerce.
Сравнение способов
- Плагин-пересыльщик: быстро, но без истории и повторной отправки.
- Свой код: гибко, но поддержка и обработка ошибок на вас.
- Пересылка писем: просто, но зависит от доставки почты.
- Сервис сбора заявок: история, статусы и повторная доставка; подходит, если сайтов несколько.
Независимо от способа проверьте, что форма корректно работает с кэширующими плагинами: устаревший кэш страницы — частая причина ошибки «Не удалось отправить сообщение» в CF7.
Частые вопросы
Как узнать Chat ID для Telegram?
Добавьте бота в нужный чат, отправьте в чат любое сообщение и откройте https://api.telegram.org/bot<токен>/getUpdates — в ответе будет chat.id. У групп он начинается с минуса, у супергрупп — с -100.
Почему уведомление приходит, а письмо нет?
Значит, проблема в отправке почты: настройте SMTP с авторизацией и проверьте SPF и DKIM домена.
Можно ли отправлять в Telegram только часть форм?
Да. В своём коде проверяйте $form->id(), а в сервисах сбора заявок фильтруйте по ID формы.
Установите плагин Site-Inbox — формы Contact Form 7 начнут сохраняться в панели и приходить в Telegram.