[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fFrghhdefzdfsFFZALPVIwoEbVFs0ObGrSTcM7V4dXeM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":147,"fingerprints":544},"mksddn-forms-handler","MksDdn Forms Handler","2.4.0","Max","https:\u002F\u002Fprofiles.wordpress.org\u002Fmksddn\u002F","\u003Cp>MksDdn Forms Handler is a powerful and flexible form processing plugin that allows you to create and manage forms with multiple delivery methods. Perfect for websites that need reliable form handling with modern integrations.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple Delivery Methods\u003C\u002Fstrong>: Send form submissions via email, Telegram, Google Sheets, or store in WordPress admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API Support\u003C\u002Fstrong>: Submit forms via AJAX or REST API endpoints\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Telegram Integration\u003C\u002Fstrong>: Instant notifications to Telegram channels\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Sheets Integration\u003C\u002Fstrong>: Automatically save submissions to Google Sheets\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Post Types\u003C\u002Fstrong>: Dedicated forms and submissions management\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong>: Built-in validation, sanitization, and security measures\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>: Clean code structure with proper namespacing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Use Cases\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Contact forms with multiple delivery options\u003C\u002Fli>\n\u003Cli>Lead generation forms with instant notifications\u003C\u002Fli>\n\u003Cli>Data collection forms with Google Sheets backup\u003C\u002Fli>\n\u003Cli>Custom forms with REST API integration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Technical Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.0+ compatible (tested up to 6.9)\u003C\u002Fli>\n\u003Cli>PHP 8.0+ required\u003C\u002Fli>\n\u003Cli>GPL v2+ licensed\u003C\u002Fli>\n\u003Cli>Clean, maintainable code\u003C\u002Fli>\n\u003Cli>Proper error handling\u003C\u002Fli>\n\u003Cli>Comprehensive logging\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>For Developers\u003C\u002Fh3>\n\u003Ch4>Architecture\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Component-based structure\u003C\u002Fstrong> following SOLID principles with clear separation of concerns:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Core Components (includes\u002F)\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>PostTypes\u003C\u002Fcode> – custom post types registration (\u003Ccode>mksddn_fh_forms\u003C\u002Fcode>, \u003Ccode>mksddn_fh_submits\u003C\u002Fcode>)\u003Cbr \u002F>\n* \u003Ccode>MetaBoxes\u003C\u002Fcode> – form settings and submission data management\u003Cbr \u002F>\n* \u003Ccode>FormsHandler\u003C\u002Fcode> – main processing logic with REST API support\u003Cbr \u002F>\n* \u003Ccode>Shortcodes\u003C\u002Fcode> – form rendering with AJAX functionality\u003Cbr \u002F>\n* \u003Ccode>AdminColumns\u003C\u002Fcode> – admin interface customization\u003Cbr \u002F>\n* \u003Ccode>ExportHandler\u003C\u002Fcode> – CSV export with filtering\u003Cbr \u002F>\n* \u003Ccode>Security\u003C\u002Fcode> – rate limiting and security checks\u003Cbr \u002F>\n* \u003Ccode>Utilities\u003C\u002Fcode> – helper functions and form creation utilities\u003Cbr \u002F>\n* \u003Ccode>GoogleSheetsAdmin\u003C\u002Fcode> – Google Sheets settings page and OAuth\u003Cbr \u002F>\n* \u003Ccode>Assets\u003C\u002Fcode> – asset registration and conditional enqueuing\u003Cbr \u002F>\n* \u003Ccode>Template Functions\u003C\u002Fcode> – global functions for PHP template integration\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Handlers (handlers\u002F)\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>TelegramHandler\u003C\u002Fcode> – Telegram Bot API integration\u003Cbr \u002F>\n* \u003Ccode>GoogleSheetsHandler\u003C\u002Fcode> – Google Sheets API integration\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Assets (assets\u002F)\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>css\u002F\u003C\u002Fcode> – Admin and frontend styles\u003Cbr \u002F>\n* \u003Ccode>js\u002F\u003C\u002Fcode> – Admin and form scripts\u003Cbr \u002F>\n* \u003Ccode>images\u002F\u003C\u002Fcode> – Plugin images\u003C\u002Fp>\n\u003Ch4>Technology Stack\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.0+ – core platform\u003C\u002Fli>\n\u003Cli>PHP 8.0+ – server-side logic\u003C\u002Fli>\n\u003Cli>jQuery – client-side form handling\u003C\u002Fli>\n\u003Cli>REST API – form submission API\u003C\u002Fli>\n\u003Cli>Google Sheets API – spreadsheet integration\u003C\u002Fli>\n\u003Cli>Telegram Bot API – notifications\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>File Structure\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>mksddn-forms-handler\u002F\n├── mksddn-forms-handler.php     # Main plugin file\n├── includes\u002F                     # Core components\n│   ├── class-post-types.php\n│   ├── class-meta-boxes.php\n│   ├── class-forms-handler.php\n│   ├── class-shortcodes.php\n│   ├── class-admin-columns.php\n│   ├── class-export-handler.php\n│   ├── class-security.php\n│   ├── class-utilities.php\n│   ├── class-google-sheets-admin.php\n│   ├── class-assets.php\n│   └── template-functions.php\n├── handlers\u002F                     # External service handlers\n│   ├── class-telegram-handler.php\n│   └── class-google-sheets-handler.php\n├── templates\u002F                    # Template files\n│   ├── form-settings-meta-box.php\n│   └── custom-form-examples.php\n├── assets\u002F                       # Static resources\n│   ├── css\u002F\n│   ├── js\u002F\n│   └── images\u002F\n├── languages\u002F                    # Translations\n└── uninstall.php                # Cleanup script\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Integration Methods\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>1. Shortcode (Standard)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[mksddn_fh_form slug=\"contact-form\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Plugin automatically generates HTML form based on configuration.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. PHP Templates (Custom Forms)\u003C\u002Fstrong>\u003Cbr \u002F>\nIntegrate pre-built forms in theme templates:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cform method=\"post\" action=\"\u003C?php echo mksddn_fh_get_form_action(); ?>\">\n    \u003C?php mksddn_fh_form_fields('contact-form'); ?>\n    \u003C!-- Your custom fields -->\n    \u003Cinput type=\"text\" name=\"name\" required>\n    \u003Cinput type=\"email\" name=\"email\" required>\n    \u003Cbutton type=\"submit\">Send\u003C\u002Fbutton>\n\u003C\u002Fform>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Available Functions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>mksddn_fh_get_form_action()\u003C\u002Fcode> – get form action URL\u003Cbr \u002F>\n* \u003Ccode>mksddn_fh_form_fields($slug)\u003C\u002Fcode> – output hidden fields (nonce, form_id, honeypot)\u003Cbr \u002F>\n* \u003Ccode>mksddn_fh_get_form_config($slug)\u003C\u002Fcode> – get form configuration\u003Cbr \u002F>\n* \u003Ccode>mksddn_fh_get_rest_endpoint($slug)\u003C\u002Fcode> – get REST API endpoint for AJAX\u003Cbr \u002F>\n* \u003Ccode>mksddn_fh_form_has_files($slug)\u003C\u002Fcode> – check for file fields\u003Cbr \u002F>\n* \u003Ccode>mksddn_fh_enqueue_form_script()\u003C\u002Fcode> – enqueue AJAX script\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Accept Any Fields (Advanced):\u003C\u002Fstrong>\u003Cbr \u002F>\nFor custom forms where you control field names in templates, enable “Accept any fields from frontend” in form settings to skip field validation. This allows submitting ANY field names without defining them in Fields Configuration. All fields are still sanitized but type validation is skipped.\u003C\u002Fp>\n\u003Cp>See \u003Ccode>\u002Ftemplates\u002Fcustom-form-examples.php\u003C\u002Fcode> for detailed examples.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. REST API (AJAX)\u003C\u002Fstrong>\u003Cbr \u002F>\nSubmit forms via REST API without page reload:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>fetch('\u003C?php echo mksddn_fh_get_rest_endpoint(\"contact-form\"); ?>', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application\u002Fjson' },\n    body: JSON.stringify(formData)\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Development Standards\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Coding\u003C\u002Fstrong>\u003Cbr \u002F>\n* WordPress Coding Standards compliance\u003Cbr \u002F>\n* SOLID principles\u003Cbr \u002F>\n* DRY (Don’t Repeat Yourself)\u003Cbr \u002F>\n* KISS (Keep It Simple)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Security\u003C\u002Fstrong>\u003Cbr \u002F>\n* Input validation for all data\u003Cbr \u002F>\n* Output sanitization\u003Cbr \u002F>\n* Nonce verification (CSRF protection)\u003Cbr \u002F>\n* Capability checks\u003Cbr \u002F>\n* Rate limiting (1 request per 10 seconds per IP per form)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Performance\u003C\u002Fstrong>\u003Cbr \u002F>\n* Minimal database queries\u003Cbr \u002F>\n* Data caching\u003Cbr \u002F>\n* Lazy loading of resources\u003Cbr \u002F>\n* Conditional script enqueuing\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Compatibility\u003C\u002Fstrong>\u003Cbr \u002F>\n* WordPress 5.0+ minimum\u003Cbr \u002F>\n* PHP 8.0+ minimum\u003Cbr \u002F>\n* Multisite support\u003Cbr \u002F>\n* RTL support\u003Cbr \u002F>\n* Accessibility standards (WCAG)\u003C\u002Fp>\n\u003Ch4>WordPress Hooks & Filters\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Filters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>mksddn_fh_allowed_fields - Modify allowed field names for a form\n\nadd_filter('mksddn_fh_allowed_fields', function($allowed_fields, $form_id, $form_slug) {\n    \u002F\u002F Allow all fields for specific form\n    if ($form_slug === 'my-custom-form') {\n        return ['*'];\n    }\n    \u002F\u002F Add specific fields\n    return array_merge($allowed_fields, ['custom_field_1', 'custom_field_2']);\n}, 10, 3);\n\nmksddn_fh_allowed_redirect_hosts - Whitelist external domains for redirect URLs\n\nadd_filter('mksddn_fh_allowed_redirect_hosts', function($hosts) {\n    \u002F\u002F Allow specific external domains for redirects\n    return array_merge($hosts, ['example.com', 'trusted-partner.com']);\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Actions:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>mksddn_forms_handler_log_security - Fired when unauthorized fields are detected\nmksddn_forms_handler_log_submission - Fired when form submission is processed\u003Ch3>REST API\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Namespace: \u003Ccode>mksddn-forms-handler\u002Fv1\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>List Forms\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Method\u003C\u002Fstrong>: GET\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Path\u003C\u002Fstrong>: \u003Ccode>\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Query Parameters\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>\u003Ccode>per_page\u003C\u002Fcode> (1–100, default: 10)\u003C\u002Fli>\n\u003Cli>\u003Ccode>page\u003C\u002Fcode> (>=1, default: 1)\u003C\u002Fli>\n\u003Cli>\u003Ccode>search\u003C\u002Fcode> (string, optional)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Response Headers\u003C\u002Fstrong>: \u003Ccode>X-WP-Total\u003C\u002Fcode>, \u003Ccode>X-WP-TotalPages\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Get Single Form\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Method\u003C\u002Fstrong>: GET\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Path\u003C\u002Fstrong>: \u003Ccode>\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms\u002F{slug}\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Response\u003C\u002Fstrong>: Includes \u003Ccode>id\u003C\u002Fcode>, \u003Ccode>slug\u003C\u002Fcode>, \u003Ccode>title\u003C\u002Fcode>, \u003Ccode>submit_url\u003C\u002Fcode>, \u003Ccode>fields\u003C\u002Fcode> (sanitized config)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Submit Form\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Method\u003C\u002Fstrong>: POST\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Path\u003C\u002Fstrong>: \u003Ccode>\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms\u002F{slug}\u002Fsubmit\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content Types\u003C\u002Fstrong>: JSON or multipart\u002Fform-data\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Body (JSON)\u003C\u002Fstrong>: Key\u002Fvalue pairs according to field configuration. The \u003Ccode>mksddn_fh_hp\u003C\u002Fcode> honeypot field may be present and must be empty (spam protection).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Body (Multipart)\u003C\u002Fstrong>: Fields and file uploads supported. For multiple files, use \u003Ccode>name[]\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Validation & Limits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Only configured fields accepted; unauthorized fields return \u003Ccode>unauthorized_fields\u003C\u002Fcode> error\u003C\u002Fli>\n\u003Cli>Required fields, email, URL, number (min\u002Fmax\u002Fstep), tel (pattern), date, time, datetime-local are validated\u003C\u002Fli>\n\u003Cli>Maximum 50 fields; total payload size ≤ 100 KB\u003C\u002Fli>\n\u003Cli>Rate limiting: 1 request per 10 seconds per IP per form\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>List forms:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -s 'https:\u002F\u002Fexample.com\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Get single form:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -s 'https:\u002F\u002Fexample.com\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms\u002Fcontact'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Submit form (JSON):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -s -X POST \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\"name\":\"John\",\"email\":\"john@example.com\",\"message\":\"Hi\",\"mksddn_fh_hp\":\"\"}' \\\n  'https:\u002F\u002Fexample.com\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms\u002Fcontact\u002Fsubmit'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Submit form with files (multipart):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -s -X POST \\\n  -F 'name=John' \\\n  -F 'email=john@example.com' \\\n  -F 'attachments[]=@\u002Fpath\u002Fto\u002Ffile1.pdf' \\\n  -F 'attachments[]=@\u002Fpath\u002Fto\u002Ffile2.png' \\\n  'https:\u002F\u002Fexample.com\u002Fwp-json\u002Fmksddn-forms-handler\u002Fv1\u002Fforms\u002Fcontact\u002Fsubmit'\u003Ch3>Supported Field Types\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Fields are configured as JSON in the form settings. Supported types:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Basic\u003C\u002Fstrong>: text, email, password\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Input\u003C\u002Fstrong>: tel, url, number, date, time, datetime-local\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Text\u003C\u002Fstrong>: textarea\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Choice\u003C\u002Fstrong>: checkbox, select (supports multiple), radio\u003C\u002Fli>\n\u003Cli>\u003Cstrong>File\u003C\u002Fstrong>: file uploads (form and REST multipart)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Array\u003C\u002Fstrong>: array_of_objects – array of objects with nested field validation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Field Configuration Notes\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>name\u003C\u002Fcode> – field name (required, used as form input name)\u003C\u002Fli>\n\u003Cli>\u003Ccode>label\u003C\u002Fcode> – field label displayed in forms and admin (optional, falls back to \u003Ccode>name\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>notification_label\u003C\u002Fcode> – custom label for Telegram\u002Femail notifications (optional, priority: notification_label \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> label \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> name)\u003C\u002Fli>\n\u003Cli>\u003Ccode>type\u003C\u002Fcode> – field type (required)\u003C\u002Fli>\n\u003Cli>\u003Ccode>required\u003C\u002Fcode> – whether field is required (boolean, default: false)\u003C\u002Fli>\n\u003Cli>\u003Ccode>options\u003C\u002Fcode> can be an array of strings or objects \u003Ccode>{ \"value\": \"...\", \"label\": \"...\" }\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>For \u003Ccode>select\u003C\u002Fcode> with multiple choice, set \u003Ccode>multiple: true\u003C\u002Fcode> (shortcode renders \u003Ccode>name[]\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>For \u003Ccode>number\u003C\u002Fcode>, optional attributes: \u003Ccode>min\u003C\u002Fcode>, \u003Ccode>max\u003C\u002Fcode>, \u003Ccode>step\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>For \u003Ccode>tel\u003C\u002Fcode>, optional \u003Ccode>pattern\u003C\u002Fcode> (default server validation uses \u003Ccode>^\\+?\\d{7,15}$\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>For \u003Ccode>date\u002Ftime\u002Fdatetime-local\u003C\u002Fcode>, server validates formats: \u003Ccode>YYYY-MM-DD\u003C\u002Fcode>, \u003Ccode>HH:MM\u003C\u002Fcode>, \u003Ccode>YYYY-MM-DDTHH:MM\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>For REST submissions, send arrays for multiple selects\u003C\u002Fli>\n\u003Cli>Pattern validation: use standard regex syntax (backslashes are preserved, invalid patterns are rejected)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>File Field Options\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>allowed_extensions\u003C\u002Fcode>: Array of extensions, e.g. \u003Ccode>[\"pdf\",\"png\",\"jpg\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>max_size_mb\u003C\u002Fcode>: Maximum size per file (default: 10)\u003C\u002Fli>\n\u003Cli>\u003Ccode>max_files\u003C\u002Fcode>: Maximum files per field (default: 5)\u003C\u002Fli>\n\u003Cli>\u003Ccode>multiple\u003C\u002Fcode>: Allow multiple files\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Example JSON Configuration\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[\n  {\"name\":\"name\",\"label\":\"Name\",\"type\":\"text\",\"required\":true,\"placeholder\":\"Your name\"},\n  {\"name\":\"email\",\"label\":\"Email\",\"notification_label\":\"Email Address\",\"type\":\"email\",\"required\":true},\n  {\"name\":\"phone\",\"label\":\"Phone\",\"type\":\"tel\",\"pattern\":\"^\\\\\\\\+?\\\\\\\\d{7,15}$\"},\n  {\"name\":\"website\",\"label\":\"Website\",\"type\":\"url\"},\n  {\"name\":\"age\",\"label\":\"Age\",\"type\":\"number\",\"min\":1,\"max\":120,\"step\":1},\n  {\"name\":\"birth\",\"label\":\"Birth date\",\"type\":\"date\"},\n  {\"name\":\"message\",\"label\":\"Message\",\"type\":\"textarea\",\"required\":true},\n  {\"name\":\"agree\",\"label\":\"I agree to Terms\",\"type\":\"checkbox\",\"required\":true},\n  {\n    \"name\":\"services\",\n    \"label\":\"Choose services\",\n    \"type\":\"select\",\n    \"multiple\":true,\n    \"options\":[\"seo\",\"smm\",\"ads\"]\n  },\n  {\n    \"name\":\"attachments\",\n    \"label\":\"Attach files\",\n    \"type\":\"file\",\n    \"multiple\":true,\n    \"allowed_extensions\":[\"pdf\",\"png\",\"jpg\"],\n    \"max_size_mb\":10,\n    \"max_files\":3\n  },\n  {\n    \"name\":\"products\",\n    \"label\":\"Products\",\n    \"type\":\"array_of_objects\",\n    \"required\":true,\n    \"fields\":[\n      {\"name\":\"name\",\"label\":\"Product Name\",\"type\":\"text\",\"required\":true},\n      {\"name\":\"size\",\"label\":\"Size\",\"type\":\"text\",\"required\":true},\n      {\"name\":\"color\",\"label\":\"Color\",\"type\":\"text\",\"required\":true},\n      {\"name\":\"quantity\",\"label\":\"Quantity\",\"type\":\"number\",\"required\":true,\"min\":1},\n      {\"name\":\"price\",\"label\":\"Price\",\"type\":\"number\",\"required\":true,\"min\":0}\n    ]\n  }\n]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Pattern Validation Examples\u003C\u002Fh4>\n\u003Cp>Common regex patterns for validation (use in JSON with double backslashes):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Phone (international): \u003Ccode>\"pattern\": \"^\\\\+?\\\\d{7,15}$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Phone (US): \u003Ccode>\"pattern\": \"^\\\\(\\\\d{3}\\\\)\\\\s?\\\\d{3}-\\\\d{4}$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Postal code (US): \u003Ccode>\"pattern\": \"^\\\\d{5}(-\\\\d{4})?$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Postal code (RU): \u003Ccode>\"pattern\": \"^\\\\d{6}$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Only letters: \u003Ccode>\"pattern\": \"^[a-zA-Z]+$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Alphanumeric: \u003Ccode>\"pattern\": \"^[a-zA-Z0-9]+$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>URL slug: \u003Ccode>\"pattern\": \"^[a-z0-9-]+$\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Important notes:\u003C\u002Fstrong>\u003Cbr \u002F>\n* In JSON, backslashes must be doubled (e.g., \u003Ccode>\\\\d\u003C\u002Fcode> instead of \u003Ccode>\\d\u003C\u002Fcode>, \u003Ccode>\\\\+\u003C\u002Fcode> instead of \u003Ccode>\\+\u003C\u002Fcode>)\u003Cbr \u002F>\n* HTML tags in patterns will be automatically removed for security\u003Cbr \u002F>\n* Invalid regex patterns will be rejected silently (check debug.log if WP_DEBUG is enabled)\u003C\u002Fp>\n\u003Ch4>Array of Objects Field Type\u003C\u002Fh4>\n\u003Cp>The \u003Ccode>array_of_objects\u003C\u002Fcode> type allows you to define arrays with nested field validation. Each item in the array is validated according to the nested \u003Ccode>fields\u003C\u002Fcode> configuration.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Configuration:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>name\u003C\u002Fcode>: Field name (required)\u003Cbr \u002F>\n* \u003Ccode>label\u003C\u002Fcode>: Field label (required)\u003Cbr \u002F>\n* \u003Ccode>notification_label\u003C\u002Fcode>: Custom label for notifications (optional, priority: notification_label \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> label \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> name)\u003Cbr \u002F>\n* \u003Ccode>type\u003C\u002Fcode>: Must be \u003Ccode>\"array_of_objects\"\u003C\u002Fcode> (required)\u003Cbr \u002F>\n* \u003Ccode>required\u003C\u002Fcode>: Whether the array is required (default: false)\u003Cbr \u002F>\n* \u003Ccode>fields\u003C\u002Fcode>: Array of field configurations for each object in the array (required)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Nested fields support all standard field types\u003C\u002Fstrong> (text, email, tel, url, number, textarea, etc.) with full validation. Nested fields also support \u003Ccode>notification_label\u003C\u002Fcode> for custom labels in Telegram\u002Femail notifications.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Example REST API submission:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n  \"email\": \"user@example.com\",\n  \"phone\": \"+1234567890\",\n  \"products\": [\n    {\n      \"name\": \"T-Shirt\",\n      \"size\": \"M\",\n      \"color\": \"Red\",\n      \"quantity\": 2,\n      \"price\": 1500\n    },\n    {\n      \"name\": \"Jeans\",\n      \"size\": \"L\",\n      \"color\": \"Blue\",\n      \"quantity\": 1,\n      \"price\": 3000\n    }\n  ]\n}\u003Ch3>External Services\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This plugin can connect to external services when explicitly enabled in a form’s settings:\u003C\u002Fp>\n\u003Ch4>Google OAuth2 and Google Sheets API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Authenticate and append rows to a spreadsheet\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: Only if “Send to Google Sheets” is enabled for a form and valid credentials are provided\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Form fields configured for the form, form title, timestamp\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Endpoints used\u003C\u002Fstrong>: \u003Ccode>https:\u002F\u002Foauth2.googleapis.com\u002Ftoken\u003C\u002Fcode>, \u003Ccode>https:\u002F\u002Fsheets.googleapis.com\u002Fv4\u002Fspreadsheets\u002F...\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms\u003C\u002Fstrong>: https:\u002F\u002Fpolicies.google.com\u002Fterms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy\u003C\u002Fstrong>: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Telegram Bot API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose\u003C\u002Fstrong>: Send a message with submission content to specified chat(s)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When\u003C\u002Fstrong>: Only if “Send to Telegram” is enabled for a form and bot token + chat IDs are configured\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent\u003C\u002Fstrong>: Form fields configured for the form, form title\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Endpoint used\u003C\u002Fstrong>: \u003Ccode>https:\u002F\u002Fapi.telegram.org\u002Fbot\u003Ctoken>\u002FsendMessage\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms\u002FPrivacy\u003C\u002Fstrong>: https:\u002F\u002Ftelegram.org\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy Notes\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>No IP address or user agent is transmitted to external services; only form field values are sent\u003C\u002Fli>\n\u003Cli>External delivery is opt-in per form and disabled by default\u003C\u002Fli>\n\u003C\u002Ful>\n","Advanced form processing system with REST API support, Telegram notifications, and Google Sheets integration.",0,653,"2026-02-20T12:32:00.000Z","6.9.4","5.0","8.0",[18,19,20,21,22],"form-handler","forms","google-sheets","rest-api","telegram","https:\u002F\u002Fgithub.com\u002Fmksddn\u002FWP-MksDdn-Forms-Handler","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmksddn-forms-handler.2.4.0.zip",100,null,"2026-03-15T14:54:45.397Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"mksddn",3,30,94,"2026-04-04T19:00:54.086Z",[36,63,85,104,125],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":14,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":57,"download_link":58,"security_score":59,"vuln_count":60,"unpatched_count":11,"last_vuln_date":61,"fetched_at":62},"cf7-google-sheets-connector","GSheetConnector for CF7 – Connect Contact Form 7 to Google Sheets and Send Form Submissions in Real Time","5.1.6","WesternDeal","https:\u002F\u002Fprofiles.wordpress.org\u002Fwesterndeal\u002F","\u003Ch3>GSheetConnector for CF7\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>🚀 A Most Popular WordPress Plugin.\u003C\u002Fstrong>\u003Cbr \u002F>\n★★★★★\u003C\u002Fp>\n\u003Cp>Google Sheets Connector for CF7 is an addon plugin, A bridge between your \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002F\" rel=\"ugc\">WordPress\u003C\u002Fa> based \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcontact-form-7\u002F\" rel=\"ugc\">Contact Form 7\u003C\u002Fa> forms and \u003Ca href=\"https:\u002F\u002Fwww.google.com\u002Fsheets\u002Fabout\u002F\" rel=\"nofollow ugc\">Google Sheets\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>When a visitor submits his\u002Fher data on your website via a Contact Form 7 form, upon form submission, such data are also sent to Google Sheets.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002F\" rel=\"nofollow ugc\">Homepage\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fdocs\u002Fcf7-gsheetconnector\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fsupport\u002F\" rel=\"nofollow ugc\">Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdemo.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro\u002F\" rel=\"nofollow ugc\">Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">Premium Version\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>= 📝 CF7 ➜ ✍️Google Sheet=\u003Cbr \u002F>\nGet rid of making mistakes while adding the sheet settings or adding the headers ( Mail Tags ) to the sheet column. We have Launched the \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">Googlesheet Connector PRO version\u003C\u002Fa> with more automated features.\u003C\u002Fp>\n\u003Ch3>\u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">✔ PRO Features\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>➜ Custom Google API Integration Settings\u003Cbr \u002F>\n➜ Allowing to Create a New Sheet from Plugin Settings\u003Cbr \u002F>\n➜ Custom Ordering Feature \u002F Manage Fields to Display in Sheet using Enable-Disable \u002F Edit the Fields\u002F Headers Name to display in Google Sheet.\u003Cbr \u002F>\n➜ Using all the \u003Ca href=\"https:\u002F\u002Fcontactform7.com\u002Fspecial-mail-tags\u002F\" rel=\"nofollow ugc\">Special Mail Tags\u003C\u002Fa> Fields in Headers\u003Cbr \u002F>\n➜ Syncronize Existing Entries for WPForms PRO users\u003Cbr \u002F>\n➜ Freeze Header Settings\u003Cbr \u002F>\n➜ Header Color and Row Odd\u002FEven Colors.\u003Cbr \u002F>\nRefer to the features and benefits page for more detailed information on the features and free vs pro of the \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro#compare\" rel=\"nofollow ugc\">CF7 Google Sheet Connector PRO Addon Plugin\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>⚡️ Check Live Demo\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdemo.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro\u002F\" rel=\"nofollow ugc\">Demo URL: Google Sheets Connector for CF7\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1Ftht9knBeuzcvZlzM4Wz6L8qsV4PiDU5ukFlFq9M6PU\u002Fedit#gid=0\" rel=\"nofollow ugc\">Google Sheet URL to Check submitted Data\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>⚡️ How to Use this Plugin\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Step: 1 – \u003Ca href=\"https:\u002F\u002Fsheets.google.com\u002F\" rel=\"nofollow ugc\">In Google Sheets\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ Log into your Google Account and visit Google Sheets.\u003Cbr \u002F>\n➜ Create a new Sheet and name it.\u003Cbr \u002F>\n➜ Rename or keep default name of the tab on which you want to capture the data.\u003Cbr \u002F>\n➜ Copy Sheet Name, Sheet ID, Tab Name and Tab ID (Refer Screenshots)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Step: 2 – In WordPress Admin\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ Create or Edit the Contact Form 7 form from which you want to capture the data. Set up the form as usual in the Form and Mail etc tabs. Thereafter, go to the new “Google Sheets” tab.\u003Cbr \u002F>\n➜ On the “Google Sheets” tab, copy-paste the Google Sheets sheet name and tab name into respective positions, and hit “Save”.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Step: 3 – Arranging Columns in Sheet\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ In the Google sheets tab, provide column names in row 1. The first column should be “date”. For each further column, copy paste mail tags from the Contact Form 7 form (e.g. “your-name”, “your-email”, “your-subject”, “your-message”, etc).\u003Cbr \u002F>\n➜ Test your form submit and verify that the data shows up in your Google Sheet.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔥 Videos to help you get started with Google Sheets Connector for CF7\u003C\u002Fh4>\n\u003Cp>🚀How to Install, Authenticate and Integrate Contact Form with your Google Sheet.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FvF3qHmNrT5o?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>Important Notes\u003C\u002Fh4>\n\u003Cp>➜ You must pay very careful attention to your naming. This plugin will have unpredictable results if names and spellings do not match between your Google Sheets and form settings.\u003C\u002Fp>\n\u003Cp>👉 \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fcf7-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">Get CF7 GoogleSheetConnector PRO today\u003C\u002Fa>\u003C\u002Fp>\n","Send your Contact Form 7 data directly to your Google Sheets spreadsheet.",40000,944229,88,126,"2026-02-10T13:48:00.000Z","3.6","7.4",[52,53,54,55,56],"cf7","contact-form-7","contact-form-7-integrations","contact-forms","google-sheets-integrations","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcf7-google-sheets-connector\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcf7-google-sheets-connector.5.1.6.zip",96,4,"2025-01-31 00:00:00","2026-03-15T15:16:48.613Z",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":14,"requires_at_least":15,"requires_php":50,"tags":76,"homepage":81,"download_link":82,"security_score":83,"vuln_count":31,"unpatched_count":11,"last_vuln_date":84,"fetched_at":62},"sb-elementor-contact-form-db","FormsDB – Save Elementor Forms to Google Sheets & Post Type","2.1.7","Cool Plugins","https:\u002F\u002Fprofiles.wordpress.org\u002Fcoolplugins\u002F","\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Fformsdb-elementor-forms-submissions-google-sheets\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=plugin_page&utm_content=top_name\" rel=\"nofollow ugc\">FormsDB\u003C\u002Fa>\u003C\u002Fstrong> is a useful addon for \u003Cstrong>Elementor Forms\u003C\u002Fstrong> that lets you connect Elementor forms with Google Sheets to sync form entries or save form submissions into any WordPress post type.\u003C\u002Fp>\n\u003Cp>FormsDB works with both \u003Cstrong>Elementor Pro\u003C\u002Fstrong> and \u003Cstrong>Hello Plus\u003C\u002Fstrong> forms. It helps you store Hello Plus form submissions in WordPress and also send form data to Google Sheets or use Elementor forms as frontend post submission forms for creating posts, pages, or custom post types.\u003C\u002Fp>\n\u003Cp>👉 \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdocs.coolplugins.net\u002Fdoc\u002Fformsdb-video-tutorials\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=docs&utm_content=video_tutorials\" rel=\"nofollow ugc\">Elementor Forms to GSheets – Video Tutorials\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FHTa7bf1ZuqM?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>To extend Elementor form features further, you can use \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=below_video\" rel=\"nofollow ugc\">Cool FormKit\u003C\u002Fa>\u003C\u002Fstrong> along with FormsDB to unlock advanced features such as \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Frange-slider-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=below_video\" rel=\"nofollow ugc\">Range Slider\u003C\u002Fa>\u003C\u002Fstrong>, \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fsignature-field-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=below_video\" rel=\"nofollow ugc\">Signature Field\u003C\u002Fa>\u003C\u002Fstrong>, \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fconditional-logic-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=below_video\" rel=\"nofollow ugc\">Conditional Logic\u003C\u002Fa>\u003C\u002Fstrong>, \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fcalculator-for-elementor\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=below_video\" rel=\"nofollow ugc\">Calculator\u003C\u002Fa>\u003C\u002Fstrong>, and many more advanced fields to build smarter and more dynamic forms with Elementor.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Important Notice\u003C\u002Fstrong>: From version \u003Cstrong>2.0.0\u003C\u002Fstrong>, this plugin has been acquired, fully rebuilt, and rebranded as \u003Cstrong>FormsDB\u003C\u002Fstrong> by \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolplugins.net\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=home&utm_content=notice\" rel=\"nofollow ugc\">Cool Plugins\u003C\u002Fa>\u003C\u002Fstrong>. It has been redesigned with new features like Google Sheets sync and frontend post submission, as its earlier functionality is now available within Elementor Pro. If you were using older versions, you can export previous entries from the \u003Cstrong>FormsDB \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Old Submissions\u003C\u002Fstrong> tab.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>FormsDB Plugin Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fdocs.coolplugins.net\u002Fdoc\u002Fsync-form-submissions-google-sheets\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=docs&utm_content=features\" rel=\"nofollow ugc\">Sync Elementor Forms with Google Sheets\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nConnect Elementor forms with \u003Cstrong>Google Sheets\u003C\u002Fstrong> and sync form entries in real time. Create a new sheet or select an existing one, add new tabs automatically, and choose which form fields to save. FormsDB acts as a secure connector and can store data like name, email, IP address, page URL, and submission date. Data is synced instantly using secure Google authentication, and no Google account or Drive data is stored by the plugin author.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fdocs.coolplugins.net\u002Fdoc\u002Fsave-form-submissions-post-type\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=docs&utm_content=features\" rel=\"nofollow ugc\">Send Form Submissions to Post Type\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nUse Elementor forms as frontend post submission forms and create WordPress posts automatically from form entries. Send submitted data to any post type, including posts, pages, or custom post types. This is useful for testimonials, reviews, listings, events, job posts, or other user-generated content without giving admin access.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Save Hello Plus Form Entries\u003C\u002Fstrong>\u003Cbr \u002F>\nFormsDB saves Hello Plus form submissions in the WordPress admin, allowing you to view, manage, and export entries from a single dashboard.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Modern Dashboard for Easy Management\u003C\u002Fstrong>\u003Cbr \u002F>\nFormsDB includes a clean dashboard inside WordPress admin that shows all Elementor forms and their connection status with \u003Cstrong>Google Sheets\u003C\u002Fstrong> or \u003Cstrong>post types\u003C\u002Fstrong>. You can manage all integrations from \u003Cstrong>Elementor \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> FormsDB\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Who Should Use FormsDB\u003C\u002Fh3>\n\u003Cp>FormsDB is ideal for website owners and teams who use Elementor forms and want better control over form submissions.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Website owners\u003C\u002Fstrong> who want to save Elementor form submissions to Google Sheets for easy tracking and reporting.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Marketing teams\u003C\u002Fstrong> managing leads collected from Elementor or Hello Plus forms.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Business owners\u003C\u002Fstrong> who want frontend content submission without giving users admin access.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Agencies and freelancers\u003C\u002Fstrong> building lead forms, testimonial forms, or custom submission forms for clients.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hello Plus users\u003C\u002Fstrong> who want to store form submissions inside WordPress.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developers\u003C\u002Fstrong> who need a simple connector between Elementor Forms, Google Sheets, and WordPress post types.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>More Essential Addons for Elementor Forms\u003C\u002Fh3>\n\u003Cp>Along with FormsDB, you can use these additional Elementor form addons to build more flexible and feature-rich forms.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolplugins.net\u002Fproduct\u002Fconditional-fields-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=form_addons\" rel=\"nofollow ugc\">Conditional Fields for Elementor Form\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nAdd conditional logic to Elementor form fields and dynamically show or hide inputs based on user choices. This helps create cleaner forms and improves the overall user experience.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcountry-code-field-for-elementor-form\u002F\" rel=\"ugc\">Country Code for Elementor Form Telephone Field\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nAdd a country code dropdown to phone fields so users can easily select their country while entering mobile numbers, ensuring accurate and properly formatted submissions.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=form_addons\" rel=\"nofollow ugc\">Cool FormKit\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nCool FormKit is a complete form builder for Elementor Free and Pro. It extends Elementor Pro forms with advanced fields and also provides a dedicated form builder for Elementor Free users. Popular features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fconditional-logic-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Conditional Logic\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Frange-slider-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Range Slider Field\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fsignature-field-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Signature Field\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fselect2-field-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Select2 Field\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fimage-radio-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Image Radio & Checkbox Fields\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Frating-field-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Rating Field\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fcalculator-for-elementor\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Calculator Field\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fcloudflare-turnstile-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">Cloudflare Turnstile\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002Fhcaptcha-for-elementor-form\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">hCAPTCHA Support\u003C\u002Fa>\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>👉 \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolformkit.com\u002Ffeatures\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=features&utm_content=form_addons\" rel=\"nofollow ugc\">View all Cool FormKit features\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>Other Popular Elementor Addons by Cool Plugins\u003C\u002Fh3>\n\u003Cp>Cool Plugins also provides these powerful Elementor addons that help you extend design, content, and workflow capabilities across WordPress websites.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Floop-grid-extender-for-elementor-pro\u002F\" rel=\"ugc\">Loop Grid Extender for Elementor Pro\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nEnhance Elementor Pro Loop Grids by adding support for ACF Repeater fields and advanced taxonomy-based filtering options.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcoolplugins.net\u002Fproduct\u002Fautopoly-ai-translation-for-polylang\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=other_addons\" rel=\"nofollow ugc\">AutoPoly – AI Translation for Polylang\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nAutomatically translate Elementor pages using AI and build multilingual websites faster with Polylang integration.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcooltimeline.com\u002Fplugin\u002Ftimeline-widget-pro\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=other_addons\" rel=\"nofollow ugc\">Timeline Widget for Elementor\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nCreate visually engaging vertical or horizontal timelines to display company history, milestones, roadmaps, or events inside Elementor pages.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Feventscalendaraddons.com\u002Fplugin\u002Fevents-widgets-pro\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=other_addons\" rel=\"nofollow ugc\">Events Widgets for Elementor\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nEasily add The Events Calendar widgets to Elementor and display events in grid, list, or carousel layouts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Flocoaddon.com\u002F?utm_source=formsdb&utm_medium=readme&utm_campaign=get_pro&utm_content=other_addons\" rel=\"nofollow ugc\">LocoAI – AI Translation for Loco Translate\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nTranslate WordPress plugins and themes automatically using AI with one-click string translation inside Loco Translate.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>FormsDB is a fully open-source plugin. You can view the complete source code on GitHub – https:\u002F\u002Fgithub.com\u002FCoolPluginsTeam\u002Fsb-elementor-contact-form-db\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Use of 3rd Party Services:\u003C\u002Fstrong> This plugin connects to the Cool Plugins feedback server only for optional usage data sharing and voluntary feedback submission (for example, during plugin deactivation). Data is transmitted solely after explicit user consent. No hidden tracking is performed, and no frontend visitor or site user data is collected.  For more details, please review our \u003Ca href=\"https:\u002F\u002Fmy.coolplugins.net\u002Fterms\u002Fusage-tracking\u002F\" rel=\"nofollow ugc\">Data Usage Policy\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fmy.coolplugins.net\u002Fterms\u002F\" rel=\"nofollow ugc\">TOS\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fmy.coolplugins.net\u002Fterms\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa> and this plugin also uses\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fgoogle-api-php-client\" rel=\"nofollow ugc\">\u003Cstrong>Google APIs Client Library for PHP\u003C\u002Fstrong>\u003C\u002Fa> for Google Sheets integration, which is licensed under \u003Ca href=\"https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\" rel=\"nofollow ugc\">Apache License 2.0\u003C\u002Fa>.\u003C\u002Fp>\n","Connect Elementor forms with Google Sheets to sync form entries, or save form submissions in any post type using Elementor Pro or Hello Plus forms.",20000,427495,92,19,"2026-02-17T07:22:00.000Z",[77,78,79,80,20],"contact-form-db","elementor-forms","form-entries","form-submissions","https:\u002F\u002Fcoolplugins.net\u002Fproduct\u002Fformsdb-connect-elementor-forms-google-sheets\u002F?utm_source=formsdb&utm_medium=inside&utm_campaign=plugin_page&utm_content=plugins_list","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsb-elementor-contact-form-db.2.1.7.zip",98,"2022-07-19 00:00:00",{"slug":86,"name":87,"version":88,"author":40,"author_profile":41,"description":89,"short_description":90,"active_installs":91,"downloaded":92,"rating":25,"num_ratings":93,"last_updated":94,"tested_up_to":14,"requires_at_least":95,"requires_php":50,"tags":96,"homepage":100,"download_link":101,"security_score":25,"vuln_count":102,"unpatched_count":11,"last_vuln_date":103,"fetched_at":62},"gsheetconnector-for-elementor-forms","GSheetConnector for Elementor Forms – Sync Elementor Forms to Google Sheets","1.2.9","\u003Cp>\u003Cstrong>GSheetConnector for Elementor Forms\u003C\u002Fstrong> is a powerful \u003Cstrong>Elementor Google Sheets integration plugin\u003C\u002Fstrong> that connects Elementor Forms and MetForm directly to Google Sheets.\u003C\u002Fp>\n\u003Cp>GSheetConnector acts as a secure bridge between your WordPress site, Elementor Pro Forms or MetForm, and Google Sheets — enabling real-time form submission sync and automated spreadsheet management without manual exports.\u003C\u002Fp>\n\u003Cp>Automatically sync Elementor form submissions to Google Sheets in real-time and eliminate manual exports, CSV downloads, or copy-paste workflows. Every submission is securely transferred to your selected Google Spreadsheet instantly after form submission.\u003C\u002Fp>\n\u003Cp>Whether you collect leads, contact inquiries, bookings, registrations, or customer data, GSheetConnector ensures reliable Google Sheets sync and structured spreadsheet management directly from your WordPress site.\u003C\u002Fp>\n\u003Cp>Built specifically for Elementor Pro Forms and MetForm, this plugin delivers seamless Google Sheets integration with secure authentication and automatic data synchronization.\u003C\u002Fp>\n\u003Ch3>Why Choose GSheetConnector?\u003C\u002Fh3>\n\u003Cp>✔ Sync Elementor Forms to Google Sheets instantly\u003Cbr \u002F>\n✔ Direct Google Sheets integration without third-party automation tools like Zapier\u003Cbr \u002F>\n✔ Support for Elementor Pro and MetForm\u003Cbr \u002F>\n✔ Secure Google OAuth 2.0 authentication\u003Cbr \u002F>\n✔ Lightweight, fast, and performance optimized\u003C\u002Fp>\n\u003Cp>Built specifically for Elementor Pro Forms and MetForm users who need secure, real-time Google Sheets integration and reliable form submission sync.\u003C\u002Fp>\n\u003Ch3>How Elementor to Google Sheets Sync Works\u003C\u002Fh3>\n\u003Cp>When a visitor submits an Elementor Form (Elementor Pro) or MetForm (Free or Pro), GSheetConnector automatically syncs the form submission to Google Sheets in real-time by creating a new row in your connected Google Spreadsheet.\u003C\u002Fp>\n\u003Cp>All standard and advanced form field types are supported. Submission date is recorded automatically, with extended metadata available in the Pro version.\u003C\u002Fp>\n\u003Cp>Secure Google OAuth authentication ensures safe data transfer without complex API configuration.\u003C\u002Fp>\n\u003Ch3>Core Features (Free Version)\u003C\u002Fh3>\n\u003Ch4>Real-Time Elementor Forms to Google Sheets Sync\u003C\u002Fh4>\n\u003Cp>Automatically sync Elementor Forms and MetForm submissions to Google Sheets in real-time.\u003C\u002Fp>\n\u003Ch4>One-Time Google Authentication\u003C\u002Fh4>\n\u003Cp>Authenticate once and enable continuous automatic form submission sync.\u003C\u002Fp>\n\u003Ch4>Field & Column Mapping\u003C\u002Fh4>\n\u003Cp>Map Elementor form fields directly to Google Sheet columns.\u003C\u002Fp>\n\u003Ch4>Submission Date Capture\u003C\u002Fh4>\n\u003Cp>Automatically record submission date with every form entry.\u003C\u002Fp>\n\u003Ch4>View Connected Google Spreadsheet\u003C\u002Fh4>\n\u003Cp>Access your linked Google Sheet directly from plugin settings.\u003C\u002Fp>\n\u003Ch4>Secure Google OAuth Authentication\u003C\u002Fh4>\n\u003Cp>Includes one-click Google authentication using official Google APIs.\u003C\u002Fp>\n\u003Ch4>Full Compatibility\u003C\u002Fh4>\n\u003Cp>Works with Elementor Pro Forms, MetForm (Free & Pro), latest WordPress versions, and modern PHP environments.\u003C\u002Fp>\n\u003Ch3>🛠️ How to Send Elementor Forms Entries to Google Sheets\u003C\u002Fh3>\n\u003Cp>After installing and activating GSheetConnector:\u003C\u002Fp>\n\u003Ch4>Step 1: Authenticate with Google\u003C\u002Fh4>\n\u003Cp>Use the one-click Google authentication button to securely connect your WordPress site to your Google Sheets account.\u003C\u002Fp>\n\u003Ch4>Step 2: Configure Sheet Details\u003C\u002Fh4>\n\u003Cp>Enter your Google Sheet Name, Sheet ID, Tab Name, and Tab ID inside plugin settings or within the Elementor Form editor under “Actions After Submit” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> select “GSheetConnector”.\u003C\u002Fp>\n\u003Ch4>Step 3: Match Form Fields with Sheet Columns\u003C\u002Fh4>\n\u003Cp>Ensure your Google Spreadsheet has column headers in the first row that match your Elementor form field labels.\u003C\u002Fp>\n\u003Cp>Save and submit a test form — your data will sync to Google Sheets in real-time.\u003C\u002Fp>\n\u003Ch3>🚀 Pro Features\u003C\u002Fh3>\n\u003Cp>Upgrade to Elementor Forms Google Sheets Connector PRO for advanced automation and enhanced control.\u003C\u002Fp>\n\u003Ch4>Automatic Header Creation\u003C\u002Fh4>\n\u003Cp>Generate Google Sheet column headers automatically from form fields.\u003C\u002Fp>\n\u003Ch4>Synchronize Existing Entries\u003C\u002Fh4>\n\u003Cp>Sync previously submitted Elementor or MetForm entries.\u003C\u002Fp>\n\u003Ch4>Advanced Field & Column Management\u003C\u002Fh4>\n\u003Cp>Edit, reorder, enable, or disable specific form fields before syncing.\u003C\u002Fp>\n\u003Ch4>Extended Submission Metadata\u003C\u002Fh4>\n\u003Cp>Capture submission time, IP address, browser info, and additional metadata.\u003C\u002Fp>\n\u003Ch4>Freeze Header Rows\u003C\u002Fh4>\n\u003Cp>Freeze header rows in Google Sheets for better readability.\u003C\u002Fp>\n\u003Ch4>Header & Row Styling\u003C\u002Fh4>\n\u003Cp>Customize header colors and alternate row styling.\u003C\u002Fp>\n\u003Ch4>Manual API & Service Account Authentication\u003C\u002Fh4>\n\u003Cp>Supports manual Google API configuration and Service Account authentication.\u003C\u002Fp>\n\u003Ch3>Live Demo & Resources\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002F\" rel=\"nofollow ugc\">Homepage\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fdocs\u002Felementor-google-sheet-connector\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fsupport\u002F\" rel=\"nofollow ugc\">Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdemo.gsheetconnector.com\u002Felementor-forms-gsheetconnector-pro\u002F\" rel=\"nofollow ugc\">Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Felementor-forms-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">Premium Version\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>🌟 About GSheetConnector\u003C\u002Fh3>\n\u003Cp>Part of the GSheetConnector suite, supporting over 80,000 WordPress users worldwide across multiple Google Sheets integrations.\u003C\u002Fp>\n\u003Cp>GSheetConnector provides Google Sheets integrations for popular WordPress forms and WooCommerce, helping automate data syncing without writing code.\u003C\u002Fp>\n\u003Ch3>Important Notes\u003C\u002Fh3>\n\u003Cp>Ensure your Google Sheet Name, Sheet ID, Tab Name, Tab ID, and Column Headers match exactly with the values entered in plugin settings.\u003C\u002Fp>\n\u003Cp>• Use exact form field labels as column headers\u003Cbr \u002F>\n• Avoid special characters in column names\u003Cbr \u002F>\n• Keep column headers consistent with form field labels\u003C\u002Fp>\n\u003Cp>Proper formatting ensures accurate real-time Elementor to Google Sheets synchronization.\u003C\u002Fp>\n","Sync Elementor Forms and MetForm to Google Sheets in real-time with secure Google Sheets integration and automatic form submission sync.",9000,107175,10,"2026-03-14T07:36:00.000Z","5.6",[97,98,78,99,20],"elementor","elementor-addons","elementor-google-sheets","https:\u002F\u002Fwww.gsheetconnector.com\u002Felementor-forms-google-sheet-connector-pro","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgsheetconnector-for-elementor-forms.1.2.9.zip",1,"2023-06-12 00:00:00",{"slug":105,"name":106,"version":107,"author":40,"author_profile":41,"description":108,"short_description":109,"active_installs":110,"downloaded":111,"rating":112,"num_ratings":113,"last_updated":114,"tested_up_to":14,"requires_at_least":95,"requires_php":50,"tags":115,"homepage":121,"download_link":122,"security_score":123,"vuln_count":31,"unpatched_count":11,"last_vuln_date":124,"fetched_at":62},"gsheetconnector-wpforms","GSheetConnector For WPForms – WPForms Google Sheets Integration (Real-Time Sync)","4.0.3","\u003Cp>Automatically send WPForms entries to Google Sheets in real-time.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GSheetConnector for WPForms\u003C\u002Fstrong> is a powerful and user-friendly add-on that connects your \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002F\" rel=\"ugc\">WordPress\u003C\u002Fa> website running \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpforms-lite\u002F\" rel=\"ugc\">WPForms\u003C\u002Fa>\u003C\u002Fstrong> with \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.google.com\u002Fsheets\u002Fabout\u002F\" rel=\"nofollow ugc\">Google Sheets\u003C\u002Fa>\u003C\u002Fstrong> and automatically saves every form submission into a connected spreadsheet.\u003C\u002Fp>\n\u003Cp>When a visitor submits a form on your website, the data is instantly synced to Google Sheets — no manual export, no copy-paste, and no coding required. This makes it easy to manage, share, and analyze WPForms entries directly inside Google Sheets.\u003C\u002Fp>\n\u003Cp>This plugin works with both \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpforms-lite\u002F\" rel=\"ugc\">WPForms Lite\u003C\u002Fa>\u003C\u002Fstrong> and \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwpforms.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">WPForms Pro\u003C\u002Fa>\u003C\u002Fstrong> and allows you to build a complete \u003Cstrong>WPForms to Google Sheets automation system\u003C\u002Fstrong> without writing any code.\u003C\u002Fp>\n\u003Ch4>🚀 Key Features\u003C\u002Fh4>\n\u003Cp>🔄 Real-time sync of WPForms entries to Google Sheets\u003Cbr \u002F>\n📄 Works with WPForms Lite and WPForms Pro (tested with the latest versions)\u003Cbr \u002F>\n🧩 Feed-based form-to-sheet connections\u003Cbr \u002F>\n📊 Supports multiple forms and multiple Google Sheets per form\u003Cbr \u002F>\n🔑 Secure Google authentication (one-click OAuth)\u003Cbr \u002F>\n🏷 Supports WPForms Smart Tags\u003Cbr \u002F>\n📅 Sync submission date and time\u003Cbr \u002F>\n🛠 Debug log and system status for troubleshooting\u003C\u002Fp>\n\u003Ch4>💡 Why Use GSheetConnector for WPForms?\u003C\u002Fh4>\n\u003Cp>Most businesses waste time exporting WPForms entries, downloading CSV files, and manually copying data into spreadsheets. GSheetConnector eliminates this by creating a \u003Cstrong>real-time connection between WPForms and Google Sheets\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Every form submission is automatically synced, allowing you to:\u003Cbr \u002F>\n• Follow up on leads instantly\u003Cbr \u002F>\n• Share data with your team\u003Cbr \u002F>\n• Build reports and dashboards\u003Cbr \u002F>\n• Avoid data loss and human errors\u003Cbr \u002F>\n• Manage everything inside Google Sheets\u003Cbr \u002F>\n• Enable real-time collaboration\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fdocs\u002Fgsheetconnnector-for-wpforms\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fsupport\" rel=\"nofollow ugc\">Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdemo.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro\u002F\" rel=\"nofollow ugc\">Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">WPForms Google Sheet Connector Pro\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fplugins\u002F\" rel=\"nofollow ugc\">Our Plugins\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>🤝 Powerful PRO Automation Features\u003C\u002Fh4>\n\u003Cp>Upgrade to \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro?wp-repo\" rel=\"nofollow ugc\">WPForms Google Sheet Connector Pro\u003C\u002Fa>\u003C\u002Fstrong> to unlock full automation and advanced control:\u003C\u002Fp>\n\u003Cp>➜ Custom Google API integration (OAuth & Service Account)\u003Cbr \u002F>\n➜ Create new Google Sheets directly from WordPress\u003Cbr \u002F>\n➜ Field-to-column mapping\u003Cbr \u002F>\n➜ Re-order or rename Google Sheet headers\u003Cbr \u002F>\n➜ Use any \u003Ca href=\"https:\u002F\u002Fwpforms.com\u002Fdocs\u002Fhow-to-use-smart-tags-in-wpforms\u002F\" rel=\"nofollow ugc\">WPForms Smart Tags\u003C\u002Fa> as column headers\u003Cbr \u002F>\n➜ Sync existing WPForms entries to Google Sheets\u003Cbr \u002F>\n➜ Freeze header row\u003Cbr \u002F>\n➜ Row colors (odd\u002Feven + header styling)\u003Cbr \u002F>\n➜ Multiple feeds per form\u003Cbr \u002F>\n➜ Date-based and filtered syncing\u003C\u002Fp>\n\u003Cp>👉 Upgrade to Pro: https:\u002F\u002Fwww.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro\u002F\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Trusted by 20,000+ active installations across FREE and PRO versions. Try WPForms Google Sheet Connector now and simplify your WPForms to Google Sheets workflow.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>⚡️ Check Live Demo\u003C\u002Fh4>\n\u003Cp>🔗 \u003Ca href=\"https:\u002F\u002Fdemo.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro\u002F\" rel=\"nofollow ugc\">WPForms Live Demo – Click Here\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1IzQqqCziV2eOxH2vb1EFmcvkGt4WIIjHfxUIE4MdpZk\u002Fedit?gid=1144149960#gid=1144149960\" rel=\"nofollow ugc\">Google Sheet URL to Check submitted Data\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Related Google Sheets Connector Plugins\u003C\u002Fh4>\n\u003Cp>GSheetConnector also offers Google Sheets integrations for other popular WordPress plugins, helping you automate data syncing across your website without writing code.\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Contact Form 7\u003C\u002Fstrong> – Automatically send Contact Form 7 submissions to Google Sheets for easy lead management. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for WPForms\u003C\u002Fstrong> – Sync WPForms entries to Google Sheets in real-time with flexible feed-based settings. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Gravity Forms\u003C\u002Fstrong> – Connect Gravity Forms submissions to Google Sheets and manage form data efficiently. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Ninja Forms\u003C\u002Fstrong> – Automatically export Ninja Forms entries to Google Sheets with reliable syncing. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Formidable Forms\u003C\u002Fstrong> – Connect Formidable Forms data to Google Sheets for structured data management. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Fluent Forms\u003C\u002Fstrong> – Export Fluent Forms entries to Google Sheets automatically upon form submission. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Elementor Forms\u003C\u002Fstrong> – Send Elementor form submissions directly to Google Sheets for reporting and collaboration. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for WooCommerce\u003C\u002Fstrong> – Sync WooCommerce orders, customers, and products with Google Sheets for real-time tracking. \u003Cem>(Free & Pro available)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Divi Forms\u003C\u002Fstrong> – Integrate Divi form submissions with Google Sheets. \u003Cem>(Pro version only)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for Avada Forms\u003C\u002Fstrong> – Send Avada form entries to Google Sheets for centralized data handling. \u003Cem>(Pro version only)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>• \u003Cstrong>GSheetConnector for WordPress Core\u003C\u002Fstrong> – Import and export WordPress posts and pages using Google Sheets. \u003Cem>(Pro version only)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.gsheetconnector.com\u002Fplugins\u002F\" rel=\"nofollow ugc\">Explore our Google Sheets connector plugins and access free versions where available.\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>✨ How to Use this Plugin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Step: 1 – \u003Ca href=\"https:\u002F\u002Fsheets.google.com\u002F\" rel=\"nofollow ugc\">In Google Sheets\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ Log into your Google Account and visit Google Sheets.\u003Cbr \u002F>\n➜ Create a new Sheet and name it.\u003Cbr \u002F>\n➜ Rename or keep default name of the tab on which you want to capture the data.\u003Cbr \u002F>\n➜ Copy Sheet Name, Sheet ID, Tab Name and Tab ID (Refer Screenshots)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Step: 2 – In WordPress Admin\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ Navigate to WPForms > Google Sheet > Integration Tab.\u003Cbr \u002F>\n➜ Authenticate with Google using new “Google Access Code” while clicking on “Get Code”\u003Cbr \u002F>\n➜ \u003Cstrong>Make Sure to ALLOW Google Permissions for Google Drive and Google Sheets and then copy the code and paste in Google Access Code field, and Hit Save & Authenticate.\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ Then, Navigate to GoogleSheet Form Settings Tab Selected respective WPForm from the dropdown with which you want to connect with Google Sheet.\u003Cbr \u002F>\n➜ Now copy and paste the Google Sheets sheet name and tab name into respective input fields, and submit.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Step: 3 – Arranging Columns in Sheet\u003C\u002Fstrong>\u003Cbr \u002F>\n➜ In the selected Google sheet, enter column names in first row (as a header) as per the Label, Copy and Paste the form field label from the WPForms to Google Sheet (e.g. “Name”, “Email”, “Comment or Message”, “date” etc).\u003Cbr \u002F>\n➜ Lastly Test your WPForms and verify that the data shows up in your Google Sheet.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔥 Videos to help you get started with WPForms Google Sheets Connector\u003C\u002Fh4>\n\u003Cp>🚀WPForms Forms Google Sheet Connector Introduction Video\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FtgF9GfDjQOw?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>🔐 Secure & Compliant\u003C\u002Fh3>\n\u003Cp>GSheetConnector connects directly to \u003Cstrong>your Google account\u003C\u002Fstrong>. Your form data stays inside:\u003Cbr \u002F>\n• Your WordPress site\u003Cbr \u002F>\n• Your Google Drive\u003C\u002Fp>\n\u003Cp>No third-party servers, no external storage.\u003C\u002Fp>\n\u003Cp>If you need advanced automation, bulk sync, or multiple feeds, the Pro version gives you full control over how your WPForms data flows into Google Sheets.\u003C\u002Fp>\n\u003Ch4>Important Notes\u003C\u002Fh4>\n\u003Cp>➜ Make sure the column headers in your Google Sheet match the field labels used in WPForms. Keeping names consistent ensures that form entries are mapped and synced correctly.\u003C\u002Fp>\n\u003Cp>👉 \u003Ca href=\"\u002F\u002Fwww.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro?wp-repo)\" rel=\"nofollow ugc\">Get WPForms PRO today\u003C\u002Fa>\u003C\u002Fp>\n","Connect WPForms to Google Sheets and automatically send form entries to a google sheet in real-time. No manual exports, no coding required.",8000,156106,86,18,"2026-01-17T13:56:00.000Z",[116,117,118,119,120],"contact-form-google-sheets","google-sheets-integration","wpforms","wpforms-google-sheets","wpforms-google-sheets-integration","https:\u002F\u002Fwww.gsheetconnector.com\u002Fwpforms-google-sheet-connector-pro","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgsheetconnector-wpforms.4.0.3.zip",95,"2026-02-04 00:00:00",{"slug":126,"name":127,"version":128,"author":129,"author_profile":130,"description":131,"short_description":132,"active_installs":133,"downloaded":134,"rating":25,"num_ratings":135,"last_updated":136,"tested_up_to":14,"requires_at_least":137,"requires_php":50,"tags":138,"homepage":143,"download_link":144,"security_score":59,"vuln_count":145,"unpatched_count":11,"last_vuln_date":146,"fetched_at":62},"telsender","TelSender – Сontact form 7, Events, Wpforms, ninja forms  and woocommerce to telegram bot","1.14.15","pechenki","https:\u002F\u002Fprofiles.wordpress.org\u002Fpechenki\u002F","\u003Cp>Електронна пошта це добре але не завжди швидко. Тому пропоную надсилати данні з форм на сайті в телеграм. Плагін дозволяє надсилати данні з таких форм які створенні через ContactForm,wpforms, а також перехоплювати будь які  POST запити на сервері.\u003Cbr \u002F>\nТакож є інтеграція з  wooccommerce, тепер всі нові замовленя будуть відправлятись і в телеграм.\u003C\u002Fp>\n\u003Cp>Переваги \u003Ca href=\"https:\u002F\u002Fcoder.org.ua\u002Fdev\u002Fwordpress\u002Ftelsender-pro\" rel=\"nofollow ugc\">TelsenderPro\u003C\u002Fa>\u003Cbr \u002F>\n– Надсилати файли\u003Cbr \u002F>\n– Надсилати декільком користувачам\u003Cbr \u002F>\n– Якщо чат використовує гілки, надсилати у відповідну гулку\u003Cbr \u002F>\n– Вказати для ріних форм різні чати в телегра\u003Cbr \u002F>\n– В подіяї можливість відслідковувати користувачів, що хочуть авторизуватись та заблокувати їх ip\u003C\u002Fp>\n\u003Cp>Email is good, but not always fast. Therefore, I suggest sending data from forms on the site to Telegram. The plugin allows you to send data from such forms created through ContactForm, wpforms, as well as intercept any POST requests on the server.\u003Cbr \u002F>\nThere is also an integration with wooccommerce, now all new orders will be sent to Telegram.\u003C\u002Fp>\n\u003Cp>Advantages of \u003Ca href=\"https:\u002F\u002Fcoder.org.ua\u002Fdev\u002Fwordpress\u002Ftelsender-pro\" rel=\"nofollow ugc\">TelsenderPro\u003C\u002Fa>\u003Cbr \u002F>\n– Send files\u003Cbr \u002F>\n– Send to multiple users\u003Cbr \u002F>\n– If the chat uses branches, send to the appropriate branch\u003Cbr \u002F>\n– Specify different chats in Telegram for different forms\u003Cbr \u002F>\n– In the event, you can track users who want to log in and block their IP\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Надсилає заявки з ContactForm 7 у телеграми;\u003C\u002Fli>\n\u003Cli>Надсилає заявки з wpforms у телеграми;\u003C\u002Fli>\n\u003Cli>Надсилає заявки з Ninja forms у телеграми;\u003C\u002Fli>\n\u003Cli>Надсилає повідомлення про Login Failed (Помилка входу в систему)\u003C\u002Fli>\n\u003Cli>Надсилає повідомлення про Login success ( Успішний вхід в систему)\u003C\u002Fli>\n\u003Cli>Перехоплення  Post запитів\u003C\u002Fli>\n\u003Cli>Надсилає замовлення з wooccommerce в телеграми;\u003C\u002Fli>\n\u003Cli>Повідомлення швидко досягають;\u003C\u002Fli>\n\u003Cli>Зручний у використанні;\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Ефективно;\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Sends requests from ContactForm 7 to telegrams;\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>Sends requests from wpforms to telegrams;\u003C\u002Fli>\n\u003Cli>Sends requests from Ninja forms to telegrams;\u003C\u002Fli>\n\u003Cli>Sends Login Failed notification to emails\u003C\u002Fli>\n\u003Cli>Sends Login success notification (Successful login)\u003C\u002Fli>\n\u003Cli>Intercepts Post requests\u003C\u002Fli>\n\u003Cli>Sends orders from wooccommerce to telegrams;\u003C\u002Fli>\n\u003Cli>Messages reach quickly;\u003C\u002Fli>\n\u003Cli>Easy to use;\u003C\u002Fli>\n\u003Cli>Effective;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Ninja forms\u003C\u002Fp>\n","TelSender - a plugin that works with contact form 7 and the woocommerce store in wordpress. It sends applications from forms to a chat telegram.",5000,36685,13,"2026-01-29T08:52:00.000Z","5.8",[139,140,22,141,142],"%d1%81ontact-form-7-to-telegram","ninja-forms","telegram-ninja-forms","woocommerce-to-telegram","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftelsender.1.14.15.zip",2,"2026-01-27 21:48:26",{"attackSurface":148,"codeSignals":304,"taintFlows":471,"riskAssessment":533,"analyzedAt":543},{"hooks":149,"ajaxHandlers":270,"restRoutes":276,"shortcodes":296,"cronEvents":302,"entryPointCount":303,"unprotectedCount":31},[150,156,161,164,168,172,175,180,184,188,191,194,198,200,205,209,212,215,217,220,223,226,230,234,236,239,243,246,250,253,256,258,262,266],{"type":151,"name":152,"callback":153,"file":154,"line":155},"filter","manage_mksddn_fh_forms_posts_columns","add_forms_admin_columns","includes\\class-admin-columns.php",28,{"type":157,"name":158,"callback":159,"priority":93,"file":154,"line":160},"action","manage_mksddn_fh_forms_posts_custom_column","fill_forms_admin_columns",29,{"type":151,"name":162,"callback":163,"file":154,"line":32},"manage_mksddn_fh_submits_posts_columns","add_submissions_admin_columns",{"type":157,"name":165,"callback":166,"priority":93,"file":154,"line":167},"manage_mksddn_fh_submits_posts_custom_column","fill_submissions_admin_columns",31,{"type":157,"name":169,"callback":170,"priority":93,"file":154,"line":171},"save_post_form_submissions","clear_submissions_cache",34,{"type":157,"name":173,"callback":170,"priority":93,"file":154,"line":174},"deleted_post",35,{"type":157,"name":176,"callback":177,"file":178,"line":179},"admin_enqueue_scripts","enqueue_admin_assets","includes\\class-assets.php",22,{"type":157,"name":181,"callback":182,"file":178,"line":183},"wp_enqueue_scripts","register_frontend_assets",23,{"type":157,"name":185,"callback":186,"file":187,"line":171},"admin_menu","add_submissions_export_menu","includes\\class-export-handler.php",{"type":157,"name":189,"callback":190,"file":187,"line":174},"admin_post_export_submissions_csv","handle_export_submissions_csv",{"type":157,"name":192,"callback":190,"file":187,"line":193},"admin_post_nopriv_export_submissions_csv",36,{"type":157,"name":195,"callback":196,"priority":93,"file":187,"line":197},"save_post_mksddn_fh_forms","clear_forms_cache",39,{"type":157,"name":173,"callback":196,"priority":93,"file":187,"line":199},40,{"type":157,"name":201,"callback":202,"file":203,"line":204},"rest_api_init","register_rest_routes","includes\\class-forms-handler.php",53,{"type":157,"name":206,"callback":207,"file":203,"line":208},"admin_post_submit_form","handle_form_submission",54,{"type":157,"name":210,"callback":207,"file":203,"line":211},"admin_post_nopriv_submit_form",55,{"type":157,"name":195,"callback":213,"priority":93,"file":203,"line":214},"clear_form_cache",58,{"type":157,"name":173,"callback":213,"priority":93,"file":203,"line":216},59,{"type":157,"name":185,"callback":218,"file":219,"line":179},"add_settings_page","includes\\class-google-sheets-admin.php",{"type":157,"name":221,"callback":222,"file":219,"line":183},"admin_init","handle_oauth_callback",{"type":157,"name":221,"callback":224,"file":219,"line":225},"save_settings",24,{"type":157,"name":227,"callback":228,"file":219,"line":229},"admin_post_mksddn_fh_test_google_sheets_connection","handle_test_connection",25,{"type":157,"name":231,"callback":232,"file":233,"line":179},"add_meta_boxes","add_forms_meta_boxes","includes\\class-meta-boxes.php",{"type":157,"name":231,"callback":235,"file":233,"line":183},"add_submissions_meta_boxes",{"type":157,"name":237,"callback":238,"file":233,"line":225},"save_post","save_form_settings",{"type":157,"name":240,"callback":241,"file":242,"line":179},"init","register_post_types","includes\\class-post-types.php",{"type":157,"name":240,"callback":244,"priority":245,"file":242,"line":183},"remove_unused_supports",20,{"type":157,"name":185,"callback":247,"priority":248,"file":249,"line":179},"hide_add_new_submission_button",999,"includes\\class-security.php",{"type":151,"name":251,"callback":252,"priority":93,"file":249,"line":183},"user_has_cap","block_submission_creation_cap",{"type":151,"name":254,"callback":255,"priority":93,"file":249,"line":225},"post_row_actions","hide_add_new_submission_row_action",{"type":157,"name":221,"callback":257,"file":249,"line":229},"disable_submission_editing",{"type":151,"name":259,"callback":260,"priority":93,"file":249,"line":261},"rest_pre_insert_mksddn_fh_submits","disable_submission_creation_via_rest",26,{"type":157,"name":263,"callback":264,"file":249,"line":265},"admin_notices","submission_creation_blocked_notice",27,{"type":157,"name":267,"callback":268,"file":269,"line":214},"plugins_loaded","closure","mksddn-forms-handler.php",[271],{"action":272,"nopriv":273,"callback":274,"hasNonce":275,"hasCapCheck":275,"file":219,"line":261},"mksddn_fh_test_google_sheets_connection",false,"handle_ajax_test_connection",true,[277,285,291],{"namespace":278,"route":279,"methods":280,"callback":282,"permissionCallback":283,"file":203,"line":284},"mksddn-forms-handler\u002Fv1","\u002Fforms\u002F(?P\u003Cslug>[a-zA-Z0-9-]+)\u002Fsubmit",[281],"POST","handle_rest_form_submission","__return_true",198,{"namespace":278,"route":286,"methods":287,"callback":289,"permissionCallback":283,"file":203,"line":290},"\u002Fforms",[288],"GET","handle_rest_get_forms",214,{"namespace":278,"route":292,"methods":293,"callback":294,"permissionCallback":283,"file":203,"line":295},"\u002Fforms\u002F(?P\u003Cslug>[a-zA-Z0-9-]+)",[288],"handle_rest_get_form",236,[297],{"tag":298,"callback":299,"file":300,"line":301},"mksddn_fh_form","render_form_shortcode","includes\\class-shortcodes.php",17,[],5,{"dangerousFunctions":305,"sqlUsage":306,"outputEscaping":308,"fileOperations":102,"externalRequests":303,"nonceChecks":369,"capabilityChecks":60,"bundledLibraries":470},[],{"prepared":11,"raw":11,"locations":307},[],{"escaped":309,"rawEcho":310,"locations":311},328,85,[312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,373,375,376,377,378,379,381,383,385,387,389,390,391,393,395,397,398,400,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,459,460,462,464,466,468],{"file":154,"line":46,"context":313},"raw output",{"file":154,"line":315,"context":313},90,{"file":154,"line":317,"context":313},201,{"file":154,"line":319,"context":313},204,{"file":154,"line":321,"context":313},210,{"file":154,"line":323,"context":313},244,{"file":154,"line":325,"context":313},247,{"file":154,"line":327,"context":313},263,{"file":187,"line":329,"context":313},319,{"file":187,"line":331,"context":313},320,{"file":187,"line":333,"context":313},326,{"file":187,"line":335,"context":313},327,{"file":187,"line":337,"context":313},334,{"file":187,"line":339,"context":313},341,{"file":187,"line":341,"context":313},351,{"file":187,"line":343,"context":313},361,{"file":187,"line":345,"context":313},369,{"file":187,"line":347,"context":313},378,{"file":187,"line":349,"context":313},379,{"file":233,"line":351,"context":313},156,{"file":233,"line":353,"context":313},172,{"file":233,"line":355,"context":313},297,{"file":233,"line":357,"context":313},299,{"file":233,"line":359,"context":313},300,{"file":233,"line":361,"context":313},301,{"file":363,"line":303,"context":313},"templates\\form-settings-meta-box.php",{"file":363,"line":365,"context":313},6,{"file":363,"line":367,"context":313},7,{"file":363,"line":369,"context":313},8,{"file":363,"line":371,"context":313},9,{"file":363,"line":93,"context":313},{"file":363,"line":374,"context":313},11,{"file":363,"line":113,"context":313},{"file":363,"line":179,"context":313},{"file":363,"line":183,"context":313},{"file":363,"line":183,"context":313},{"file":363,"line":380,"context":313},37,{"file":363,"line":382,"context":313},41,{"file":363,"line":384,"context":313},45,{"file":363,"line":386,"context":313},48,{"file":363,"line":388,"context":313},52,{"file":363,"line":211,"context":313},{"file":363,"line":216,"context":313},{"file":363,"line":392,"context":313},74,{"file":363,"line":394,"context":313},78,{"file":363,"line":396,"context":313},82,{"file":363,"line":310,"context":313},{"file":363,"line":399,"context":313},89,{"file":363,"line":73,"context":313},{"file":363,"line":402,"context":313},99,{"file":363,"line":404,"context":313},103,{"file":363,"line":406,"context":313},107,{"file":363,"line":408,"context":313},111,{"file":363,"line":410,"context":313},112,{"file":363,"line":412,"context":313},113,{"file":363,"line":414,"context":313},114,{"file":363,"line":416,"context":313},115,{"file":363,"line":418,"context":313},116,{"file":363,"line":420,"context":313},117,{"file":363,"line":422,"context":313},118,{"file":363,"line":424,"context":313},119,{"file":363,"line":426,"context":313},120,{"file":363,"line":428,"context":313},121,{"file":363,"line":428,"context":313},{"file":363,"line":431,"context":313},135,{"file":363,"line":433,"context":313},139,{"file":363,"line":435,"context":313},143,{"file":363,"line":437,"context":313},146,{"file":363,"line":439,"context":313},150,{"file":363,"line":441,"context":313},153,{"file":363,"line":443,"context":313},166,{"file":363,"line":445,"context":313},170,{"file":363,"line":447,"context":313},180,{"file":363,"line":449,"context":313},183,{"file":363,"line":451,"context":313},187,{"file":363,"line":453,"context":313},190,{"file":363,"line":455,"context":313},194,{"file":363,"line":457,"context":313},197,{"file":363,"line":317,"context":313},{"file":363,"line":319,"context":313},{"file":363,"line":461,"context":313},208,{"file":363,"line":463,"context":313},211,{"file":363,"line":465,"context":313},224,{"file":363,"line":467,"context":313},229,{"file":363,"line":469,"context":313},230,[],[472,490,507,522],{"entryPoint":473,"graph":474,"unsanitizedCount":11,"severity":489},"handle_export_submissions_csv (includes\\class-export-handler.php:60)",{"nodes":475,"edges":487},[476,481],{"id":477,"type":478,"label":479,"file":187,"line":480},"n0","source","$_GET",73,{"id":482,"type":483,"label":484,"file":187,"line":485,"wp_function":486},"n1","sink","header() [Header Injection]",91,"header",[488],{"from":477,"to":482,"sanitized":275},"low",{"entryPoint":491,"graph":492,"unsanitizedCount":11,"severity":489},"\u003Cclass-export-handler> (includes\\class-export-handler.php:0)",{"nodes":493,"edges":504},[494,495,496,499],{"id":477,"type":478,"label":479,"file":187,"line":480},{"id":482,"type":483,"label":484,"file":187,"line":485,"wp_function":486},{"id":497,"type":478,"label":498,"file":187,"line":480},"n2","$_GET (x5)",{"id":500,"type":483,"label":501,"file":187,"line":502,"wp_function":503},"n3","echo() [XSS]",325,"echo",[505,506],{"from":477,"to":482,"sanitized":275},{"from":497,"to":500,"sanitized":275},{"entryPoint":508,"graph":509,"unsanitizedCount":11,"severity":489},"save_settings (includes\\class-google-sheets-admin.php:92)",{"nodes":510,"edges":519},[511,513,516,518],{"id":477,"type":478,"label":512,"file":219,"line":59},"$_POST['google_sheets_client_id']",{"id":482,"type":483,"label":514,"file":219,"line":59,"wp_function":515},"update_option() [Settings Manipulation]","update_option",{"id":497,"type":478,"label":517,"file":219,"line":25},"$_POST['google_sheets_client_secret']",{"id":500,"type":483,"label":514,"file":219,"line":25,"wp_function":515},[520,521],{"from":477,"to":482,"sanitized":275},{"from":497,"to":500,"sanitized":275},{"entryPoint":523,"graph":524,"unsanitizedCount":11,"severity":489},"\u003Cclass-google-sheets-admin> (includes\\class-google-sheets-admin.php:0)",{"nodes":525,"edges":530},[526,527,528,529],{"id":477,"type":478,"label":512,"file":219,"line":59},{"id":482,"type":483,"label":514,"file":219,"line":59,"wp_function":515},{"id":497,"type":478,"label":517,"file":219,"line":25},{"id":500,"type":483,"label":514,"file":219,"line":25,"wp_function":515},[531,532],{"from":477,"to":482,"sanitized":275},{"from":497,"to":500,"sanitized":275},{"summary":534,"deductions":535},"The mksddn-forms-handler v2.4.0 plugin exhibits a mixed security posture. On the positive side, the code demonstrates good practices by utilizing prepared statements for all SQL queries and performing a significant amount of output escaping (79%).  It also includes a healthy number of nonce and capability checks, suggesting an awareness of security principles. The absence of critical or high severity taint flows and a clean vulnerability history with no known CVEs are strong indicators of a generally secure development approach.\n\nHowever, there are notable concerns primarily related to the attack surface. Specifically, three out of five identified entry points (3 REST API routes) lack permission callbacks. This means that unauthorized users could potentially interact with these endpoints, leading to unintended behavior or information disclosure. While no dangerous functions were found and file operations are minimal, the exposure of these API routes without proper authorization presents a clear security risk.  The plugin also makes external HTTP requests, which, if not handled carefully, could introduce vulnerabilities like SSRF, although there's no direct evidence of this in the provided data.\n\nIn conclusion, the plugin has a solid foundation with secure coding practices for database interactions and output handling. The lack of historical vulnerabilities is a significant positive. The primary weakness lies in the unprotected REST API routes, which require immediate attention. Addressing these unprotected entry points would significantly improve the plugin's overall security posture.",[536,539,541],{"reason":537,"points":538},"REST API routes without permission callbacks",15,{"reason":540,"points":303},"Unprotected AJAX handlers",{"reason":542,"points":60},"Output escaping not fully implemented (21% not escaped)","2026-03-17T06:10:23.756Z",{"wat":545,"direct":556},{"assetPaths":546,"generatorPatterns":550,"scriptPaths":551,"versionParams":552},[547,548,549],"\u002Fwp-content\u002Fplugins\u002Fmksddn-forms-handler\u002Fassets\u002Fcss\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fmksddn-forms-handler\u002Fassets\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fmksddn-forms-handler\u002Fassets\u002Fjs\u002Fform.js",[],[548,549],[553,554,555],"\u002Fwp-content\u002Fplugins\u002Fmksddn-forms-handler\u002Fassets\u002Fcss\u002Fadmin.css?ver=","\u002Fwp-content\u002Fplugins\u002Fmksddn-forms-handler\u002Fassets\u002Fjs\u002Fadmin.js?ver=","\u002Fwp-content\u002Fplugins\u002Fmksddn-forms-handler\u002Fassets\u002Fjs\u002Fform.js?ver=",{"cssClasses":557,"htmlComments":558,"htmlAttributes":559,"restEndpoints":560,"jsGlobals":561,"shortcodeOutput":563},[],[],[],[],[562],"mksddn_fh_admin",[564],"[mksddn_fh_form"]