Skip to main content
Latest — v4.3.1 · 20% off with code CFLAUNCH

Every premium WordPress form feature. No add⁠-⁠on tax.

Battle-tested on client sites for years, now public. File uploads, webhooks, Mailchimp, MailerPress, submissions, reCAPTCHA, Turnstile, payments via Stripe / PayPal / Razorpay / Polar / FluentCart, and a headless REST embed for Astro and Next.js — bundled in one plugin, one license for every site you’ll ever build. Most forms plugins hide the good parts behind a $199/year pricing ladder. Core Forms doesn’t.

Unlimited sites Every premium feature 14-day refund $59/yr or $249 once
Core Forms visual field builder in the WordPress admin

Built by an experienced WordPress developer

Experienced WordPress Developer & Webperf Advocate 8,000+ active installs across free plugins Indie, lifetime-supported
Everything in the box

All the premium features, none of the add-on tax

Most WordPress forms plugins hide the good parts behind a pricing ladder. Core Forms ships every feature in one plugin, one license, one payment.

Write in HTML or build visually

Use the drag-and-drop field builder or drop in your own HTML — the markup you ship is exactly the markup you get.

18 accessible starter templates

Pick a starting point — contact, newsletter, RSVP, support, booking, lead capture, six payment-ready templates — and ship in under a minute.

AJAX submissions

No page reloads, no bloat. A single small JS file handles validation, submission, and success states.

Gutenberg block + shortcode

Insert forms with the native Gutenberg block, or anywhere shortcodes work with [cf_form slug="your-form"].

Fullscreen forms (Typeform-style)

Show one question at a time, full-bleed, with smooth animations and a progress bar. No third-party redirect, no per-response pricing.

Conditional fields & actions

Show, hide, and skip fields or actions based on values with simple data-show-if attributes.

Data variables

Use {{user.email}}, [field_name], {{post.ID}} and URL params in forms, emails, redirects and webhooks.

File uploads

Let users attach files out of the box — per-field size limits, allowed types, storage controls. No add-on needed.

Spam protection stack

reCAPTCHA v3, hCaptcha, Cloudflare Turnstile, Akismet, honeypot, and math captcha. Mix and match per form.

Rate limiting & submission caps

Cap submissions per IP per hour, total submissions per form, or block duplicates within a session.

Submissions inbox

Read, reply, archive and search submissions in WordPress. New, read, replied, archived workflow.

CSV export & email logs

Export any submissions table to CSV. Track email delivery with a built-in email log.

Save & resume drafts

Long forms? Let users save progress and return via a unique link. Drafts auto-expire so they do not pile up.

Emails & auto-responders

Send rich HTML notifications and automated replies with field merges, conditional logic, and email logs.

Webhooks & REST API

Pipe form data to any external service. Manage submissions programmatically via the WordPress REST API.

Take payments on submission

Stripe, PayPal, Razorpay, Polar and FluentCart — connect once globally, then flip a per-form toggle.

FluentCart hosted checkout

Hand a form submission off to FluentCart's checkout for products and subscriptions, on free or Pro.

Mailchimp, MailerPress, FluentCRM + 25 more

Subscribe form users to lists, push to CRMs, post to Slack/Discord, drop into Notion or Airtable, fire Zapier or Make.

Headless / REST submissions

Render and submit forms from Astro, Next.js or any non-WordPress site. Site-wide API key + drop-in widget.

Form scheduling

Open and close forms by date, day-of-week and time-of-day. Overnight windows supported.

WCAG 2.2 accessibility

Every starter template ships WCAG-compliant — labels, fieldsets, autocomplete, aria-required. Forms work for everyone.

Built-in polls

Quick yes/no or multi-option polls with vote storage, single-vote-per-IP, and results visualization.

Plays well with others

Every integration you need, built in

Core Forms ships with first-class support for the services WordPress site owners actually use. No Zapier workarounds, no premium add-ons — wire up email, CRM and spam protection in minutes.

Browse all integrations →

Plus anything else via webhooks and the REST API — Zapier, Make, n8n, Slack, Discord, Airtable, Notion, your custom Laravel app. If it speaks HTTP, Core Forms can talk to it.

Product tour

Designed to feel like WordPress itself

No unfamiliar dashboards, no second login. Core Forms drops into your WordPress admin and uses the UI patterns you already know.

Core Forms field editor in the WordPress admin
Add New Form template gallery
Per-form Payment tab with provider picker
Per-form Headless tab with embed snippets
Per-form Submissions list with Inbox + Spam filters
Cross-form submissions inbox
Per-form Settings tab with accordion sections
Actions tab with configured integrations
What’s new

Shipping in the open

Core Forms ships small, focused releases — most weeks. Every release is free for existing license holders, forever. Here’s what landed recently.

v4.3.1 Latest May 22, 2026

License & updates now flow through CF Licenser on core-forms.com — existing keys carry over unchanged

  • Licensing — drop-in replacement for the previous FluentCart-backed license manager. License keys, options shape, and admin UI stay compatible so 4.3.0 installs upgrade with no manual re-entry.
  • Licensing — heartbeat every 6 hours instead of weekly. Update checks also use a 6-hour transient cache, so the "Check for updates now" button always returns a fresh answer when you actually want one.
  • Licensing — update downloads are SHA-256 verified against the server-issued hash before WordPress unpacks the zip. Tampered downloads are rejected rather than installed.
  • Licensing — server is multi-product-ready and provider-agnostic from day one (PayPal + Polar wired today; PayPal/Stripe/etc. drop in via a Provider interface).
  • Build — fixed a stale phpstan baseline entry for DAY_IN_SECONDS that the new manager no longer references.
Full notes on the changelog →
v4.3.0 May 17, 2026

Polls rework + Gravity / WPForms / Fluent importers + conditional emails (per recipient)

  • Polls — full rework. Tabbed editor (Question / Settings / Schedule / Embed / Results), drag-to-reorder options, "Other" write-in toggle, Duplicate row action.
  • Polls — vote integrity rewrite. Every vote stores a voter_hash (poll + IP + UA + cookie + user) and dedupe queries that single column regardless of mode. Cookie set on render with SameSite=Lax; Secure; persists across AJAX. vote_limit=user rejects anonymous voters at submit. Honeypot on by default, per-IP rate limiter (12/minute).
  • Polls — scheduling (start date + hourly cf_poll_auto_close cron). Post-close behavior: show results / hide / redirect.
  • Polls — change-vote window (per-poll, in minutes) re-renders the form pre-checked so the same voter can update their selection.
  • Polls — Gutenberg block (core-forms/poll). Picker + display-mode; editor preview matches the front of the site (stylesheet registered as both style and editor_style).
  • Polls — opt-in live results (15s polling, pauses on hidden tab); bar / columns / percent result styles.
  • Polls — container-query-driven adaptive layout (cqi units + clamp). Card tunes padding, radius, type scale to its container width, not the viewport. Options auto-flow into multi-column grid in wide embeds.
  • Polls — REST API. Public GET /cf/v1/polls/{id}/results; authenticated GET /cf/v1/polls, /polls/{id}, /polls/{id}/analytics (per-day series).
  • Polls — per-poll analytics screen + CSV export (option label, value, voter hash, IP, user, timestamp, referrer).
  • Polls — accessibility pass. <fieldset><legend>, role="progressbar" with aria-valuenow, role="status" aria-live="polite", focus moves to result heading on submit, prefers-reduced-motion respected.
  • Polls — jQuery removed from poll frontend and admin scripts.
  • Polls — schema migration (cf_db_version → 4.3.0). Adds type / starts_at / allow_other / post_close_behavior / redirect_url / enable_live_results / change_vote_window on wp_cf_polls; option_value / voter_hash / referrer on wp_cf_poll_votes plus a (poll_id, voter_hash) composite index. Existing rows backfilled so historical dedupe keeps working.
  • Importer — Gravity Forms. GFAPI-driven, converts ~14 field types to HTML; every notification becomes a Send Email action with per-recipient conditions when the source notification had its own conditional-logic block; default confirmation maps to the success message / redirect URL; field-level conditional logic carries across as data-show-if / data-hide-if. Field IDs resolve through a per-form name map so condition references stay valid.
  • Importer — WPForms (Lite + Pro). Decodes the JSON form definition, maps notifications, optionally imports stored entries from wp_wpforms_entries (Pro) into wp_cf_submissions so admin history survives the cutover. Success notice shows the entries-imported count.
  • Importer — Fluent Forms. Reads wp_fluentform_forms + wp_fluentform_form_meta directly (no Fluent API dependency, works even when the source plugin is deactivated). Maps fields, notifications, webhooks, and conditional logic.
  • Importer extension point. CF7Migration's source picker now driven by cf_import_sources filter + cf_import_render_section action; three new migrators plug in via a shared BaseMigration abstract class. Field names always carry an _<id> suffix so two source fields sharing a label produce distinct names.
  • Send Email — conditional emails (per recipient). New "Recipient routes" repeater on the Send Email action: each route has a field + operator + value + recipient; the first matching route's recipient overrides the default To. The existing action-level conditions block still gates whether the action runs at all; routes only re-target where it sends.
  • Fix: Duplicate row action on the forms list. Clicking Duplicate used to drop the user into the editor for the original form because the URL carries a form_id and the overview page short-circuited into the editor before the list table's single-row handler could run.
  • ESLint inheritance cleared (~80 prettier autofixes + targeted eqeqeq / no-unsafe-wp-apis / no-noninteractive-element-interactions fixes). PHPStan baseline regenerated at level 5. PHP 8.1 / 8.2 / 8.3 unit tests green.
Full notes on the changelog →
v4.2.10 May 16, 2026

Fix: Duplicate row action on the forms list now actually duplicates the form

  • Clicking Duplicate on the forms list used to drop the user into the editor for the original form because the duplicate URL carries a form_id and the overview page short-circuited into the editor before the list table could run its single-row action handler. The overview now processes action=duplicate_single first, clones the form, and redirects back to the list.
Full notes on the changelog →
v4.2.9 May 15, 2026

Container builder polish — popover redesign, single-column default, real-time preview

  • Add Field popover redesigned — fixed 360px panel with a 4-column icon grid, header bar with title, and a dedicated close button.
  • Popover now dismisses on outside-click or Escape — no more stranded popovers floating over the canvas.
  • Containers default to a single-column wrapper (cols_desktop: 1, tablet/mobile inherit) — authors opt into a grid via the Layout panel when they actually want one.
  • Column changes preview in real time on the canvas — .cf-row grid rules are duplicated locally so the preview updates immediately, no front-end stylesheet dependency.
  • Better drop-target affordance — empty containers and group bodies show a dashed outline at rest and a solid blue highlight while dragging.
  • Cleared two pre-existing PHPStan errors (current_time() bool arg, WP_Screen::$id non-nullable property) that were blocking the release pipeline.
Full notes on the changelog →

View the full changelog → See what’s shipping next →

Simple pricing

Two ways to buy. Both unlimited.

Same plugin, same features, same support — pick the cadence that suits you. Every plan covers unlimited sites, every premium feature, and a 14-day no-questions refund.

20% off Public launch offer — apply code CFLAUNCH at checkout.

Yearly

Lower entry price · renews annually

$59 / year

$59 $47/yr with code CFLAUNCH

  • Unlimited sites — personal & client
  • Every premium feature included — no add-ons
  • All integrations: Mailchimp, MailerPress, FluentCRM, Emailit, HubSpot…
  • Submissions inbox, replies, exports, email logs
  • reCAPTCHA v3, hCaptcha, Turnstile, Akismet
  • Updates and priority email support while subscribed
  • 14-day money-back guarantee
Get Yearly — $59/yr →

per year · renews annually

Both plans include every integration on this site, every premium feature, and unlimited sites. Switching plans later? Email us — we’ll prorate.

Gaurav Tiwari, creator of Core Forms, at work
Built by Gaurav Tiwari

An indie developer and web performance advocate.

I’m Gaurav — I’ve been building with WordPress since 2008, shipping free plugins used on 8,000+ active sites, and obsessing over web performance the whole way. I’ve worked with companies like IBM, Adobe, HubSpot, Monday and Canva on content and developer tooling, but my favorite thing is still sitting down and shipping small, fast, honest software.

Core Forms is a forms plugin I wanted for myself: no add-on upsells, no bloat, a codebase I’d be happy to read, and an admin UI that feels like WordPress. Buy it and you’re supporting indie software — and you’ll always reach me personally for support at gaurav@gauravtiwari.org.

More free plugins

My other WordPress plugins on WordPress.org

Free, lightweight, actively maintained. Try any of these alongside Core Forms — they play nicely together.

Dynamic Month & Year into Posts

Dynamic shortcodes for dates, years, months, age calculations, seasons and countdowns — in content, titles and meta.

8,000+ active installs
View on WordPress.org →

GT Link Manager

Fast, free branded link manager with custom DB tables, early redirects, CSV import/export and block editor integration.

100+ active installs
View on WordPress.org →

Dynamic Functionalities

Replace 5+ plugins with one lightweight toolkit. 16 modules for performance, security, SEO, redirects and content management.

Fresh release
View on WordPress.org →

Formatting Extender

Extends the Block Editor formatting toolbar with inline controls — badges, highlights, and more.

Free on WordPress.org
View on WordPress.org →

Beautiful Recent Posts Widget

A clean, minimal sidebar widget to showcase your recent articles in a beautiful way.

Free on WordPress.org
View on WordPress.org →
Questions?

Frequently asked

Do I have to buy add-ons for file uploads, webhooks or Mailchimp?
No. Every premium feature — file uploads, webhooks, Mailchimp, MailerPress, Emailit, submission limits, logged-in forms, data management — is bundled with your purchase. One price, everything included.
How many sites can I use it on?
Unlimited. Both the Yearly and the Lifetime plan cover every personal and client site, with no per-site activation count.
What’s the difference between Yearly and Lifetime?
Both plans give you the exact same plugin, every premium feature, every integration, and unlimited sites. Yearly ($59/year) renews annually and is the lower-friction way to start. Lifetime ($249 one-time) is a single payment, every update forever, no renewals — it pays for itself after about four years vs. Yearly. Pick whichever fits your cashflow.
Is there a discount?
Yes — use code CFLAUNCH at checkout for 20% off either plan. That brings Yearly to $47/year and Lifetime to $199 once.
What’s your refund policy?
14 days, no questions asked. If Core Forms isn’t the right fit, email us and we’ll refund you — no forms to fill out.
Can my forms take payments?
Yes. Connect Stripe, PayPal, Razorpay or Polar.sh once under Settings → Payments, then flip a per-form toggle. Submissions stay in <em>pending payment</em> until the gateway’s webhook confirms — only then do email and integration actions fire. Six payment-ready starting points (one-time, donation, subscription, event ticket, FluentCart product, INR Razorpay) ship in the box.
Does Core Forms work with FluentCart?
Yes — Core Forms hands form submissions off to FluentCart’s checkout for any product variation, free or Pro, one-time or subscription. Address fields collected on the form prefill the FluentCart checkout (and feed its tax engine), and paid orders flip the submission to <em>paid</em> automatically through fluent_cart/order_paid_done.
Can I use Core Forms on Astro, Next.js or a non-WordPress site?
Yes. Set a site-wide API key under Settings → Headless, flip the per-form Headless toggle, and copy a snippet — drop-in vanilla JS widget, native fetch, or cURL. The form renders on your headless front-end and submissions run through the same validation, captcha and action loop server-side in WordPress.
What version is Core Forms on right now?
Core Forms 4.1 (May 10, 2026) is the latest release — payments via Stripe, PayPal, Razorpay, Polar and FluentCart, headless / cross-origin submissions, redesigned admin tabs, and the WP 7.0 Submissions toolbar. 4.0 shipped stable on May 1, 2026. Buy once and you get every release after that, forever — full notes on the Changelog page.
What are the WordPress requirements?
WordPress 6.4 or higher and PHP 8.1 or higher. Core Forms is built to be lightweight and is tested on the latest WordPress release.
Does it work with block themes and the site editor?
Yes. Core Forms ships a native Gutenberg block, works anywhere shortcodes are allowed, and plays nicely with FSE, Bricks, GenerateBlocks and classic themes.

Stop paying the add-on tax.

Every premium feature, every integration, unlimited sites — for $59 a year, or $249 once. Use code CFLAUNCH at checkout for 20% off.