Отправка сообщений в Telegram из Contact Form 7

Отправка сообщений в Telegram из Contact Form 7

2 марта 2020 WordPress

Мы уже рассматривали как отправлять сообщения в телеграмм из обычного PHP скрипта и заказы из OpenCart. В этой статье вы узнаете как отправлять сообщения в телеграмм из плагина WordPress Contact Form 7.

Создаем бота

Боты в Telegram создаются через другого специального бота @BotFather. Нужно найти его и отправить ему команду /start.

Для создания нового бота отправляем следующую команду /newbot. После чего бот запросит имя вашего нового бота, оно обязательно должно заканчиваться на Bot. В случае успеха в ответ получаем уникальный токен бота, который понадобится для дальнейшей работы. И не забудьте добавить вновь созданного бота в ваши контакты отправив ему команду /start

Получаем токен и chat id бота

Чтобы отправить сообщение пользователю через бота достаточно вызвать определенный URL из PHP скрипта содержащий токен бота и внутренний ID чата chat id.

Вам понадобился ремонт компьютера? Ремонт компьютеров и другой компьютерной техники может потребоваться везде, где она используется по ее прямому назначению. В услуги по ремонту и обслуживанию компьютера и сопутствующего оборудования обычно входит диагностика и восстановление работоспособности, реанимация и замена отдельных блоков системы, установка и настройка программного обеспечения и другие ремонтные работы согласно техническому заключению о поломках.

Токен бота у нас уже есть, а chat id можно получить 2 способами:

  1. Написать боту @ShowJsonBot любой текст. В ответ он вернет вам некие данные в JSON формате. Находим объект chat и в нем id — это и есть ваш chat id.
  2. В адресной строке ввести https://api.telegram.org/bot<YourBOTToken>/getUpdates где <YourBOTToken> — это ранее полученный токен вашего бота. Находим объект chat и в нем id — это и есть ваш chat id.

Отправка сообщений из плагина WordPress Contact Form 7 в Telegram

Для удобства я сохранил код в отдельный файл и включил его в плагине. Итак создаем файл telegram.php в текущем шаблоне и добавляем в него следующий код:

<?
// токен бота
 define('TELEGRAM_TOKEN', '123456789:XXXXXXXXXXXXXXXXXXXXXXX');
// ваш внутренний ID
 define('TELEGRAM_CHATID', '123456789');

$message = str_replace("\n", ' ', strip_tags($body));

$ch = curl_init('https://api.telegram.org/bot'.TELEGRAM_TOKEN.'/sendMessage?chat_id='.TELEGRAM_CHATID.'&text='.$message); // URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Не возвращать ответ
curl_exec($ch); // Делаем запрос
curl_close($ch); // Завершаем сеанс cURL
?>

В файле /wp-content/plugins/contact-form-7/includes/mail.php подключаем файл перед функцией return wp_mail( $recipient, $subject, $body, $headers, $attachments ); это примерно 133 строка:

include_once(get_template_directory().'/telegram.php');

Отправка сообщений в группу

Чтобы бот мог отправлять сообщения в группу, необходимо дать ему определенные разрешения.

Опять заходим в @BotFather и вводим следующую команду: /setjoingroups, выбираем нашего бота и команду Enabled. Теперь бота можно добавлять в группы. Далее необходимо разрешить боту читать и писать все сообщения, делается это командой /setprivacy установленной наоборот в Disabled.

Теперь добавляем бота в группу Telegram, как обычного участника.

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

Теперь в настройках скрипта нужно изменить chat id пользователя, на chat id нужной группы. Для этого предварительно нужно написать любое сообщение в чат, а затем в адресной строке ввести https://api.telegram.org/bot<YourBOTToken>/getUpdates где <YourBOTToken> — это ранее полученный токен вашего бота. После находим объект chat и в нем id — это и будет chat id группы.

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Перенос сайта на WordPress на другой домен

В повседневной работе часто приходится сталкиваться с переносом сайта на Wordpress с локального или тестового домена на основной. Для этого необходимо не только скопировать файлы, базу данных и поменять настройки в конфигурационном файле, но и сделать ряд SQL-запросов, чтобы прописать Читать далее

Правильный файл robots.txt для WordPress 2019

Самый оптимальный и простой код файла robots.txt для вашего сайта на WordPress, который подойдет для всех поисковиков. Этот вариант использую на данном сайте. Не забудьте заменить it-blog.ru на адрес вашего сайта. Содержание файла robots.txt для WordPress Если вы используете HTTPS, Читать далее

Телеграм бот на PHP отправляющий сообщения с сайта

Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто. Так же стояла задача отправлять сообщения не Читать далее

Произвольные типы записей WordPress

Произвольные типы записей позволяют разделить посты не только по категориям, но и по их типу с собственными названиями и рубриками. Это что-то типо инфоблока, как в CMS 1С-Битрикс. По умолчанию в WordPress есть возможность добавлять записи и их рубрики. К Читать далее

Произвольные поля WordPress

Произвольные поля или как их еще называют кастомные или доп. поля в WordPress очень нужная вещь, особенно при создании например сайта-каталога. С помощью доп. полей можно добавить к записям возможность указывать например цену или цвет, а затем выводить сохраненное значение Читать далее

Создание плагина WordPress с нуля

Когда я создавал свой первый плагин, то оказалось, что в сети очень мало информации по этому вопросу. С трудом удалось найти даже основы. Надеюсь эта статья поможет вам научиться писать различные плагины для WordPress. Наверняка вы уже пользовались и знаете, Читать далее

WordPress Ajax

По большей части публикации про применение Ajax в WordPress сложные для понимания, особенно если вы мало знакомы с этой технологией. В этой статье я покажу, как на самом деле просто использовать Ajax в публичной части сайта. Ajax запросы в WordPress Читать далее

25 комментариев на «Отправка сообщений в Telegram из Contact Form 7»

  1. Илья:

    спасибо

  2. Василий:

    Добрый день, спасибо за материал, подскажите пожалуйста как сделать, чтоб после каждого поля контактной формы был перенос строки, а телефон был кликабельным?

  3. Антон:

    Добрый день! Передайте HTML в поле parse_mode при использовании sendMessage.

  4. Василий:

    Спасибо дружище), я тупанул, там в самой настройки формы СF7 надо было добавить %0A после каждого поля, а чтоб «плюсик» номера восстановить — добавить %2B перед номером. Вопрос еще такой, может подскажешь, если в поле textarea в contact form 7 при вводе текста сделать перенос строки(нажать ентер), то форма не отправит данные, хотя сообщение об успешной отправке появится. Это же просто ужас, клиент нажмет перевод строки и ты потеряешь клиента, так как его сообщение не отправится… Как этот можно исправить?

  5. Евгений:

    Добрый день!
    Спасибо.
    Если плагин обновится изменения затрутся?

  6. Антон:

    Возможно письмо отправляется, но не доходит из-за символов, которые появляются при переводе строки.

  7. Антон:

    Да, возможно после обновления надо будет вновь подключить скрипт в плагине.

  8. Борис:

    А если у меня много форм обратной связи и я хочу, чтоб данные из каждой формы отправлялись в свою группу телеграм?

  9. Антон:

    Перед скриптом отправки получать ID формы и в зависимости от неё менять параметры бота.

  10. Рустам:

    «После находим объект chat и в нем id — это и будет chat id группы.» — где находим? После ввода в адресной строке https://api.telegram.org/bot/getUpdates получил в ответ {«ok»:true,»result»:[]}

  11. Антон:

    Видимо вы предварительно не отправили любое сообщение в группу, где находится бот.

  12. inwall:

    Здравствуйте, все вышеуказанное проделал. Отправляю форму на сайте, но сообщения не приходят на телегу. Какие-то может после проделанной настройки работы еще в плагине Contact Form 7 должны производиться?

  13. Антон:

    Нет, только вызов скрипта в коде плагина. Проверьте, что скрипт и бот верно настроен.

  14. inwall:

    Огромное спасибо, все получилось!

  15. Максим:

    Сделал всё пошагово по инструкции, проверил, с подключенным файлом telegram.php сообщения из формы вообще не отправляются, крутится анимация процесса отправки и всё, что может быть не так?

  16. Антон:

    У вас ошибка в коде telegram.php

  17. Эдгар:

    Спасибо за инструкцию, у меня получилось

  18. Михаил:

    Приветствую. Куда нужно положить файл telegram.php? Не отправляются сообщения вроде все сделал по инструкции.

  19. Михаил:

    Разобрался в тему кидать, огонь, спасибо

  20. НАТАЛЬЯ:

    Перестали приходить с сайта в телеграмм бот сообщения….все работало и вдруг дня три ничего не приходит….

  21. david:

    возможно обновили плагин CF-7 попробуйте заново отредактировать mail.php

  22. Олександр:

    Дякую! Все супер, але telegram.php потрібно закидати в папку с актуальною темою 🙂

  23. Тимур:

    Приветствую! всё приходит, но со штрихкодами, типо [tel], [name]. Не знаете как их отфильтровать?

  24. Ирина:

    Спасибо большое!

  25. Алекс:

    Что делать если SMTP блочит отправку. Распознает как спам.

Добавить комментарий