В этой статье разберём, как организовать отправку уведомлений из форм, созданных с помощью плагина WPForms, напрямую в Telegram. Такая интеграция позволяет оперативно получать сообщения о новых заявках в мессенджере, минуя электронную почту и админ-панель WordPress. Мы рассмотрим несколько вариантов реализации, включая использование собственного бота Telegram и написание простого PHP-кода для обработки отправки сообщений.
Почему стоит интегрировать WPForms с Telegram
Telegram — популярный и удобный мессенджер с открытым API и возможностью создания ботов. Интеграция форм с Telegram помогает:
- Мгновенно получать уведомления о новых заявках в удобном формате.
- Избежать пропуска сообщений, которые могут потеряться в электронной почте.
- Организовать централизованный канал уведомлений для команды.
- Автоматизировать обработку заявок в связке с другими сервисами.
WPForms не имеет встроенной поддержки Telegram, однако благодаря хукам WordPress и функционалу плагина, мы можем реализовать отправку уведомлений через API Telegram с помощью кастомного кода.
Создание Telegram-бота и получение токена
Для начала нужно создать бота в Telegram и получить токен доступа:
- В Telegram найдите пользователя
@BotFather. - Отправьте команду
/newbotи следуйте инструкциям по выбору имени и username бота. - После создания вы получите токен доступа в формате
123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ. Сохраните его — он понадобится для отправки сообщений.
Далее нужно узнать ID чата, куда будут отправляться уведомления. Для этого можно добавить в чат созданного бота и выполнить запрос к API или воспользоваться специальными ботами для получения ID, например @userinfobot.
Пример кода для отправки уведомления из WPForms в Telegram
Добавим в файл functions.php вашей темы или используем плагин для пользовательских функций следующий код. Он будет отправлять сообщение в Telegram при успешной отправке формы WPForms.
function wpformru_send_telegram_notification( $fields, $entry, $form_data ) {
$bot_token = 'ВАШ_ТОКЕН_БОТА';
$chat_id = 'ВАШ_CHAT_ID';
$message = "\u2709\ufe0f Новая заявка с формы: " . $form_data['settings']['form_title'] . "\n";
foreach ( $fields as $field ) {
$label = $field['name'];
$value = $field['value'];
$message .= "*" . $label . ":* " . $value . "\n";
}
$url = "https://api.telegram.org/bot" . $bot_token . "/sendMessage";
$data = array(
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'Markdown'
);
$args = array(
'body' => $data,
'timeout' => 15
);
wp_remote_post( $url, $args );
}
add_action( 'wpforms_process_complete', 'wpformru_send_telegram_notification', 10, 3 );Этот хук wpforms_process_complete срабатывает после успешной отправки формы, получает все поля и формирует структурированное сообщение для Telegram. Используется Markdown-разметка для выделения названий полей.
Расширение функционала: фильтрация уведомлений и кастомизация
Часто требуется не просто отправлять все заявки в один чат, а фильтровать уведомления по типу формы или значению определённого поля. Для этого можно добавить проверки внутри функции:
function wpformru_send_telegram_notification( $fields, $entry, $form_data ) {
// Отправлять уведомления только для формы с ID 123
if ( $form_data['id'] != 123 ) {
return;
}
$bot_token = 'ВАШ_ТОКЕН_БОТА';
$chat_id = 'ВАШ_CHAT_ID';
$message = "\u2709\ufe0f Новая заявка с формы: " . $form_data['settings']['form_title'] . "\n";
foreach ( $fields as $field ) {
// Пример фильтрации по полю "Статус заявки"
if ( $field['name'] == 'Статус заявки' && $field['value'] !== 'Новый' ) {
return; // не отправлять, если статус не "Новый"
}
$message .= "*" . $field['name'] . ":* " . $field['value'] . "\n";
}
$url = "https://api.telegram.org/bot" . $bot_token . "/sendMessage";
$data = array(
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'Markdown'
);
$args = array(
'body' => $data,
'timeout' => 15
);
wp_remote_post( $url, $args );
}Такой подход позволяет сделать уведомления более адресными и релевантными, что важно при большом потоке заявок.
Использование плагинов для интеграции WPForms с Telegram
Если вы не хотите писать код, можно использовать готовые решения из репозитория WordPress:
- WP Telegram — плагин, который позволяет интегрировать разные уведомления, включая формы, в Telegram. Он поддерживает кастомные шаблоны сообщений и различные типы уведомлений.
- Telegram Bot & Channel — позволяет отправлять сообщения из WordPress в Telegram, включая уведомления из форм.
Однако у таких плагинов может быть ограниченная гибкость. Если нужна тонкая настройка, лучше использовать кастомный код, описанный выше.
Практические советы для стабильной работы интеграции
Чтобы интеграция работала надёжно, учтите следующие моменты:
- Используйте отдельного Telegram-бота с минимальными правами.
- Проверяйте корректность токена и chat_id.
- Логируйте ошибки отправки сообщений через
error_logили плагины для отладки запросов. - Не отправляйте слишком длинные сообщения — Telegram ограничивает длину текста.
- При большом количестве заявок подумайте о очередях для отправки уведомлений или ограничении частоты.
Заключение
Интеграция WPForms с Telegram — эффективный способ быстро получать заявки и не пропускать важные обращения. Используя простой PHP-код и возможности WordPress, можно настроить кастомные уведомления, подходящие именно под ваши задачи. Если хотите более расширенный функционал без программирования, обратите внимание на готовые плагины и сервисы.
Для удобства можете использовать темы и плагины от WPSHOP, которые помогут улучшить ваш сайт и добавить дополнительные возможности.