На одном из проектов необходимо было реализовать отправку заявки с сайта в телеграм. На просторах интернета множество различных вариантов, для себя нашел один рабочий, где заявки с форм Elementor PRO сразу отправляются в Telegram.
1. Создаем бота в Telegram
В первую очередь необходимо настроить бота в Telegram, для этого открываем сам телеграм (я открываю через приложение на ПК) и ищем там бота @BotFather
Кликаем по нему и жмем кнопку «запустить»
После этого бот пришлет вам первое сообщение со списком команд — кликаем по первой команде «/newbot» в ответ вы увидите сообщение с просьбой создать имя для вашего бота (называть его можно как угодно, я проверил на кириллице — работает)
Теперь необходимо создать имя пользователя для нашего бота, важное условие, что имя пользователя должно заканчиваться на «bot». Вот так, например: TetrisBot или tetris_bot (имя должно быть уникальным, одним словом) Я для примера назову его «siteweb_bot»
В ответ придет сообщение в котором содержится токен скопируйте его полностью. В нашем случае это: 6380730021:AAEx1NjBtPkX18IecRFydEHFiOkT9rFfymo
2. Создаем чат для сбора заявок в телеграм
Для создания чата в меню телеграм выберите «создать группу»
Дайте ей название (я назвал прием заявок) и нажмите кнопку «далее»
На следующем шаге телеграм предложит добавить в вашу новую группу участников, например можно сразу пригласить сотрудников отдела продаж, но сейчас главное добавить в эту группу бота, которого мы создали ранее (в нашем случае «siteweb_bot»). В поиске вставляем полное название нашего бота. кликаем по нему (бот добавится рядом со строкой поиска), а потом жмем на кнопку «создать».
Если вы не добавили бота на этом этапе — не страшно, его можно будет добавить потом из меню вашей группы.
После того как создали группу нужно написать в нее какое-нибудь сообщение, например «привет».
Так же написать любое сообщение боту которого мы создали ранее. Для этого находим бота в нашей группе и жмем «отправить сообщение».
Это нужно для того чтобы мы могли получить уникальный номер (id) нашего чата.
После того как все сделали получаем id нашего чата: переходим в меню группы и жмем на кнопку добавления участника.
В открывшемся окне кликаем по кнопке «пригласить по ссылке»
Откроется окно содержащее ссылку на группу — копируем ее.
После этого необходимо в поиске телеграм найти бота @IDBot кликнуть по нему, потом нажать кнопку запустить и отправить ему ссылку на группу которую мы скопировали ранее. Данный бот вступит в группу и сразу выйдет из нее, а в результате пришлет id нашей группы (в нашем случае -993919499)
В итоге мы имеем 2 значения (в вашем случае они будут другими):
токен бота: 6380730021:AAEx1NjBtPkX18IecRFydEHFiOkT9rFfymo
id группы: -993919499
Подключаем telegram к формам Elementor PRO
Для того чтобы заявки с сайта wordpress с использованием форм Elementor PRO приходили в нашу группу Telegram, которую мы создали ранее, нам понадобится плагин для вставки кода, например проверенный плагин Woody code snippets (он должен быть установлен и активирован на вашем сайте). В меню плагина выбираем пункт «+добавить сниппет» и в открывшемся окне выбираем пункт php сниппет и жмем «создать элемент»
Откроется окно, в нем заполняем название которое вам удобно и выбираем пункт «запустить везде»
В тело сниппета необходимо вставить следующий код:
add_action( 'elementor_pro/forms/new_record', function( $record, $handler ) {
$bot_token = ""; // Между кавычек вставляем токен вашего бота
$chat_id = ""; // Тут между кавычек вставляем полный ID чата, в него будут отправляться заявки
$form_name = $record->get_form_settings( 'form_name' ); // Берет из настроек формы Elementor PRO название формы и записывает её в переменную $form_name
$raw_fields = $record->get( 'fields' );
$arr = array();
$txt = $form_name . "%0A"; // Вывод в заголовке формы данные из переменной $form_name
foreach ( $raw_fields as $id => $field ) {
$txt .= "<b>".$field['title']."</b>: ".$field['value']."%0A";
}
fopen("https://api.telegram.org/bot{$bot_token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}&disable_web_page_preview=true","r"); // Открытие ссылки, для отправки данных в телегу
}, 10, 2 );
?>
PHPНе забываем вставить между кавычек свой токен бота и id чата(группы), после чего жмем кнопку «опубликовать»:
В итоге у вас должно получиться вот так (только данные токен и id ваших чатов):
Теперь проверяем форму сбора заявок на нашем сайте — отправляем тестовую заявку и моментально в нашу группу в телеграмме приходит сообщение с данными из нашей формы:
В зависимости от типа поля некоторые строки будут кликабельны, в данном случае email, на других сайтах номер телефона кликабелен (при открытии чата с мобильных устройств)
На этом все, надеюсь у вас все получилось.
Обновлено: Если необходимо решение приема заявок с сайта в Telegram не только с форм обратной связи Elementor PRO, но и других плагинов, то читайте новую статью: Публикации с сайта WordPress в Telegram через плагин.