WP Manifestindependent plugin directory
manifest / forms / cf7-telegram-bridge

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

★ 0stars
0forks

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.zip

Ships 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: последний релиз.

Установка и обновления

  1. Скачайте cf7-telegram-bridge.zip из релиза, затем в WordPress откройте Плагины → Добавить → Загрузить плагин.
  2. Установите ZIP и активируйте плагин.
  3. Новые стабильные релизы автоматически обнаруживаются через стандартную проверку обновлений WordPress. Обновить можно в Консоль → Обновления или в списке плагинов.
  4. Для автоматической установки обновлений включите Автообновление у плагина в списке 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 — другой продукт.

Настройка

  1. Активируйте Contact Form 7 и Contact Form 7 → Telegram.
  2. Откройте Контактные формы → Telegram или ссылку «Настройки» в списке плагинов.
  3. Создайте бота через @BotFather, скопируйте токен.
  4. Добавьте бота в нужную группу с правом отправлять сообщения.
  5. Введите токен и числовой chat_id группы, включая минус, если он есть.
  6. Включите отправку, сохраните настройки и нажмите Отправить тестовое сообщение.

Для определения 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. Настройки и статус доставки восстанавливаются после выполнения.

Выпуск новой версии

Работайте в отдельном клоне этого репозитория:

  1. Измените код и повысьте версию в заголовке cf7-telegram-bridge.php и константе CF7TG_VERSION в том же файле.
  2. Проверьте плагин на тестовом WordPress, выполните проверки выше и соберите ZIP: python3 tools/build-release.py.
  3. Закоммитьте изменения и отправьте их в main.
  4. Создайте тег, соответствующий версии, например git tag v1.1.1, затем git push origin v1.1.1.
  5. GitHub Actions проверит соответствие версии тегу и синтаксис PHP, соберёт установочный ZIP и опубликует GitHub Release с заметками об изменениях.

Релиз появляется у пользователей только после публикации ZIP. Черновики и предварительные версии игнорируются. Не используйте автоматический архив GitHub Source code для установки — готовый ZIP имеет правильную папку cf7-telegram-bridge.

Чтобы проверить релиз вручную: Консоль → Обновления → Проверить снова. Удаление/деактивация плагина не удаляет токен и настройки.

Лицензия

GPL-2.0-or-later, см. LICENSE.