Generate a multi-step form plugin for WordPress
Long forms kill conversion. The fix everyone reaches for is a multi-step form: show two or three fields at a time, move forward with a progress bar, and only ask the hard questions once the visitor is invested.
The plugins that ship this (Gravity Forms with a paid add-on, WPForms Pro, Formidable) are solid but you pay annually and the logic is locked inside their builder. If you want a step flow tuned to your specific funnel — including save-and-resume by magic link — a small custom plugin is cleaner.
Why generate it instead of installing an existing plugin?
Gravity Forms Conversational is €199/year on top of Gravity, WPForms Pro starts at €199 year one and auto-renews higher. Those prices are fine if you lean on every feature; if you just need three steps with one branching rule it feels like a tax.
A generated plugin renders the steps with minimal JavaScript, posts to admin-ajax or the REST API, validates each step server-side, and stores partial submissions keyed by a UUID stamped in a cookie. You own the markup, so styling matches your theme exactly without fighting a builder CSS layer.
Where it wins most: save-and-resume. On step 2 we ask for email; if the visitor closes the tab, a cron 30 minutes later sends them a one-click resume link. That single feature usually recovers 10-20% of drop-offs, and most off-the-shelf form plugins either do not offer it or gate it behind a higher tier.
Example prompt
This is the kind of description that generates this plugin. You can start from it and tweak whatever you need before hitting generate.
Plugin name: Acme Onboarding Form
Three steps:
- Step 1: full name, email (required).
- Step 2: company, team size (select: 1-5, 6-20, 21-100, 100+), use case (textarea).
- Step 3: budget range (radio), desired start date (date picker), agree to terms.
Progress bar on top with percentage and step labels.
Next/Previous buttons. Disable Next until required fields valid.
Validation server-side per step via /wp-json/acme/v1/form/step POST.
Save-and-resume:
- After step 1 email captured, store partial in wp_options keyed by UUID in a cookie.
- WP Cron every 30 min: if partial is 30-60 min old and not completed, email a resume link https://site.com/onboarding?resume=<uuid>.
- On resume, prefill from stored partial.
Final submit: save to custom table wp_acme_submissions, send admin email, redirect to /thanks.
Anti-bot: honeypot field + reCAPTCHA v3 on final step (site key in settings).What the generated plugin typically includes
- Shortcode [acme_form] that renders the whole flow
- Vanilla JS (no jQuery dependency) handling step transitions
- REST endpoints per step with nonce + per-step validation
- Custom table for completed submissions, option-backed store for partials
- WP Cron resume-link email with signed URL (UUID + HMAC)
- Admin page listing submissions with CSV export
- Honeypot and optional reCAPTCHA v3 on the last step
Steps, fields, branching logic, email copy and the resume window are all defined by your prompt. If you want Stripe at the end instead of a confirmation page, describe it and the same plugin ships with a payment step.
Frequently asked questions
Does it work without JavaScript?
It degrades to a single-page form rendered server-side if JS is disabled. You still get the data, you just lose the step animation.
Can steps be conditional?
Yes. Describe the rule in the prompt ("if team size > 20, skip step 3") and the generated logic lives in PHP so the visitor cannot bypass it by tweaking the client.
How are partials cleaned up?
A daily cron deletes partials older than 14 days unless you pick a different retention. GDPR-wise this keeps the footprint small.