=== FormGlut – Drag & Drop Form Builder for Contact, Multi-Step, Payment & Calculator Forms ===
Contributors: appglut
Tags: form builder, contact form, multi-step form, payment form, conditional logic
Requires at least: 5.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.4.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Drag-and-drop forms with 50+ fields and layouts, multi-step, conditional logic, file uploads, calculations, Stripe payments and captchas.

== Description ==

FormGlut is a drag-and-drop form builder for WordPress. Build contact forms, multi-step forms, surveys, order and payment forms, calculators, registrations and job applications, then manage every entry from one clean admin screen.

What you see in the editor is what your visitors get: the editor draws each field with the same code and styles as the published form, on desktop, tablet and mobile.

= Everything below is included, free =

* **50+ fields and layouts**: 46 field types plus one- to six-column layouts
* **Multi-step forms** with a numbered or bar progress indicator and a check on every step
* **Conditional logic** to show or hide fields and whole column rows
* **File uploads** with type, size and count limits, sent as email attachments if you like
* **Calculations** for totals, prices and quotes, worked out again on the server
* **Stripe card payments** with fixed prices, visitor-entered amounts or a calculated total
* **Spam protection**: honeypot, math captcha, Google reCAPTCHA (v2 and v3), hCaptcha, Cloudflare Turnstile, Akismet, blocked words, rate limits and a minimum fill time
* **Notifications** to several people, plus a confirmation email to the visitor
* **Entries** with search, filters, star, read / unread, spam, trash, notes, resend, print and CSV export
* **Integrations**: webhooks (Zapier, Make, n8n and others) and Slack
* **8 ready-made templates** and **migration** of forms and entries from other form plugins
* **Data & Logs**: export / import, activity, API and email logs, system status and maintenance tools

= Fields =

**General:** text, email, text area, dropdown, multiple select, number, radio buttons, checkboxes, website URL, phone (with country code), date and time, time, date range, name, address, country, currency, percentage, spinner, mask input, toggle, heading and custom HTML.

**Advanced:** password (strength meter, confirmation), hidden field, section break (collapsible), star rating, rich text, unique ID, range slider, color picker, file upload, terms and conditions, GDPR agreement, shortcode, action hook, calculation and custom submit button.

**Layout:** one, two, three, four, five and six columns, step break (multi-step) and reset button.

**Payment:** payment item and card payment (Stripe).

**Security:** math captcha, reCAPTCHA, hCaptcha and Turnstile.

= Field options =

* Label, placeholder, default value, help text (tooltip, above or below), prefix and suffix
* Required, custom validation message, unique values, input masks, custom validation rules (letters, digits, postcode or your own pattern), character and word limits with a live counter, selection limits
* Fill a field automatically from the page address, the logged-in user, a cookie or the current post
* Show a field to everyone, only logged-in users, only visitors or only administrators
* Style every field: label placement and width, field width, padding, margin, border radius, colors and CSS classes
* Customizable submit button: text, text while sending, size, alignment, colors, radius, font and height

= Form settings (per form) =

* **Confirmation:** show a message with smart tags, or redirect to a page, post or address with values from the form; clear, hide or keep the form after sending
* **Notifications:** several recipients, CC, BCC, from name and email, reply-to, subject and message with smart tags, uploaded files as attachments, and a confirmation email to the visitor
* **Restrictions:** logged-in users only, entry limit, open and close dates, reject empty submissions, one entry per IP address
* **Spam and privacy:** honeypot, Akismet, blocked words, submissions per hour, minimum time to fill, same-site check, choose whether to save entries or IP addresses, and delete entries after a number of days
* **Layout and CSS:** form width and alignment, custom CSS, and JavaScript to run after a successful submission
* **Multi-step:** progress style, first step title, check each step before moving on
* **Integrations:** webhook (JSON or form data) and Slack
* **Analytics:** count form views for the views and conversion figures

= Forms and entries =

* **All Forms:** search by name or ID, filter by status and date, sort by views, entries and conversion, templates, duplicate, activate, close, import, export and delete
* **Entries:** search (also accented text and entry IDs), filter by form, status and date, read and unread, star, spam, trash and restore, bulk actions, notes, reply by email, resend notifications, print and CSV export with readable answers
* Closed and scheduled forms show a message instead of the form

= Data and logs =

* Export and import forms, with or without their entries
* Migrate forms and entries from WPForms, Fluent Forms, Ninja Forms, Forminator, Formidable, MetForm, SureForms, Contact Form 7 and others
* Activity log, API log (requests to other services) and email log with a test-email sender
* System status with health checks, and maintenance tasks
* Works with the WordPress personal data export and erase tools

= Global settings =

* Default form status, whether to store entries, admin notification email, sender name and email, subject template, success and error messages, honeypot, captcha keys, Stripe keys and currency, and removing all data when the plugin is deleted

= Developer friendly =

* `[formglut id="X"]` shortcode and a FormGlut block
* Shortcode and action hook fields to place your own output inside a form
* `formglut_entry_submitted` action after every accepted submission

== External services ==

FormGlut sends data to another service only when you set it up.

**Webhooks.** If you turn on "Send entries to a webhook" for a form, each submission is posted to the web address you enter (for example a Zapier, Make or n8n address). The data sent is the form name, entry ID, time, page address and the submitted answers. The service you choose is responsible for what it does with them.

**Slack.** If you turn on "Post new entries to Slack" for a form, a message with the submitted answers is posted to the Slack incoming webhook address you enter (`https://hooks.slack.com/…`). [Terms](https://slack.com/terms-of-service) | [Privacy](https://slack.com/trust/privacy/privacy-policy)

**Akismet.** If you turn on "Check with Akismet" for a form and the Akismet plugin is active with an API key, the submitted answers, the visitor's IP address and browser, and the page address are sent to Akismet to check for spam. [Terms](https://automattic.com/terms-of-service/) | [Privacy](https://automattic.com/privacy/)

**Google reCAPTCHA.** If you add your reCAPTCHA keys in Global Settings and put a reCAPTCHA field on a form (or turn on "Protect every form"), the page loads Google's reCAPTCHA script, which collects information about the visitor's browser and behaviour, and the form sends the reCAPTCHA token and the visitor's IP address to Google to check it. [Terms](https://policies.google.com/terms) | [Privacy](https://policies.google.com/privacy)

**hCaptcha.** If you add your hCaptcha keys and put an hCaptcha field on a form, the page loads the hCaptcha widget and the form sends the hCaptcha token and the visitor's IP address to hCaptcha to check it. [Terms](https://www.hcaptcha.com/terms) | [Privacy](https://www.hcaptcha.com/privacy)

**Cloudflare Turnstile.** If you add your Turnstile keys and put a Turnstile field on a form, the page loads the Turnstile widget from Cloudflare and the form sends the Turnstile token and the visitor's IP address to Cloudflare to check it. [Terms](https://www.cloudflare.com/website-terms/) | [Privacy](https://www.cloudflare.com/privacypolicy/)

**Stripe.** If you add your Stripe keys in Global Settings and put a Card Payment field on a form, the page loads Stripe.js and the card details go directly from the visitor's browser to Stripe. The site sends Stripe the amount, currency, a description and the form ID to create the payment, and reads the payment status to confirm it. [Terms](https://stripe.com/legal/ssa) | [Privacy](https://stripe.com/privacy)

== Credits ==

The admin screens use the Inter font by Rasmus Andersson (SIL Open Font License 1.1), included with the plugin. Calendar pickers use flatpickr (MIT License), included with the plugin.

== Installation ==

1. Upload the `formglut` folder to `/wp-content/plugins/`.
2. Activate the plugin through the Plugins menu in WordPress.
3. Navigate to **FormGlut** in the admin menu to start building forms.

== Frequently Asked Questions ==

= How do I add a form to a page? =

Use the shortcode `[formglut id="X"]` where X is your form ID, or add the FormGlut block in the block editor.

= Can I move my forms to another site? =

Yes. Use **Data & Logs → Export forms** to download a file (with or without entries) and **Import forms** on the other site.

= Where is the email log? =

Under **Data & Logs → Email log**. Turn it on there to record recipient, subject and status of the last 50 emails.

= Does FormGlut work with any theme? =

Yes, FormGlut is designed to work with any properly coded WordPress theme.

= Can I bring my forms from another form plugin? =

Yes. Use **Import → From another form plugin…** on the All Forms page (or **Data & Logs → Migration**) to copy forms, and optionally their entries, from WPForms, Fluent Forms, Ninja Forms, Forminator, Contact Form 7 and others.

= Are multi-step forms, conditional logic, file uploads and payments free? =

Yes. Every field and feature described on this page is included in the free plugin.

= Does FormGlut work with page builders and block themes? =

Yes. Use the FormGlut block, or the shortcode in any page builder's shortcode or text widget. The form keeps its own look in block themes and classic themes.

= Will FormGlut slow down my website? =

No. FormGlut only loads its scripts and styles on pages that contain a FormGlut form.

== Changelog ==

= 1.4.0 =
* All fields are available: 45+ field types including name, address, date and time, file upload, star rating, rich text, calculation, payment and captcha fields, columns and multi-step forms
* The editor canvas now uses the same markup and stylesheet as the published form, so every field option and style option looks the same in the editor, the preview and on your site
* New: Stripe card payments, reCAPTCHA, hCaptcha, Turnstile and math captcha, form templates, migration from other form plugins
* Conditional logic also works for checkbox fields, fields with a custom name, toggles, colour swatches and calculations, and for whole column rows
* Emails, entries, smart tags and CSV show option labels and readable values instead of stored values
* Uploaded files are deleted with their entry; upload failures are reported instead of being lost
* Fixes: focus and error borders on the live form, form width and alignment in block themes, form titles with "&" or quotes, date range separator, Slack message formatting, Bootstrap classes on date pickers, expired-page message, captcha with card payments
* Security: visitor answers are escaped in HTML emails and confirmation messages; reCAPTCHA v3 checks the action; card payments only (no redirect methods)
* The admin font is included with the plugin instead of loading from Google Fonts

= 1.3.1 =
* Entry page: the paper-plane button now sends the confirmation email to the address on the entry (even when the automatic confirmation is off); a small menu next to it sends the admin notification again. The button is disabled when the entry has no email address.

= 1.3.0 =
* New per-form settings: Confirmation, Notifications, Restrictions, Spam & privacy, Layout & CSS, Integrations (webhook, Slack) and Entries & analytics
* Ten field types with complete options, input masks, custom validation rules, prefill from URL, user, cookie or post, and conditional logic
* Entries: Trash, Spam and Restore, notes, reply by email, resend notification, CSV export, and search that finds accented text and entry IDs
* All Forms: sortable views, entries and conversion, search by ID, close forms, accurate counts, and deleting a form also deletes its uploaded files
* Data & Logs: export and import forms with entries, activity, API and email logs, system status and maintenance tasks
* Global Settings: default form status, several admin notification addresses, messages with line breaks, and complete data removal on uninstall
* Form views are counted by the browser, so cached pages count correctly
* Closed forms show a message instead of disappearing
* Stronger spam checks: whole-word blocked words, fairer rate limit, same-site check that works with hidden referrers
* Fixes: saving Global Settings no longer reports a failure when nothing changed; Hide Field keeps its value; "Validate as unique" finds duplicates anywhere in an entry
* Security: escaped admin output, Slack messages escape visitor text, sender names cannot inject email headers
* Requires WordPress 5.3 or later

= 1.2.0 =
* Complete rebuild with modern React-based admin UI
* New drag-and-drop form editor with live preview
* 17 field types supported
* Entry management with read/unread status, starring, and filtering
* Email notifications with customizable sender and subject
* reCAPTCHA v3 and honeypot spam protection
* Form analytics (views, submissions, conversion rates)
* Device preview (desktop, tablet, mobile)
* Customizable field and button styling
* AJAX form submission

= 1.1.2 =
* Updated plugin name to comply with WordPress directory guidelines
* Removed marketing claims and superlatives from readme description
* Improved description language to meet WordPress standards

= 1.1.1 =
* Name Field And Section Break Fields Improved

= 1.1.0 =
* Appearance Adjusted

= 1.0.9 =
* Some Code Adjusted

= 1.0.8 =
* Bug Adjusted

= 1.0.7 =
* Some Code Adjusted

= 1.0.6 =
* Information Updated

= 1.0.5 =
* Some Information Updated

= 1.0.4 =
* Some Information Updated

= 1.0.3 =
* Some Information Updated

= 1.0.2 =
* Fixed Some Bugs, added some features

= 1.0.1 =
* Fixed Some Bugs, added some features

= 1.0.0 =
* Initial release

== Upgrade Notice ==
= 1.4.0 =
Every field type, columns, multi-step forms, payments, captchas and integrations are now available, and the editor shows forms exactly as they appear on your site.

= 1.3.1 =
The resend button on an entry now emails the visitor; the admin notification has its own menu item.

= 1.3.0 =
Adds per-form settings, a Trash for entries and new Data & Logs tools. Existing forms and entries are kept. Requires WordPress 5.3 or later.

= 1.2.0 =
Major update with a completely rebuilt admin interface. Your existing forms and entries are preserved.
