Home Plugins mksddn forms handler
MksDdn Forms Handler logo

MksDdn Forms Handler

by Max on WordPress.org

Advanced form processing system with REST API support, Telegram notifications, and Google Sheets integration.

(0)

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.

Key Features

  • Multiple Delivery Methods: Send form submissions via email, Telegram, Google Sheets, or store in WordPress admin
  • REST API Support: Submit forms via AJAX or REST API endpoints
  • Telegram Integration: Instant notifications to Telegram channels
  • Google Sheets Integration: Automatically save submissions to Google Sheets
  • Custom Post Types: Dedicated forms and submissions management
  • Security First: Built-in validation, sanitization, and security measures
  • Developer Friendly: Clean code structure with proper namespacing

Use Cases

  • Contact forms with multiple delivery options
  • Lead generation forms with instant notifications
  • Data collection forms with Google Sheets backup
  • Custom forms with REST API integration

Technical Features

  • WordPress 5.0+ compatible
  • PHP 8.0+ required
  • GPL v2+ licensed
  • Clean, maintainable code
  • Proper error handling
  • Comprehensive logging

For Developers

Architecture

Component-based structure following SOLID principles with clear separation of concerns:

Core Components (includes/)
* PostTypes – custom post types registration (forms, submissions)
* MetaBoxes – form settings and submission data management
* FormsHandler – main processing logic with REST API support
* Shortcodes – form rendering with AJAX functionality
* AdminColumns – admin interface customization
* ExportHandler – CSV export with filtering
* Security – rate limiting and security checks
* Utilities – helper functions and form creation utilities
* GoogleSheetsAdmin – Google Sheets settings page and OAuth
* Template Functions – global functions for PHP template integration

Handlers (handlers/)
* TelegramHandler – Telegram Bot API integration
* GoogleSheetsHandler – Google Sheets API integration

Assets (assets/)
* css/ – Admin and frontend styles
* js/ – Admin and form scripts
* images/ – Plugin images

Technology Stack

  • WordPress 5.0+ – core platform
  • PHP 8.0+ – server-side logic
  • jQuery – client-side form handling
  • REST API – form submission API
  • Google Sheets API – spreadsheet integration
  • Telegram Bot API – notifications

File Structure

`

mksddn-forms-handler/
├── mksddn-forms-handler.php # Main plugin file
├── includes/ # Core components
│ ├── class-post-types.php
│ ├── class-meta-boxes.php
│ ├── class-forms-handler.php
│ ├── class-shortcodes.php
│ ├── class-admin-columns.php
│ ├── class-export-handler.php
│ ├── class-security.php
│ ├── class-utilities.php
│ ├── class-google-sheets-admin.php
│ └── template-functions.php
├── handlers/ # External service handlers
│ ├── class-telegram-handler.php
│ └── class-google-sheets-handler.php
├── templates/ # Template files
│ ├── form-settings-meta-box.php
│ └── custom-form-examples.php
├── assets/ # Static resources
│ ├── css/
│ ├── js/
│ └── images/
├── languages/ # Translations
└── uninstall.php # Cleanup script
`

Integration Methods

1. Shortcode (Standard)
php
[mksddn_fh_form slug="contact-form"]

Plugin automatically generates HTML form based on configuration.

2. PHP Templates (Custom Forms)
Integrate pre-built forms in theme templates:

`php

'https://example.com/wp-json/mksddn-forms-handler/v1/forms/contact/submit'

Submit form with files (multipart):
bash
curl -s -X POST \
-F 'name=John' \
-F 'email=john@example.com' \
-F 'attachments[]=@/path/to/file1.pdf' \
-F 'attachments[]=@/path/to/file2.png' \
'https://example.com/wp-json/mksddn-forms-handler/v1/forms/contact/submit'

Supported Field Types

Fields are configured as JSON in the form settings. Supported types:

  • Basic: text, email, password
  • Input: tel, url, number, date, time, datetime-local
  • Text: textarea
  • Choice: checkbox, select (supports multiple), radio
  • File: file uploads (form and REST multipart)

Field Configuration Notes

  • options can be an array of strings or objects { "value": "...", "label": "..." }
  • For select with multiple choice, set multiple: true (shortcode renders name[])
  • For number, optional attributes: min, max, step
  • For tel, optional pattern (default server validation uses ^\+?\d{7,15}$)
  • For date/time/datetime-local, server validates formats: YYYY-MM-DD, HH:MM, YYYY-MM-DDTHH:MM
  • For REST submissions, send arrays for multiple selects

File Field Options

  • allowed_extensions: Array of extensions, e.g. ["pdf","png","jpg"]
  • max_size_mb: Maximum size per file (default: 10)
  • max_files: Maximum files per field (default: 5)
  • multiple: Allow multiple files

Example JSON Configuration

`json

[
{“name”:”name”,”label”:”Name”,”type”:”text”,”required”:true,”placeholder”:”Your name”},
{“name”:”email”,”label”:”Email”,”type”:”email”,”required”:true},
{“name”:”phone”,”label”:”Phone”,”type”:”tel”,”pattern”:”^\+?\d{7,15}$”},
{“name”:”website”,”label”:”Website”,”type”:”url”},
{“name”:”age”,”label”:”Age”,”type”:”number”,”min”:1,”max”:120,”step”:1},
{“name”:”birth”,”label”:”Birth date”,”type”:”date”},
{“name”:”message”,”label”:”Message”,”type”:”textarea”,”required”:true},
{“name”:”agree”,”label”:”I agree to Terms”,”type”:”checkbox”,”required”:true},
{
“name”:”services”,
“label”:”Choose services”,
“type”:”select”,
“multiple”:true,
“options”:[“seo”,”smm”,”ads”]
},
{
“name”:”attachments”,
“label”:”Attach files”,
“type”:”file”,
“multiple”:true,
“allowed_extensions”:[“pdf”,”png”,”jpg”],
“max_size_mb”:10,
“max_files”:3
}
]
`

External Services

This plugin can connect to external services when explicitly enabled in a form’s settings:

Google OAuth2 and Google Sheets API

  • Purpose: Authenticate and append rows to a spreadsheet
  • When: Only if “Send to Google Sheets” is enabled for a form and valid credentials are provided
  • Data sent: Form fields configured for the form, form title, timestamp
  • Endpoints used: https://oauth2.googleapis.com/token, https://sheets.googleapis.com/v4/spreadsheets/...
  • Terms: https://policies.google.com/terms
  • Privacy: https://policies.google.com/privacy

Telegram Bot API

  • Purpose: Send a message with submission content to specified chat(s)
  • When: Only if “Send to Telegram” is enabled for a form and bot token + chat IDs are configured
  • Data sent: Form fields configured for the form, form title
  • Endpoint used: https://api.telegram.org/bot/sendMessage
  • Terms/Privacy: https://telegram.org/privacy

Privacy Notes

  • No IP address or user agent is transmitted to external services; only form field values are sent
  • External delivery is opt-in per form and disabled by default
Active installations0+
Weekly downloads
18-60.00%
Version1.1.1
Last updated10/12/2025
WordPress version5.0
Tested up to6.8.3
PHP version8.0
Tags
form-handlerformsGoogle Sheetsrest-apitelegram