Message Bridge для Contact Form 7 и ВК
Message Bridge для Contact Form 7 и ВК отправляет формы Contact Form 7 пользователям ВКонтакте через подключённое ВК сообщество. Количество получателей ВК не ограничено: пользователи подписываются на сообщения от подключённого сообщества, а сообщество выступает мостом для уведомлений.
Настройка интеграции:
- Создайте сообщество ВК, которое будет отправлять уведомления.
- В настройках сообщества ВК откройте «Управление сообществом» > «Сообщения» и включите сообщения сообщества.
- Откройте «Дополнительно» > «Работа с API», перейдите на вкладку LongPoll API, включите LongPoll API и выберите версию API 5.199 из выпадающего списка.
- Перейдите в раздел «Типы событий» и включите входящие сообщения.
- Откройте вкладку «Ключи доступа» и создайте токен доступа сообщества с разрешением на использование сообщений сообщества.
- Откройте вкладку Callback API и скопируйте значение
group_id. - В интерфейсе плагина нажмите «Создать бота».
- Введите ID группы, сохраните токен доступа или используйте элементы управления «Скопировать PHP-константу», чтобы хранить эти значения в PHP-константах. Затем дождитесь, пока статус бота станет онлайн. Настроенные и работающие боты отображаются синим цветом.
- Попросите каждого получателя ВК открыть сообщения сообщества и отправить сообществу команду
start. - Одобрите или отклоните каждый запрос на подписку в интерфейсе плагина.
- Создайте канал в интерфейсе плагина, чтобы связать определённые формы Contact Form 7 с ботом/сообществом ВК, которое должно отправлять их уведомления.
Hooks
Filter cf7vk_skip_delivery
Return a truthy value to stop delivery for the current Contact Form 7 submission before channels and messages are resolved.
Arguments: $skip (bool), $contact_form (WPCF7_ContactForm), $submission (WPCF7_Submission).
Filter cf7vk_unfiltered_message
Filters the Contact Form 7 mail body after mail-tag replacement and before VK-specific formatting.
Arguments: $message (string), $submission (WPCF7_Submission).
Filter cf7vk_prepared_message
Filters the formatted VK notification text before it is passed to the linked delivery channels.
Arguments: $prepared_message (string), $submission (WPCF7_Submission), $contact_form (WPCF7_ContactForm), $mail (array).
Action cf7vk_channel_sendout
Fires when a channel starts processing a prepared outgoing message, before bot and chat availability checks.
Arguments: $channel (iTRON\cf7Vk\Channel), $message (string), $context (array).
Action cf7vk_delivery_exception
Fires when delivery relation lookup, chat status lookup, or VK transport delivery fails. The $chat argument can be null for relation lookup errors.
Arguments: $exception (Throwable), $channel (iTRON\cf7Vk\Channel), $chat (?iTRON\cf7Vk\Chat), $context (array).
Source Code and Build Tools
Репозиторий разработки этого плагина публично доступен по адресу: https://github.com/hokoo/cf7-vk
Ресурсы для панели администрирования, включённые в этот плагин, генерируются из React-исходников в этом репозитории.
Текущий процесс сборки:
- Установите зависимости в
plugin-dir/reactс помощьюnpm ciилиnpm install. - Запустите
npm run buildвplugin-dir/react, чтобы заново сгенерировать production-ресурсы.
Внешние сервисы
VK API
Этот плагин подключается к VK API, чтобы проверить настроенное сообщество, запросить начальные данные Bots Long Poll, загрузить данные пользователей и диалогов для подключённых диалогов и отправлять уведомления Contact Form 7 в диалоги ВК.
Когда администратор проверяет или синхронизирует подключение, плагин отправляет настроенный ID сообщества, токен доступа сообщества, версию API и идентификаторы, необходимые для запрошенного вызова VK API, такие как peer ID, conversation message ID и user ID.
Когда срабатывает отправки формы Contact Form 7, плагин отправляет peer ID целевого диалога и отформатированный текст уведомления. Этот текст уведомления может включать название формы, тему письма и отправленные значения полей.
This service is provided by VK: Terms of Service: https://vk.com/terms Privacy Policy: https://vk.com/privacy API documentation: https://dev.vk.com/
VK Bots Long Poll API
Этот плагин подключается к ВК Bots Long Poll API, чтобы находить диалоги, которые отправили настроенную команду авторизации подключённому сообществу, и получать новые события сообщений для привязанных диалогов.
Когда администратор запускает синхронизацию диалогов, плагин отправляет текущий ключ сервера Long Poll и timestamp, выданные ВК. ВК возвращает новые события сообщений сообщества и связанные метаданные диалогов, которые могут включать peer ID, sender ID, conversation message ID, message text и chat titles.
Этот сервис предоставляется ВК: Условия использования: https://vk.com/terms Политика конфиденциальности: https://vk.com/privacy Документация Long Poll: https://dev.vk.com/ru/api/bots-long-poll/getting-started
