The Core Forms plugin is a WordPress forms plugin built on one premise: you write your form in plain HTML, and the plugin handles everything else. Validation, AJAX submission, spam protection, email notifications, submission storage. No drag-and-drop builder, no proprietary markup, no output you can’t control.
I built it after years of fighting form builders that wrap a simple email field in six nested divs. On my own site it runs 34 production forms, from the contact form to every service-inquiry form, and the screenshot below is that actual dashboard.

Key Features
- Plain HTML forms. Write your forms in standard HTML. No proprietary markup, no shortcode nesting, no visual builder lock-in.
- AJAX submission. Forms submit without page reloads. Users get instant feedback.
- Spam protection. Five built-in methods: honeypot fields, Math CAPTCHA, Google reCAPTCHA v3, hCaptcha, and Cloudflare Turnstile. Akismet integration kicks in automatically if that plugin is active.
- Email notifications. Send notification emails on submission. Auto-responders for confirmation emails. Full email logging with delivery status tracking.
- Submission management. All submissions saved to a custom database table. View, search, edit, reply to, and export submissions from the admin.
- Conditional fields. Show or hide fields based on other field values using
data-show-ifanddata-hide-ifattributes. - Template variables. Dynamic content in forms using
{{user.email}},{{post.post_title}},{{url_params.ref}}syntax. - Webhooks. Send form data to external APIs as JSON or form-encoded POST requests.
- File uploads. Accept file uploads that are stored as WordPress media attachments.
- Fullscreen forms. Typeform-style one-question-at-a-time interface with progress bar and animations.
- Polls. Create polls with multiple options, vote tracking, and results display.
- Gutenberg block. Drop forms into the block editor with a form selector.
- Shortcode. Embed forms anywhere with
[cf_form slug="contact"]. - Accessibility. Automatic ARIA attributes, label association, keyboard navigation, and screen reader support.
- GDPR compliance. WordPress privacy API integration for data export and erasure requests.
- Integrations. Mailchimp (via MC4WP), MailerPress, and Fluent Cart subscriber management.
Requirements
- WordPress 6.0 or higher
- PHP 7.4 or higher
Architecture Overview
Core Forms stores each form as a core-form custom post type. The form’s HTML markup lives in post_content. Form settings and messages are stored as post meta.
Submissions are saved to a custom database table (wp_cf_submissions) rather than as posts, keeping the database lean and queries fast.
The plugin is organized into four layers:
- Core classes (
src/) handle form rendering, submission processing, and data management. - Admin classes (
src/admin/) provide the WordPress admin interface. - Actions (
src/actions/) run after successful submissions (email, auto-responder, Mailchimp, webhooks). - Extensions (
extensions/) add self-contained features like file uploads, fullscreen forms, and submission limits.
Namespace and Prefixes
- PHP namespace:
Core_Forms - Function prefix:
cf_ - Database tables:
wp_cf_submissions,wp_cf_email_logs,wp_cf_submission_replies,wp_cf_polls,wp_cf_poll_votes - Post type:
core-form - Custom capability:
edit_forms - AJAX action:
cf_form_submit - REST namespace:
cf
Credits
Core Forms is built by Gaurav Tiwari. It is based on the HTML Forms plugin by ibericode and is released under the GPL v3 license.
Start with the installation lesson, or grab the plugin from the Core Forms product page first. Every premium feature ships in the one plugin; there are no add-ons to buy.