Отправка сообщений в 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, который подойдет для всех поисковиков. Этот вариант использую на данном сайте. Не забудьте заменить maindot.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 блочит отправку. Распознает как спам.

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