{"id":298800,"date":"2026-04-29T06:45:09","date_gmt":"2026-04-29T06:45:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vk-notifications-for-contact-form-7\/"},"modified":"2026-04-29T09:31:42","modified_gmt":"2026-04-29T09:31:42","slug":"message-bridge-for-contact-form-7-and-vk","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/message-bridge-for-contact-form-7-and-vk\/","author":8509166,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.4","stable_tag":"0.1.4","tested":"6.9.4","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Message Bridge for Contact Form 7 and VK","header_author":"Hokku","header_description":"Sends Contact Form 7 submissions to VK dialogs through configurable message bridge channels.","assets_banners_color":"001444","last_updated":"2026-04-29 09:31:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":100,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"0.1.3":{"tag":"0.1.3","author":"hokku","date":"2026-04-29 06:44:55"},"0.1.4":{"tag":"0.1.4","author":"hokku","date":"2026-04-29 09:31:42"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3518233,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3518233,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3518233,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3518233,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3518234,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/plugins.php\",\"preferredVersions\":{\"php\":\"8.1\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"contact-form-7\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"message-bridge-for-contact-form-7-and-vk\"},\"options\":{\"activate\":true}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["0.1.3","0.1.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1152,15395,9219],"plugin_category":[56],"plugin_contributors":[131199,259035],"plugin_business_model":[],"class_list":["post-298800","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-vk","plugin_tags-vkontakte","plugin_category-social-and-sharing","plugin_contributors-hokku","plugin_contributors-igortron","plugin_committers-hokku"],"banners":{"banner":"https:\/\/ps.w.org\/message-bridge-for-contact-form-7-and-vk\/assets\/banner-772x250.png?rev=3518233","banner_2x":"https:\/\/ps.w.org\/message-bridge-for-contact-form-7-and-vk\/assets\/banner-1544x500.png?rev=3518233","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/message-bridge-for-contact-form-7-and-vk\/assets\/icon-128x128.png?rev=3518233","icon_2x":"https:\/\/ps.w.org\/message-bridge-for-contact-form-7-and-vk\/assets\/icon-256x256.png?rev=3518233","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Message Bridge for Contact Form 7 and VK sends Contact Form 7 submissions to VKontakte users through a connected VK community. The number of VK recipients is not limited by the plugin: users subscribe to messages from the connected community, and the community acts as the notification bridge.<\/p>\n\n<p>To set up delivery:<\/p>\n\n<ol>\n<li>Create a VK community that will send the notifications.<\/li>\n<li>In the VK community settings, open Community management &gt; Messages and enable community messages.<\/li>\n<li>Open Advanced &gt; API usage, go to the LongPoll API tab, enable LongPoll API, and select API version 5.199 from the dropdown.<\/li>\n<li>Switch to Event types and enable Incoming messages.<\/li>\n<li>Open the Access keys tab and create a community access token with permission to use community messages.<\/li>\n<li>Open the Callback API tab and copy the <code>group_id<\/code> value.<\/li>\n<li>In the plugin interface, click Create Bot.<\/li>\n<li>Enter the Group ID, save the access token, or use the Copy PHP const controls to keep these values in PHP constants. Then wait for the bot status to become online. Configured and working bots are shown in blue.<\/li>\n<li>Ask each VK recipient to open the community messages and send <code>start<\/code> to the community.<\/li>\n<li>Approve or reject each subscription request in the plugin interface.<\/li>\n<li>Create a channel in the plugin interface to connect specific Contact Form 7 forms with the VK bot\/community that should send their notifications.<\/li>\n<\/ol>\n\n<h4>Hooks<\/h4>\n\n<p>Filter <code>cf7vk_skip_delivery<\/code>\nReturn a truthy value to stop delivery for the current Contact Form 7 submission before channels and messages are resolved.\nArguments: <code>$skip<\/code> (bool), <code>$contact_form<\/code> (WPCF7_ContactForm), <code>$submission<\/code> (WPCF7_Submission).<\/p>\n\n<p>Filter <code>cf7vk_unfiltered_message<\/code>\nFilters the Contact Form 7 mail body after mail-tag replacement and before VK-specific formatting.\nArguments: <code>$message<\/code> (string), <code>$submission<\/code> (WPCF7_Submission).<\/p>\n\n<p>Filter <code>cf7vk_prepared_message<\/code>\nFilters the formatted VK notification text before it is passed to the linked delivery channels.\nArguments: <code>$prepared_message<\/code> (string), <code>$submission<\/code> (WPCF7_Submission), <code>$contact_form<\/code> (WPCF7_ContactForm), <code>$mail<\/code> (array).<\/p>\n\n<p>Action <code>cf7vk_channel_sendout<\/code>\nFires when a channel starts processing a prepared outgoing message, before bot and chat availability checks.\nArguments: <code>$channel<\/code> (iTRON\\cf7Vk\\Channel), <code>$message<\/code> (string), <code>$context<\/code> (array).<\/p>\n\n<p>Action <code>cf7vk_delivery_exception<\/code>\nFires when delivery relation lookup, chat status lookup, or VK transport delivery fails. The <code>$chat<\/code> argument can be null for relation lookup errors.\nArguments: <code>$exception<\/code> (Throwable), <code>$channel<\/code> (iTRON\\cf7Vk\\Channel), <code>$chat<\/code> (?iTRON\\cf7Vk\\Chat), <code>$context<\/code> (array).<\/p>\n\n<h3>Source Code and Build Tools<\/h3>\n\n<p>The development repository for this plugin is publicly available at:\nhttps:\/\/github.com\/hokoo\/cf7-vk<\/p>\n\n<p>The admin assets bundled in this plugin are generated from the React source in that repository.<\/p>\n\n<p>Current build flow:<\/p>\n\n<ol>\n<li>Install dependencies in <code>plugin-dir\/react<\/code> with <code>npm ci<\/code> or <code>npm install<\/code>.<\/li>\n<li>Run <code>npm run build<\/code> in <code>plugin-dir\/react<\/code> to regenerate the production assets.<\/li>\n<\/ol>\n\n<h3>External Services<\/h3>\n\n<h4>VK API<\/h4>\n\n<p>This plugin connects to the VK API to verify the configured community, request Bots Long Poll bootstrap data, load user and conversation details for connected dialogs, and send Contact Form 7 notifications to VK dialogs.<\/p>\n\n<p>When an administrator verifies or syncs a connection, the plugin sends the configured community ID, community access token, API version, and the identifiers required for the requested VK API call, such as peer IDs, conversation message IDs, and user IDs.<\/p>\n\n<p>When a Contact Form 7 submission is delivered, the plugin sends the destination dialog peer ID and the formatted notification text. That notification text can include the form title, mail subject, and submitted field values.<\/p>\n\n<p>This service is provided by VK:\nTerms of Service: https:\/\/vk.com\/terms\nPrivacy Policy: https:\/\/vk.com\/privacy\nAPI documentation: https:\/\/dev.vk.com\/<\/p>\n\n<h4>VK Bots Long Poll API<\/h4>\n\n<p>This plugin connects to the VK Bots Long Poll API to discover dialogs that send the configured authorization command to the connected community and to fetch new message events for linked dialogs.<\/p>\n\n<p>When an administrator runs dialog sync, the plugin sends the current Long Poll server key and timestamp issued by VK. VK returns new community message events and related dialog metadata, which can include peer IDs, sender IDs, conversation message IDs, message text, and chat titles.<\/p>\n\n<p>This service is provided by VK:\nTerms of Service: https:\/\/vk.com\/terms\nPrivacy Policy: https:\/\/vk.com\/privacy\nLong Poll documentation: https:\/\/dev.vk.com\/ru\/api\/bots-long-poll\/getting-started<\/p>\n\n<!--section=changelog-->\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Added PHP constant support and admin copy helpers for VK access tokens and group IDs.<\/li>\n<li>Expanded VK community setup documentation and corrected the documented delivery hooks.<\/li>\n<li>Added a WordPress Playground blueprint for installing Contact Form 7 and the latest stable plugin build.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Clarified the WP Data Logger integration hook and aligned the localized admin script object with the plugin prefix.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Updated bundled dependencies and REST endpoint permissions for WordPress.org review.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Updated plugin metadata, naming, external service disclosures, and release packaging for WordPress.org review.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Bootstrap plugin shell created from the reference architecture.<\/li>\n<li>React admin shell, CPTs, relations, settings page, and migration scaffolding added.<\/li>\n<li>VK API wrapper, bot ping endpoint, Long Poll bootstrap sync, and outbound send primitive added.<\/li>\n<li>Manual Long Poll dialog discovery, VK chat model sync, and CF7 plain-text formatter added.<\/li>\n<li>Delivery is restricted to active dialogs, and the admin UI now exposes copyable auth commands and channel title editing.<\/li>\n<\/ul>","raw_excerpt":"Send Contact Form 7 notifications to VK dialogs through a configurable message bridge.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/298800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=298800"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hokku"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=298800"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=298800"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=298800"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=298800"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=298800"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=298800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}