Contact Form 7 → Telegram self-updates
Contact Form 7 to Telegram notifications with native WordPress updates from GitHub Releases
by sofardy · github.com/sofardy/cf7-telegram-bridge · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/sofardy/cf7-telegram-bridge/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Самостоятельный плагин WordPress для отправки данных Contact Form 7 в Telegram.
Публичный репозиторий: sofardy/cf7-telegram-bridge. Установочный ZIP: последний релиз.
Установка и обновления
- Скачайте cf7-telegram-bridge.zip из релиза, затем в WordPress откройте Плагины → Добавить → Загрузить плагин.
- Установите ZIP и активируйте плагин.
- Новые стабильные релизы автоматически обнаруживаются через стандартную проверку обновлений WordPress. Обновить можно в Консоль → Обновления или в списке плагинов.
- Для автоматической установки обновлений включите Автообновление у плагина в списке WordPress. Оно не включается принудительно.
Плагин запрашивает публичные метаданные релиза GitHub; токен Telegram и данные заявок в GitHub не передаются. Авторизация GitHub на установленных сайтах не нужна. Ответ кэшируется на час; открытие страницы «Обновления» очищает этот кэш. При недоступности GitHub проверка повторится позже, отправка заявок продолжит работать.
Техническое имя — cf7-telegram-bridge, поле Update URI указывает на собственный GitHub-репозиторий. Это защищает от обновления одноимённым пакетом из каталога WordPress.org.
Если вы устанавливали ранний ZIP с папкой cf7-telegram, деактивируйте его и один раз установите новый ZIP cf7-telegram-bridge. Настройки нашего плагина (cf7tg_settings) сохранятся. После этого последующие обновления приходят из GitHub. Плагин из каталога WordPress.org с именем cf7-telegram — другой продукт.
Настройка
- Активируйте Contact Form 7 и Contact Form 7 → Telegram.
- Откройте Контактные формы → Telegram или ссылку «Настройки» в списке плагинов.
- Создайте бота через @BotFather, скопируйте токен.
- Добавьте бота в нужную группу с правом отправлять сообщения.
- Введите токен и числовой
chat_idгруппы, включая минус, если он есть. - Включите отправку, сохраните настройки и нажмите Отправить тестовое сообщение.
Для определения ID можно добавить бота в группу, отправить команду, например /start@имя_бота, и посмотреть message.chat.id в ответе метода getUpdates. Если у бота настроен webhook, getUpdates недоступен — используйте ID из уже полученного webhook-события. Не публикуйте токен бота.
Поведение
- Общие настройки применяются ко всем формам CF7, независимо от темы.
- Отправляются только заявки со статусом
mail_sentилиmail_failed; ошибки валидации, спам, неподтверждённое согласие, отменённые и демонстрационные отправки пропускаются. - Успешный
skip_mailтакже поддерживается: если отправка писем отключена, заявки продолжат передаваться в Telegram. - Сообщение содержит название сайта, форму, дату в часовом поясе WordPress, адрес страницы и непустые значения зарегистрированных полей. Метки берутся из связанных
label forи ID полей; иначе используется имя поля CF7. - Checkbox/select передаются списком. Технические поля, nonce, captcha, пароли и honeypot-поля не отправляются. Файлы не пересылаются.
- Используется обычный текст без HTML/Markdown. Длинный текст разбивается на сообщения с учётом лимита Telegram, включая emoji.
- Отправка выполняется в запросе формы, с таймаутом 8 секунд для каждого сообщения. Повторных попыток и очереди нет. При ошибке или частичной доставке длинного сообщения статус виден в настройках; результат CF7 не меняется.
- Токен хранится в WordPress options, не возвращается в HTML/REST и не записывается в журнал. Пустое поле сохраняет предыдущий токен; отдельная галочка удаляет его.
- Настройки и тест доступны только пользователям с
manage_options; сохранение и тест защищены WordPress nonce. Последний статус не содержит данных заявки. - После деактивации настройки сохраняются. Для полного удаления данных удалите options
cf7tg_settingsиcf7tg_last_resultчерез WP-CLI.
Проверка
wp eval-file wp-content/plugins/cf7-telegram-bridge/tests/integration.php
wp eval-file wp-content/plugins/cf7-telegram-bridge/tests/updates.php
Проверки подменяют HTTP и не отправляют сообщения в Telegram. Настройки и статус доставки восстанавливаются после выполнения.
Выпуск новой версии
Работайте в отдельном клоне этого репозитория:
- Измените код и повысьте версию в заголовке
cf7-telegram-bridge.phpи константеCF7TG_VERSIONв том же файле. - Проверьте плагин на тестовом WordPress, выполните проверки выше и соберите ZIP:
python3 tools/build-release.py. - Закоммитьте изменения и отправьте их в
main. - Создайте тег, соответствующий версии, например
git tag v1.1.1, затемgit push origin v1.1.1. - GitHub Actions проверит соответствие версии тегу и синтаксис PHP, соберёт установочный ZIP и опубликует GitHub Release с заметками об изменениях.
Релиз появляется у пользователей только после публикации ZIP. Черновики и предварительные версии игнорируются. Не используйте автоматический архив GitHub Source code для установки — готовый ZIP имеет правильную папку cf7-telegram-bridge.
Чтобы проверить релиз вручную: Консоль → Обновления → Проверить снова. Удаление/деактивация плагина не удаляет токен и настройки.
Лицензия
GPL-2.0-or-later, см. LICENSE.