Uncomplicated Forms Documentation
Bringing 30 years of systems engineering and diagnostic precision to the WordPress ecosystem. Building high-integrity form builder tools that perform exactly as promised.
Uncomplicated Forms Documentation
Uncomplicated Forms is built with a Self-Documenting Architecture. Every control inside your administration workspace features an interactive [Help] toggle providing instant, context-specific configuration rules without interrupting your flow.
Configuration Structure
The plugin settings panel is organized into logically separated workspace tabs for optimal flow:
The Field Engine
π‘ Logical Layout Flow Rule
The vertical rendering order of elements in the Fields Tab directly maps to the physical output sequence on the frontend and the data flow in notifications. Each unique input element must contain a unique Tag (Slug).
Core Field Types
- Text / Textarea: Clean strings with configurable length limits and automatic sanitization.
- Choice Inputs: Dropdown selects, radio buttons, and checkbox arrays mapped via single option lists.
- MIME-Validated Inputs: Standard Email, URL, and Phone fields with phone inputs automatically formatted to
(555) 555-5555. - Attachment: Highly secure file uploading using direct server storage isolation and automatic post-send deletion.
Premium Field Types PRO ONLY
- Dropdown with “Other”: Select dropdown that triggers an inline specification text box if “Other” is chosen.
- Currency: Automatically validates and formats raw numbers into localized currency (e.g.,
$10.00). - Star Rating & Linear Scale: Interactive survey inputs with custom boundary labels.
- Incremental #: Generates a unique, non-repeating transaction, counter, or ticket ID per submission.
- Page Break (Multi-Step): Inserts a structural break to create a multi-page form wizard. The engine automatically generates navigation buttons and validates required fields on the current step before allowing progress.
Field Properties Reference
| Property | Technical Logic & Syntax Constraints |
|---|---|
| Tag (Slug) | The internal identifier used in email templates and parameters. Will be auto-generated from your label if left blank. Only alphanumeric characters and underscores are allowed. |
| Default Value |
Sets the initial value of text, textarea, and select options. Supports structured formatting for compound blocks: β’ Email Verification: Placeholder 1==Placeholder 2 (e.g. Email==Re-enter Email)β’ Split Name: First Name==Last Nameβ’ Multi-Part Name: First==Middle==Last
|
| Attributes | Injects raw HTML attributes directly into the output element tag. Useful for locks or pattern requirements (e.g., readonly="readonly"). |
| Select Options |
Enter one option per line. Standard Options: Support DepartmentBilling DepartmentAdvanced Key Mapping: Use the key==Value syntax to store a clean backend key that differs from the visual label:1==Support Department2==Billing Department
|
| Follow Previous | Moves the element up to sit on the same row as the preceding element. Allows for clean multi-column layouts (e.g., side-by-side Email and Phone fields). Note: This is strictly limited to grouping two fields together on the same row; more than two fields cannot occupy the same row. |
| Conditional Logic | PRO ONLY: Dynamically toggles field visibility based on the values submitted in other form elements. |
Query String Pre-Fill API
Uncomplicated Forms features a powerful runtime lookup engine that allows you to pre-fill text inputs or pre-select dropdown options, checkboxes, and radio buttons dynamically via query parameters.
π Pre-Fill Security Guard
For strict security compliance, URL parameter lookup is strictly limited to pre-populating fields. It can never trigger form submissions or bypass security checks (Honeypot or Turnstile).
How Parameters Work
Every parameter requires a Lookup Selector composed of the form_id and the field’s tag, joined by an underscore:
?[form_id]_[tag]=[value]
To pass multiple field values within the same query string, separate each individual field-value pair using the ampersand character (&).
For example, on form 1, to set the name field (tag: name) to Mike Smith, the query string is:
?1_name=Mike+Smith
The Global Fallback Hook: If you omit the form ID prefix, the engine will check for the raw slug (e.g., ?[tag]=[value]). If a match is found, it will automatically populate that field across any active form on the page containing that slug.
Formatting Parameters
| Field Type | Parameter Syntax & Formatting Rules |
|---|---|
| Text & Textareas |
URL-encoded strings. Space characters should be encoded as + or %20.Adding Line Breaks in Textareas: To pass multiline inputs inside your query string, inject the URL-encoded line feed token %0A (or %0D%0A for standard Windows Carriage Return + Line Feed format) at each line break boundary. The browser and PHP will automatically translate this token into a standard, visual line break inside the textarea box.?1_subject=Support+Request?1_message=Line+1%0ALine+2%0ALine+3
|
| Names |
Matches your Name Format layout on form 1: β’ Name Format (Standard): ?1_name=Mike+Smithβ’ First / Last Name Format: ?1_f_name=Mike&1_l_name=Smith
|
| Standard Emails |
Validated email address. If using Double Email, both inputs are populated automatically.?1_email=mike%40example.com
|
| Custom Dates |
Must be formatted in strict HTML5 native format: YYYY-MM-DD. Any invalid dates (like Feb 31st) are rejected.?1_start_date=2026-07-30
|
| Custom Times |
Must be formatted in 24-hour time: HH:MM.?1_appt_time=14:30
|
| Radios & Single Checkboxes |
β’ Single Checkbox: Pass 1, checked, or selected.
Example: ?1_opt_in=1β’ Radio Group: Pass the 1-based index integer of the option. Example: ?1_gender=2
|
| Checkbox Groups & Dropdowns |
Supports two parsing formats: β’ Method A (Index Suffixes): Set option-specific parameters to 1. (e.g., ?1_hobbies_1=1&1_hobbies_3=1)β’ Method B (Comma-separated List): Pass index values directly. (e.g., ?1_hobbies=1,3)
|
Step-by-Step How-To Guides
1. How to Add Field Placeholders
Placeholders display inline, fallback instructions inside your form inputs when they are empty:
- Go to the Fields Tab.
- Locate your target field and click to expand its settings.
- Toggle the Placeholder option to True.
- Enter your placeholder text inside the Default Value field. For split name options, use the double equals sign separator (e.g.,
First Name==Last Name).
2. How to Create a Multi-Step Form PRO
Convert lengthy layout forms into highly interactive multi-page wizards:
- Go to the Fields Tab.
- Click the Add New Field button.
- Select Page Break from the drop-down selector.
- Drag the Page Break element to your desired pagination split location in the fields list.
3. How to Add More Fields to a Form
Expanding your forms with custom input elements is quick and straightforward:
- Go to the Fields Tab.
- Click the Add New Field button.
- Select the field type you want to add from the drop-down selector.
4. How to Enable a Border Around the Entire Form
Create a clean, outline frame around your form output:
- Go to the Fields Tab.
- Scroll down to the General Field Settings section.
- Check the checkbox to Enable a fieldset box around the form.
- In the Fieldset box label text input, enter your desired outline frame title (this maps directly to the HTML
<legend>tag).
5. How to Add a Field Group (Fieldset) Border Around Specific Fields
Group related fields inside a distinct border box within the form:
- Go to the Fields Tab.
- Click the Add New Field button, and select Field Group (fieldset) from the drop-down selector.
- Drag the Field Group (fieldset) element above the first field in your group, and enter your group title in the Field Label.
- Click the Add New Field button, and select Field Group Close (fieldset-close) from the drop-down selector.
- Drag this Field Group Close element directly below the last field in your group.
6. How to Add Pre-Formatted Multi-Line Address Blocks
Capture address details in structured formats that output cleanly as printable, multi-line address blocks in your email notifications:
- Go to the Fields Tab.
- Click the Add New Field button, and select Address (US) or Address (Intl.) from the drop-down selector.
- Drag the field to your desired location. Address (US) renders Street, Apt/Suite, City, State, and Zip. Address (Intl.) replaces State/Zip with Postcode and a drop-down Country list.
7. How to Add a Hidden Field to a Form
Pass behind-the-scenes parameters (such as campaign IDs or UTM tracking sources) silently with your submissions. This allows the system to inject static key-value pairs (e.g., utm_campaign=product_launch) directly into your submission payloads:
- Go to the Fields Tab.
- Click the Add New Field button, and select Hidden from the drop-down selector.
- Specify your tracking slug in the Tag (Slug) input (e.g.
utm_campaign). - Specify your target static value in the Default value input with an example value:
product_launch.
8. How to Add an HTML Block
Inject custom text blocks, tables, lists, or shortcodes directly between your fields:
- Go to the Fields Tab.
- Click the Add New Field button, and select HTML Block from the drop-down selector.
- Paste your HTML or shortcodes into the Select Options box.
9. How to Add an Incremental Ticket ID PRO
Generate unique, non-repeating transaction or ticket numbers for every form submission. The compiled Incremental Ticket ID value will be automatically included inside the primary notification Email message body:
- Go to the Fields Tab.
- Click the Add New Field button, and select Incremental # from the drop-down selector.
- Define your options (e.g., prefix or minimum floor value).
Note: The Incremental Ticket ID will also be available for use in the subject field tags by editing the Subject Line Prefix on the Basic Settings Tab. Click [help] next to Subject Line Prefix to see the available tag names.
10. How to Add a File Attachment Field
Securely accept files, documents, or photos from your users:
- Go to the Fields Tab.
- Click the Add New Field button, and select Attachment from the drop-down selector.
- In your Fields Tab General Field Settings, “Attached files acceptable types” specify allowed file extensions. Any file type not on this list will be rejected. Separate each file type with a comma character. example: doc,docx,pdf,txt,gif,jpg,jpeg,png
11. How to Make Radio or Checkbox Options Inline Instead of Vertical?
Display your choice selections horizontally across the screen rather than stacked in a single vertical list:
- Go to the Fields Tab.
- Locate your target Radio or Checkbox field and click to expand its settings.
- Check the checkbox for Display options inline.
12. How to Enable Conditional Logic on a Field PRO
Configure dynamic path structures by revealing or hiding specific fields based on visitor choices:
- Go to the Fields Tab.
- Locate your target field, and click to expand its settings.
- Scroll down to the Conditional Logic (Pro) configuration selectors:
- Logic Action Dropdown: Select either Show this field if… or Hide this field if… (defaults to “No Logic”).
- Field Trigger Dropdown: Use the Field: selector to choose the exact trigger element whose submitted value determines the current field’s display state.
- Trigger Value Input: In the is Value: text box, enter the exact target value required to activate the logic (e.g.,
Yes,No, or the index number of your chosen trigger dropdown/radio option).
Ensuring Email Delivery (DMARC Alignment)
To prevent your notifications from being blocked or marked as SPAM by major inbox providers like Gmail and Yahoo, your web domain must maintain proper alignment. Follow these two critical rules:
π Rule 1: The Return-Path Rule (Basic Settings Tab)
The “Sender Address” (which sets your server’s Return-Path) MUST be a real, active email address hosted on your own website’s domain (e.g., info@youractualwebsite.com).
β Do NOT use a third-party address (such as a personal Gmail or Yahoo address) in this field.
Allowed Formats:
β’ Just an email: sales@domain.com
β’ Name and email: Sales,sales@domain.com
π Rule 2: Enable DMARC Delivery Protocol (Basic Settings Tab)
Ensure the checkbox for “Enable DMARC Delivery Protocol” is checked. This authenticates the notification email as originating from your server’s domain to satisfy strict receiving filters, while safely embedding the visitor’s submitted email inside the Reply-To header so you can hit “Reply” directly inside your inbox client.
βοΈ External DNS Configuration Requirement
Your site’s deliverability depends on proper global server authentication records. Make sure your web domain has DMARC, DKIM, and SPF records properly configured within your domain’s active DNS zone.
Please contact your web hosting provider for assistance in configuring these records, and utilize an online lookup utility (such as MXToolbox or DMARCian) to verify that your domain’s records are properly aligned.
Security & Spam Prevention
How to Enable Cloudflare Turnstile
Cloudflare Turnstile provides non-interactive, user-friendly challenge verification to protect your forms against bot submissions:
- Go to the Security Tab.
- Scroll down to the Security Verification Settings section and locate Enable Cloudflare Turnstile.
- Check the checkbox to Enable Cloudflare Turnstile.
- Enter your Site Key and Secret Key.
Note: Site and Secret Keys are saved globally for all forms, but the checkbox to activate Turnstile is individual to each form. You can get your free Turnstile keys here.
Akismet Spam Prevention
Leverage Akismet’s cloud intelligence network to automatically screen submissions for spam behaviors:
- Go to the Security Tab.
- Locate the Akismet Spam Prevention section.
- Check the checkbox to Enable Akismet spam protection for this form.
Akismet is a WordPress spam prevention plugin. When Akismet is installed and active, this form will be checked with Akismet to help prevent spam.
Advanced Settings & Redirection
How to Enable Confirmation Email Settings
Automatically send an auto-response confirmation email to users when they submit a form:
- Go to the Advanced Tab.
- Locate the Confirmation Email Settings section.
- Check the box to Enable confirmation email message.
- Populate the following confirmation options:
- Sender Name: The display name of the email sender (e.g. “Uncomplicated Forms”).
- Sender Email: The originating email address.
- Reply-to Address: Where user replies should be directed.
- Email Subject: The subject line of the confirmation email (supports tags).
- Email Message Body: The text or HTML message body sent to the user.
Dynamic Field Tag Merging: All field tags representing your active form fields are fully supported and available to include dynamically inside both the Email Subject and Email Message Body boxes. Simply click the [help] toggle located directly next to these parameters to view the complete directory of applicable field tag placeholders.
How to Attach Document(s) to Email PRO
Great for sending an e-book, catalog, or promotional PDF files upon form completion:
- Go to the Advanced Tab.
- Locate the Attach Document(s) to Email control group.
- Under the Server path or Media URL… text box, enter your file destination. You can select a file from your Media Library or paste a direct link. Multiple files must be separated by commas.
How to Enable URL Redirection
Redirect users to a custom success page or external URL after a successful form submission:
- Go to the Advanced Tab and scroll to Redirect Settings.
- Check the box to Enable URL Redirection.
- Configure the following options:
- Redirect delay in seconds: Set the delay duration (e.g.,
3seconds) during which the browser will display “message sent” before executing the redirect. - Redirect URL: Enter your target URL destination (e.g.,
https://uncomplicatedforms.com).
- Redirect delay in seconds: Set the delay duration (e.g.,
Enable Marketing Data Bridge (Query String Redirection) PRO
Checking this option appends submitted form data directly to your Redirect URL using GET parameters (e.g., ?fname=Mike&email=...). This establishes a high-fidelity data bridge to your “Success Page,” allowing third-party CRMs, tracking scripts, and analytics tools to capture conversion data instantly.
Enable AJAX Background Submission PRO
When enabled, the form submits instantly in the background without triggering a full page refresh. This provides a smoother experience for users, especially on Multi-Step forms.
After Form Additional HTML
This text is displayed directly below the form. Line breaks will automatically create paragraphs, and you may also use basic HTML tags for styling (like <strong> or <a>).
Success Page Additional HTML
This custom block is printed on the success landing page. It is highly useful for displaying a custom thank you message and for tracking external conversion codes.
CRM, API & Data Storage
External API & CRM Connectivity (Silent Remote Sending) PRO
Securely bridge form data to third-party APIs, mailing list providers, or CRM endpoints using background HTTP GET or POST methods.
When enabled, the engine silently transmits submitted data to a third-party endpoint immediately after a successful form submission. Select the method (GET or POST) required by your remote API documentation.
- Exclude Fields: Enter the field tags you want to omit from the API payload (one tag per line).
- Map/Rename Fields: Rename internal tags to match third-party API keys (format:
internal_tag=api_key, one per line). - Custom API Parameters: Injects static pairs required by the remote endpoint that arenβt present on the front-end form (e.g., api_key=123). Format:
key=value(one per line). - Conditional Logic Field (Optional): Limits the CRM connectivity to only fire when this specific field tag matches a certain value. Ideal for “Opt-in” checkboxes. Click help to see available tags. Type the tag to be included.
- Conditional Logic Value: The exact value that must be submitted to trigger the connectivity bridge. For single checkboxes, use
1orselected. - Suppress Standard Admin Email (Connectivity Bridge Only): Check this if the form is strictly being used as a CRM/API bridge and you do not want to receive standard email notifications.
Professional Data Integration & Lead Storage PRO
Manage how form entries are recorded to the database and prepared for external CRM or CSV exports.
- Exclude Fields: Strip sensitive fields before database insertion.
- Map/Rename Fields: Re-key field names for external CSV or database table alignments.
- Add Custom Metadata: Inject static tracking values into database records.
- Suppress Administrative Email Notifications: Check this box to turn off standard notification emails entirely, relying purely on the database entries log.
Enable Lead Logging in Database (Form Entries) PRO
Located on the Advanced Tab under Advanced Email Process Settings:
β’ Checked: Form submissions will be saved to your local Form Entries database log.
β’ Unchecked: Submissions are sent via email but never saved to your local database (highly recommended for strict GDPR, HIPAA, and data privacy compliance).
Diagnostic Tools & Backups
Send a Test Email
If you are not receiving emails from your form, try this test because it can display real-time diagnostic and mail server troubleshooting information.
- Go to the Tools Tab.
- Under Send a Test Email, type an email address into the To Email field.
- Click Send Test to generate the diagnostic email.
On-Screen Live Mail Debugging: Upon execution, the engine will run verbose trace operations and output the live mail debugging data directly onto your admin panel. This includes exact server timestamps, active PHP sendmail paths, envelope sender records, PHPMailer version indicators, raw headers, additional flags, and the boolean execution success result to help you easily locate configuration faults.
Settings Cloner (Direct Transfer Between Forms)
Quickly duplicate configurations from the current form directly to other existing forms on your website without importing/exporting files:
- Go to the Tools Tab.
- Under Settings Cloner, select which form’s settings you want to clone.
- Choose your destination form in the Transfer to dropdown selector.
- Click Clone Settings Now to copy. Note: This overrides existing settings on the target form.
Form Backups (Full Settings Export/Restore) PRO
Export full form configurations (including email, security, styles, and redirection settings) for safe-keeping or site migration:
- Go to the Tools Tab.
- Under Form Backups, select your source form and click Download Backup File to save the backup locally.
- To restore, select your target Restore Destination, choose your backup file, and click Restore Settings Now. Works on single forms or all forms at once.
Field Templates (Export/Import Fields Only) PRO
This tool allows you to safely share and import specific form structures without including your private email routing or redirect settings.
Save time and skip the drag-and-drop builder. Browse our directory of pre-configured form structures designed for real-world workflows β from simple contact pages to multi-step real estate and hiring forms. Our lightweight field templates allow you to safely share and import complete form structures in seconds, without ever exposing your private email addresses or redirect settings. Download any template from our Field Templates Directory to upload it manually, or get Uncomplicated Forms Pro to unlock seamless, one-click in-dashboard imports.
Factory Reset Form & CSS Styles (Wipe & Delete)
β οΈ Warning: Destructive Actions
These options wipe data completely and cannot be undone. Form 1 is a system requirement and cannot be deleted.
- Reset current form: Wipes all fields and configurations, setting the form back to initial factory defaults.
- Delete current form: Deletes the form database profile entirely.
- Style Reset (CSS Only): Resets only the CSS layout, widths, margins, and color parameters for this specific form back to standard default values.
Architectural FAQ
Q: What PHP versions are supported?
Uncomplicated Forms is built to target PHP 8.4, with a backward-compatibility floor to PHP 8.2. We do not support legacy or end-of-life PHP versions to maintain modern performance and security standards.
Q: How does the Honeypot anti-spam shield work?
Instead of using a static hidden input name that automated bots can easily identify and bypass, Uncomplicated Forms rotates between 15 different decoy field names based on the day of the week. This keeps bot profiles out of sync and protects submissions without annoying your users with captchas.
Q: How are files processed securely?
Uploads are directed to a specialized, secure directory inside your WordPress uploads folder. This directory is locked down with a custom .htaccess block that disables PHP execution and blocks raw HTTP access. Once the email notification is sent, the attachment is purged from the server unless “Keep Attachments” is explicitly enabled in your settings.
Q: What is the “Follow Previous” layout property?
It is our built-in columns property. Checking “Follow Previous” on a field moves it up to sit on the same line as the preceding element, allowing you to easily build clean multi-column layouts without writing any custom grid CSS. Note: This is strictly limited to grouping two fields together on the same row; more than two fields cannot occupy the same row.
