GriffinForms is a WordPress form builder built for people who want more than a basic contact form. You can create multi-step forms with a real layout system (pages, rows, and columns), reuse fields across forms, validate and conditionally show content, and manage submissions from a dedicated admin area.
If you are searching for a
WordPress form builder that can handle everything from a simple contact form to multi-page registration and payment workflows, GriffinForms focuses on three things: a structured builder, clean data, and admin tools that help you run forms in production.
Quick Start (How to add a form to WordPress)
- Create a form in GriffinForms → Forms.
- Add pages/rows/columns, then insert fields from the field library.
- Publish the form using the shortcode:
[griffinforms_form id="123"].
Tip: start with a single-page contact form, then expand into multi-step forms as you add conditional logic, uploads, and integrations.
A Structured Drag-and-Drop Builder (Pages, Rows, Columns)
Many “form builder” plugins treat layout as an afterthought. GriffinForms starts with layout:
-
Pages for true multi-step (multi-page) forms with step navigation.
-
Rows and columns so you can build structured forms without custom CSS.
-
Reusable fields so you can maintain one field (like “Address” or “Company”) and insert it into multiple forms.
-
Folders and organization tools to keep larger form libraries tidy as you add more workflows over time.
This approach is useful when you need forms that behave like small workflows (onboarding, registrations, requests) instead of a single “send us a message” page. You can create a short first step, progressively ask for details, and keep each page focused so users are more likely to complete the form.
Because GriffinForms uses a row/column grid, you can build clean layouts for common patterns like “first name + last name”, “city + state + ZIP”, and grouped options without custom HTML.
Key Features (Benefit-first)
- Multi-step forms: build multi-page flows for longer applications, onboarding, or checkout-style steps.
- Conditional logic: show/hide fields and sections based on user input and form state.
- Validations: enforce required rules and common constraints so submissions stay clean.
- File uploads: accept files as part of a submission and manage uploads from the admin.
- Payments: collect payments through Stripe where configured (useful for donations, registrations, and orders).
- Email notifications: send notifications and route delivery via Custom SMTP, SendGrid, or Mailgun.
- Spam protection: choose a CAPTCHA provider (reCAPTCHA, Cloudflare Turnstile, or hCaptcha) and enable additional anti-spam controls like honeypot and rate limiting.
- Logs and monitoring: troubleshoot integrations and submission workflows using a timeline-based log viewer.
- Theme Designer: style forms with ready-to-use presets and import/export theme configurations.
Who GriffinForms Is For
GriffinForms is built for a wide range of WordPress sites:
-
Site owners who need a dependable contact form plugin that scales into registration, onboarding, and payment workflows.
-
Agencies that manage multiple client sites and need reusable components, templates, and consistent admin tooling.
-
Developers who prefer structured form data, clear admin screens, and predictable behavior across forms, submissions, and integrations.
Typical Workflows (Examples you can copy)
Here are common workflows people build with a WordPress form builder like GriffinForms:
-
Multi-step registration: page 1 (contact info) → page 2 (additional details) → page 3 (confirm + submit).
-
Support intake with uploads: contact info → issue details → attach screenshots/logs → submit.
-
Donation/payment form: amount selection → donor details → pay via Stripe → confirmation.
These patterns work well because the form layout is structured and the submission data stays consistent.
Builder Workflow (From draft to published form)
GriffinForms is designed to keep complex forms maintainable:
- Start with layout (pages, rows, columns), then drop fields into place.
- Reorder content without breaking the structure of multi-step flows.
- Reuse your common fields (name/address/company) across forms so changes stay consistent.
- Keep large form libraries organized with folders, templates, and import/export.
If you are migrating from a basic contact form setup, GriffinForms helps you graduate to structured workflows without rebuilding everything from scratch. You can start small (a single-page contact form) and expand into multi-step forms as your site’s needs grow.
Conditional Logic and Validation (Cleaner submissions)
Conditional logic and validation are core to a reliable WordPress contact form plugin:
- Show only what the user needs to see (for example, reveal follow-up fields only when a checkbox is selected).
- Prevent incomplete or invalid data before it becomes a support issue.
- Keep user experience fast by reducing unnecessary inputs, especially on longer multi-step forms.
In practice, conditional logic and validation reduce back-and-forth with users because you collect the right data the first time. This is especially important for registration forms, onboarding workflows, and payment forms where missing information can block fulfillment.
File Upload Forms (Attachments without chaos)
File uploads are common in real workflows (applications, onboarding, support tickets). GriffinForms supports file upload fields and admin management so you can:
- accept uploads as part of a submission,
- review attachments alongside entry details,
- and keep storage behavior manageable through upload controls and retention settings (where configured).
What You Can Build (Use Cases)
GriffinForms is a general-purpose WordPress forms plugin. Common use cases include:
-
Contact forms (simple contact pages, support requests)
-
Registration forms (courses, events, internal onboarding)
-
Survey and feedback forms (internal requests, complaint/feedback intake)
-
File upload forms (attachments, documents, media where appropriate)
-
Donation and payment forms (Stripe-enabled forms for payments)
Starter templates are included to help you begin quickly. Examples include appointment booking, course enrollment, donation forms, employee onboarding, equipment checkout requests, bug reports, and more.
Import/Export (Move forms between sites)
You can export forms as JSON and import them on another site. This is helpful when you maintain multiple WordPress sites, build reusable form systems for clients, or want a safe way to version form configurations outside the database.
Integrations and Settings (Where to configure everything)
GriffinForms provides dedicated settings pages and integration screens so you can configure behavior without editing code:
- Choose and configure your anti-spam provider (reCAPTCHA, Turnstile, or hCaptcha) and enable other anti-abuse controls.
- Configure email delivery options (Custom SMTP, SendGrid, Mailgun) so notifications are reliable.
- Configure Stripe for payment forms where enabled.
- Control logging behavior (enable/disable, message types, retention) so you capture what you need without storing unnecessary history.
If you prefer a “start with defaults” approach, you can install and build forms first, then enable only the integrations you need later.
Tips for Better Forms (Practical patterns)
If you are trying to improve form completion rates, these patterns are commonly effective:
-
Use multi-step forms for long workflows: collecting information across steps is easier than one long page.
-
Use conditional logic to reduce noise: show follow-up questions only when they apply.
-
Validate early to prevent low-quality submissions: required rules and sensible limits reduce cleanup work.
-
Use spam protection strategically: enable a CAPTCHA provider only where needed, and add honeypot/rate limiting for public-facing high-traffic forms.
-
Review logs when you change integrations: if you adjust mail delivery or payment settings, logs help confirm what happened during real submissions.
These practices are especially useful for lead-generation contact forms, registration forms, and payment forms where incomplete submissions have real cost.
Submissions and Admin Workflow (Where your data lives)
By default, GriffinForms stores submissions in your WordPress database on your server. File uploads are stored in the WordPress uploads directory. You can view and manage entries inside WordPress:
- Filter and browse submissions from the admin.
- Open a single submission for full detail, including payment context where applicable.
- Review log activity related to a form, submission, or integration when troubleshooting.
For busy sites, the submissions workflow matters as much as the builder. GriffinForms is built so admins can go from “a user reported an issue” to “I can see what happened” quickly by jumping from forms → submissions → logs.
Admin Screens You Will Use
GriffinForms provides dedicated admin screens designed around day-to-day operations:
-
Forms list: manage your form library and copy shortcodes quickly.
-
Submissions: review entries, drill into a single submission, and investigate user journeys.
-
Integrations: configure services like Stripe and mail delivery, and review integration logs.
-
Logs: open a dedicated logs list and a single log view for deeper troubleshooting.
Payments with Stripe (When you need checkout-style forms)
If you enable Stripe, you can create payment forms where users pay as part of a submission. This is useful for:
- donations,
- registrations and paid signups,
- product-like order forms with quantities and totals.
Payment configuration includes both global settings (such as currency) and per-form/per-field configuration where available. GriffinForms also supports a “resume” workflow for payments that are completed later, so you can reconnect users to unfinished payment sessions when needed.
For admins, this means you can review submission context and payment state in one place instead of jumping between multiple dashboards. For users, it means a smoother “review and pay” experience that still fits inside a normal form workflow.
Email Notifications and Delivery
GriffinForms can send form notifications and system emails. You can deliver mail through:
-
Custom SMTP (your mail server provider),
-
SendGrid, or
-
Mailgun.
Delivery and integration changes can also be recorded in logs to help admins diagnose configuration issues.
If you run a high-volume site, using a dedicated mail delivery provider can reduce “lost notification” issues caused by server mail configuration. GriffinForms keeps the configuration centralized so you can update delivery without editing every form.
Spam Protection (CAPTCHA + Anti-Abuse Controls)
Spam is a major reason people search for a better “contact form plugin”. GriffinForms supports multiple anti-spam layers:
-
CAPTCHA provider choice: Google reCAPTCHA (v2/v3), Cloudflare Turnstile, or hCaptcha.
-
Honeypot: a non-intrusive hidden field check.
-
Rate limiting: submission throttling to reduce automated abuse.
You can apply these controls to keep simple contact forms usable while still protecting high-value workflows like file upload forms and payment forms.
Logs and Monitoring (Understand what happened and why)
When logs are enabled, GriffinForms records important activity (submission workflows, integration events, and internal actions) so you can:
- review a timeline of what occurred,
- spot failures quickly,
- understand which integration or subsystem produced an event,
- and see upcoming scheduled actions (jobs) inline where available.
This is especially useful when debugging email delivery, payment events, or anti-spam issues in high-traffic forms.
If you manage multiple forms, logs help you answer questions like:
- “Did the submission reach the server?”
- “Which integration handled the request?”
- “Was an action scheduled for later, and did it complete?”
Performance at Scale (Large submission and log histories)
On sites with large numbers of submissions, admin performance matters. GriffinForms includes tools designed to keep day-to-day work responsive:
- Log views can be loaded in batches to avoid slow admin pages when histories get large.
- Log retention settings let you control how much history is stored.
- Upcoming scheduled actions (jobs) can be shown inline so you can understand what is queued next.
If you primarily build simple contact forms today, these features may not matter immediately. If you run multiple high-traffic forms or rely on integrations (mail delivery, CAPTCHA, payments), they help keep troubleshooting practical over time.
Design Choices (Why this WordPress form builder stays maintainable)
GriffinForms is designed around a few practical choices:
-
Layout-first builder: pages, rows, and columns help you build clean multi-step forms without fighting the editor.
-
Reusable building blocks: reusable fields and templates reduce duplication as your form library grows.
-
Admin-first operations: submissions, logs, and integrations are first-class screens, not hidden behind “debug mode”.
-
Optional external services: you choose when to enable payments or CAPTCHA providers, and you can keep data on your server by default.
These choices help GriffinForms work as both a straightforward contact form plugin and a flexible WordPress form builder for more complex workflows. They also reduce long-term maintenance, because forms stay organized and admin troubleshooting stays centralized. This is especially helpful for teams managing multiple sites and agencies handling client work.
Theme Designer (Make forms match your site)
Your forms should match your brand. The Theme Designer helps you style forms without rewriting templates:
- Start with curated presets.
- Customize typography, spacing, and states.
- Import/export theme configurations so you can reuse designs across sites.
If you manage multiple forms on the same site, a consistent theme reduces “form sprawl” and keeps your contact form plugin looking like part of your website instead of a bolt-on widget.
Themes can be used to standardize how inputs, labels, buttons, and summaries look across different forms, which is especially helpful when you publish multiple multi-step forms across landing pages, documentation, or support flows.
Use GriffinForms Without External Services
GriffinForms stores submissions on your server by default and only uses third-party services when you enable them. For example, you can:
- run forms without payments,
- use WordPress’ default mail delivery or your own SMTP provider,
- and choose whether to enable CAPTCHA.
If you do enable external providers, details are documented in the External Services section below.
Support and Troubleshooting (What to check first)
If something is not working as expected (missing email notifications, payment issues, CAPTCHA failures), these steps often help:
1. Confirm the integration is enabled and the required keys are saved (Stripe/CAPTCHA/mail provider).
2. Submit a quick test submission and then check the relevant logs (if logging is enabled).
3. Check that your server can make outbound HTTPS requests to enabled providers.
4. If you use caching or security plugins, temporarily exclude the form page from aggressive caching/minification and test again.
When sharing logs or screenshots for support, avoid posting secret keys or private customer information.
Roadmap (High-level)
Future updates may expand conditional logic workflows, add more starter templates, and improve admin tooling. Timelines may change.
External Services
GriffinForms optionally uses external services for enhanced functionality:
1.
Google reCAPTCHA
If enabled, sends the reCAPTCHA token and user IP to Google to verify human input.
Service provider: Google LLC
-
Terms
-
Privacy
2.
Stripe
If enabled, payment-related data is sent to Stripe to process transactions (for example, payment intent metadata and transaction context needed to complete payment).
Service provider: Stripe, Inc.
-
Terms
-
Privacy
3.
Cloudflare Turnstile
If enabled, Turnstile tokens and visitor metadata are sent to Cloudflare for bot verification.
Service provider: Cloudflare, Inc.
-
Terms
-
Privacy
4.
hCaptcha
If enabled, the hCaptcha token and user interaction data are sent to hCaptcha for verification.
Service provider: Intuition Machines, Inc. (hCaptcha)
-
Terms
-
Privacy
5.
SendGrid
If configured, emails are routed through SendGrid using email content and metadata.
Service provider: SendGrid (Twilio)
-
Terms
-
Privacy
6.
Mailgun
If configured, outbound emails (recipients, content, metadata) are sent to Mailgun’s REST API for delivery.
Service provider: Mailgun Technologies, Inc.
-
Terms
-
Privacy
2.1.1.0 – 2025-12-19
- Feature: Reusable log timeline with icon-based nodes and shared styling
- Unified
.gf-log-* HTML across submission and integrations views
- Category normalization with icon lookup and fallback support
- Performance: Submission logs now load in batches with background refresh
- AJAX pagination for large log histories
- Upcoming jobs appear in the same timeline when enabled
- Improvement: Cleaner log typography and timeline layout updates
2.1.0.0 – 2025-12-06
Give your forms superpowers with payments, new captchas, and richer integrations.
New
- Payment Field + Stripe: Sell products with quantities, live totals, tax, and a guided review → pay flow. Supports resume/pay-later links so customers can finish payments later.
- Captcha choice: Add Cloudflare Turnstile or hCaptcha alongside reCAPTCHA, with per-form overrides for tricky forms.
- Mailgun email delivery: Configure once in the Integrations modal and use reliable transactional email.
- Integration modal refresh: Cleaner info/config screens with per-form overrides where allowed.
- Payments settings tab: Set global currency, allowed gateways, and tax defaults in one place; per-field tax overrides on payment fields.
- Settings cleanup: Integration-specific options (e.g., captcha/mail) now live in the Integrations modal for a single source of truth.
-
Admin submissions: Payment block shows cart, totals, payment status, and a quick resume link for pending payments.
Improvements
-
Conditional logic understands payment totals, selected products, and chosen gateway, so you can show/hide fields based on cart activity.
- Payment UI inherits your form theme (or a Bootstrap fallback), keeping cards, summaries, and gateway selector on-brand.
- Builder UX: Payment preview only shows your products (no placeholders), SKU generator keeps IDs unique.
- Form builder: Smoother drag/drop and clearer placeholders for pages, rows, columns, and fields, with auto starter rows on new pages and friendlier status updates while you sort.
-
Clearer logging for payment/mail events at the submission level.
Fixes
-
Multi-page payment stability: Stripe Elements remounts cleanly and preserves selected gateway/cart on resume.
- Removed unused Stripe webhook field to avoid confusion until webhooks ship.
- Templates: Fixed several built-in templates where row column widths could exceed the 12-column grid (e.g., 6+6+12). Import now safely auto-splits any malformed rows to prevent layout overflow.
2.0.0.0 – 2025-11-09
Release introduces the GriffinForms Theme Designer, a responsive layout layer, and an updated import/export workflow.
Release introduces the GriffinForms Theme Designer, a responsive layout layer, and an updated import/export workflow.
New
- Theme Designer with 46 handcrafted presets, live modal previews, category filters, and JSON-driven controls for every state (default, hover, focus, active)
- Per-theme assets (CSS + JS) and Google Font registry with automatic enqueueing on both the admin builder and the frontend; falls back to Inter when no theme is applied
- Portable theme import/export using schema metadata, validation, and logging, plus an installer that seeds the new theme collection on activation
-
Responsive layout layer powered by
ResizeObserver that tags each rendered form (gf-xs, gf-sm, gf-md, gf-lg) to automatically restack columns, tighten padding, and reflow checkbox/radio grids and address fields inside narrow containers
Improvements
-
Theme editor now sanitizes custom CSS, normalizes font weights, and removes unsupported keys (e.g., background images on selects) to keep caret icons visible
- Admin builder enqueues theme fonts on load and mirrors frontend typography so previews match what users see live
-
Theme download/upload workflow, duplication logic, and installer now respect the new schema structure (
styles blocks + schema_version metadata)
Fixes
-
Eliminated leftover Bootstrap hover margins on checkbox/radio fields inside certain premium themes
- Prevented duplicate asset loading by injecting inline CSS/JS only when referenced by a theme
- Hardened logging around theme sanitization/import failures for easier troubleshooting
1.6.9.0 – 2025-10-23
Introduced the Recent Entries Widget for real-time submission insights directly in the Form Builder.
New
- Recent Entries Widget displays the 5 most recent submission values for any selected field in the right sidebar
- Click on any entry to open full submission details in a new tab
- Field type icons provide visual indicators (text, email, number, etc.)
- File upload support with file type icons (PDF, image, video) and original filenames
- Blank entry tracking with dash (—) indicator when users skip optional fields
-
Field-specific formatting: email fields as mailto links, formatted dates, terms & conditions acceptance status
Improvements
-
Event-driven widget responds to item-selected/item-deselected events
- Handles hierarchical submission data structure correctly
- Performance optimized for fast loading even with thousands of submissions
1.6.8.0 – 2025-10-20
Added Time field for capturing time values with native HTML5 time picker support.
New
- Time field with configurable 12-hour or 24-hour format
- Min/Max time validation to restrict selectable time ranges
- Pattern matching support for custom time formats
- Native browser time picker for better user experience across devices
-
Full validation support with custom error messages
Improvements
-
Consistent field architecture following existing input field patterns
- Seamless integration with conditional logic system
- Compatible with field iterations and reusability features
1.6.7.0 – 2025-10-20
Rolled out a dedicated Password field with strength feedback, confirmation, and encrypted storage options.
New
- Password field with optional confirmation input, show/hide toggle, and live strength meter powered by WordPress’ passwordStrength API
- Granular validation controls for minimum/maximum length, allowed and required character sets, blocked characters, and strength thresholds
- Custom error messaging with smart tokens ({{min}}, {{max}}, {{strength}}) for every password rule
-
Field setting to store submissions encrypted with AES-256 and reveal them on demand in the submissions viewer via secure AJAX decryption
Improvements
-
Submission viewer adds a masked display for password fields with “Reveal” actions and inline status messaging
-
Admin builder groups password-specific settings into a dedicated panel with concise descriptions and sensible defaults
Fixes
-
Prevents empty confirmation labels/messages when toggling the confirmation option on/off
- Guards against invalid encryption keys and records errors when decryption fails, falling back to masked values
1.6.6.0 – 2025-10-18
Introduced a full Terms & Conditions field to streamline consent workflows.
New
- Terms & Conditions consent field with customizable checkbox, link text, and optional modal display fed by any page or post
- Frontend modal loader that securely fetches and sanitizes WordPress content with nonce validation
-
Conditional Logic evaluators (
is accepted / is not accepted) tailored for the new field
Improvements
-
Builder settings panel groups copy, source, and modal controls into clear sections with polished cards
-
Field summaries and rule previews now render natural phrases for consent checks
Fixes
-
Prevents duplicate paragraph spacing when modal content is loaded from WordPress pages or posts
- Resolves premature “required” errors by syncing checkbox state with the hidden consent value
1.6.5.0 – 2025-10-18
Added a comprehensive Address field with smart sub-fields and regional awareness.
New
- Structured Address field with configurable sub-labels (Address Line 1/2, City, State/Province/Region, Postal/ZIP, Country)
- Country selector with optional pre-filtering to limit available countries
- Automatic state/province dropdowns for many countries (US, CA, GB, IN, FR, DE, IT, ES, CH, AU, NZ, ZA, SA, AE, BR, JP, CN)
- Per-sub-field validation: required flags, character limits, and pattern checks
-
Consistent rendering across builder, preview, and frontend
Improvements
-
Entry viewer groups address parts neatly and supports copy-as-block
- Emails format addresses on multiple lines with clear labels
-
Template examples updated to showcase the new field
Fixes
-
Resolved minor spacing and label alignment issues in multi-column rows that include address parts
1.6.4.0 – 2025-10-18
- Introduced a dedicated Phone field with international flag detection, tel: links in submissions, and granular validation for minimum/maximum digits, formats, extensions, and allowed country codes.
- Updated conditional logic, reusable field listings, and submission views so phone numbers appear consistently everywhere in the admin.
1.6.3.0 – 2025-10-16
- Added five new ready-to-use templates (Marketing Campaign Brief, Travel Authorization Request, Equipment Checkout Request, Grant Application Summary, Community Event Plan) that showcase every GriffinForms field type.
- Standardized dropdown
field_options across templates to GriffinForms’ optgroup structure so select fields always render correctly.
1.6.2.0 – 2025-10-14
Conditional Logic gets smarter, clearer, and more powerful.
New
- Row actions: Target rows in actions in addition to fields/forms
- Visibility: show, hide, add class, remove class
- Heading: change to (supports variables), add/remove class on the row heading
- Form actions:
- Submit button label: change to (supports variables); safely stores and restores the original label; applies across pages
- Submit button state: enabled/disabled with smart override logic; respects original disabled state when no rules match
- User time conditions:
- New item: the user → browser time
- Evaluators: before/after
-
Input: single dropdown with 30‑minute increments (00:00 AM → 11:30 PM), evaluated against the user’s local device time
Rule summaries (UX)
-
Natural phrasing for user time conditions, e.g., “the user browser time is later than 6:00 PM”
- Improved message phrasing for form/field messages:
- Form: “Show warning message above the form with content "…"”
- Field: “Show warning message above the Email field with content "…"”
- Clearer class ops: “Add class bg-light to the Partnership Proposal row heading”
- Lowercase verbs in mid‑sentence clause summaries for smooth reading
-
Fixed a notice where an internal variable could be undefined during summary rendering
Developer notes
-
Added reusable helper to format minutes to localized times in summaries
- Introduced “user” condition item with dedicated attribute/evaluator plumbing
- Safe, incremental refactors in RuleSummaries for readability
1.6.1.0 – 2025-10-14
Patch release focused on stabilizing Templates and polishing preview UI.
Added new templates
Templates Workflow Stabilization
- Render template previews server-side in TemplateCard; remove preview AJAX endpoints and nonces
- Delete client preview loader; no per-card/batch preview requests
- Fix DOM injection: clear/append only the pane’s top-level grid row (avoid nested .row inside previews)
-
Escape headings/descriptions in TemplatePreview to avoid broken markup
Preview UI Consistency
-
Introduce utility classes on preview controls
Misc
-
Minor refactors and safety guards in Create Form modal
1.6.0.0 – 2025-09-12
- 🚀 Brought Conditional Logic to life with animated connectors, shimmering placeholders, and a guided overlay that makes complex rules effortless.
- Added a dynamic variable helper with smart validation safeguards so you can target fields confidently (even when forms are mid-redesign).
- Refined rule summaries with natural language (“Show the Email field”) and clearer badges when multiple conditions or actions apply.
- Expanded utility classes (
gf-text-*) and polished empty states, buttons, and helper copy to keep the new experience cohesive.
- Numerous UX refinements: save buttons now respect availability, connectors wait for AJAX completion, and the modal feels faster and smoother.
1.5.0.0 – 2025-09-10
- Introduced dedicated Attachments view in admin:
- Full table listing of all uploaded files from form submissions
- File type icons with subtle animations and MIME badges
- Filters for type, storage mode (private/media library), file size thresholds, and date ranges
- Status tabs (All, Temporary, Attached) with counts
- Row actions to view files or linked submissions in new tabs
- Polished layout aligned with WordPress admin UI
- General refinements for consistency and usability across the admin
1.4.0.0 – 2025-09-08
- Introduced full-featured Logging system:
- Admin can enable/disable native logging with a single toggle
- Choose which log types (success, error, info, warning) are recorded
- Set retention policy: keep the latest 1,000 – 100,000 entries or keep all
- Daily cleanup scheduler + opportunistic pruning to prevent database bloat
- Logs list screen with filters for type, item, and date ranges
- Single log view with icons, linked items, and WordPress-formatted timestamps
- Helpful admin notices if logging is disabled or partially limited
- Improved error handling in settings save routines to properly handle arrays and serialized options
- Added “Change log settings” link in notices for quick access
- Introduced default logging options on plugin activation, respecting any explicit disables
- General polish across admin UI for consistent notices and headings
1.3.0.0 – 2025-08-30
- Introduced secure File Upload field with per-field limits, validations, and image constraints
- Added global File Storage settings with retention policies, deletion options, and storage threshold alerts
- Implemented Rate Limiter system for spam/bot protection on submissions and uploads
- Added admin-side file icons, list integration, and attachment management tools
- Internal optimizations and logging improvements
- Disclaimer: This release introduces a large new codebase for file uploads, storage management, and rate limiting. While tested internally, further testing in live environments is advised before deploying to production-critical sites.
1.2.2.0 – 2025-08-15
- Added 4 new ready-to-use templates: Webinar Registration, Workshop Signup, Technical Support Request, and Bug Report Form
- Minor CSS adjustments to Create Form modal for improved alignment
1.2.1.0 – 2025-08-10
- Added 3 new ready-to-use templates: Simple Contact Form, Request a Quote Form, and Internship Application Form
- General stability improvements during template import
1.2.0.0 – 2025-06-11
- Added fullscreen builder mode with optional compact layout toggle
- Menu redesign with grouped items, descriptions, and icons
- Introduced new Form Tree widget in builder for visualizing page, row, column, and field hierarchy
- Toggle tree nodes with intuitive chevron-based expand/collapse UI
- Highlights active form elements and syncs tree scroll with form layout
- Added row/column counters and width indicators for clarity
- Gracefully handles AJAX loading with error messaging and placeholders
- Improved accessibility and layout polish in dropdown menus
- Minor internal cleanup and performance optimizations
1.1.1.0 – 2025-05-29
- Added 5 new form templates including appointment booking, course enrollment, and donation forms
- Enhanced folder management with icon selection and improved folder display in lists
- Refined form preview rendering and placeholder handling
- Improved textarea auto-resize behavior and UI styling consistency
- Various frontend and backend refinements
1.1.0.0 – 2025-05-23
- Improved UTF-8 character support in submissions
- Updated URL field validation
- Adjusted reCAPTCHA v2 behavior for multi-page forms
- Disabled logging temporarily
- Multiple backend fixes and enhancements
- Bumped tested version to WP 6.8
1.0.1.0
- Added uninstall cleanup routine
- Enhanced UI and usability
1.0.0
- Initial release
- Core form builder, multi-page layout, submissions, validations, reusable fields, reCAPTCHA, and SendGrid