Description
Forming Forms – Form Builder for Block Editor is a lightweight contact form and form builder plugin built entirely on the WordPress block editor. A form is a block: add the Form block to any post or page, nest the field blocks you need, and publish. No shortcodes, no embeds, no separate form builder screen to learn.
Every field — text, email, phone, select, checkbox — is a real WordPress block. That means you build your contact form the same way you build the rest of your page, with the same drag-and-drop, the same undo, and the same design controls you already use every day.
Submissions are validated on the server, checked for spam, emailed to you, and saved as entries in your WordPress admin.
Build forms without shortcodes
Most form builder plugins ask you to compose a form in a separate admin screen and then paste a shortcode into your page. Forming Forms skips that entirely. The form is built where it lives, and what you see in the editor is what your visitors get.
- Add the Form block anywhere — posts, pages, block themes, template parts, widgets.
- Nest field blocks inside it, reorder them by dragging.
- Style with the block editor’s own spacing, typography, color and border controls.
- Reuse the same contact form across your site with a core synced pattern.
Included form fields
- Text — single-line input for names and short answers
- Email — with email format validation
- Textarea — multi-line messages
- Number — with optional min, max and step
- Phone — telephone input
- URL — website addresses
- Select — dropdown menu
- Radio — single choice from a list
- Checkbox — single consent box or multiple choices
- Date — date picker
- Hidden — pass a fixed value with the submission
- Submit — the send button
Features
- Native block styling — fields use the block editor’s own spacing, typography, color and border controls. Nothing hand-rolled to relearn, and it inherits your theme.
- Server-side validation — the server rebuilds the form’s field schema from the source post and validates every submission against it. The browser’s field list is never trusted, so a tampered form cannot inject fields.
- Spam protection, no CAPTCHA — a honeypot field and a submission time-trap, both enabled by default. Your visitors never see a puzzle.
- Email notifications — send each submission to one or more recipients with a configurable subject, from name and from address.
- Entry storage — submissions are saved as a
forming_entrycustom post type, one meta value per field, so your form data stays in your own database. - Success behavior — show an inline thank-you message or redirect to a URL after submit.
- Accessible markup — real labels, required-field indicators, and an ARIA live region for the response message.
- Lightweight — no jQuery, no page builder dependency, no external service. Assets load only on pages that contain a form.
- Translation ready — fully internationalized and ready for translation.
- Developer friendly — extend the field allowlist through the
forming_field_blocksfilter and hookforming_submission_savedto react to new entries.
Typical uses
A contact form, a quote request form, a support or feedback form, a newsletter signup, a job application, an RSVP or event registration form, a simple survey — anything you would otherwise build with a shortcode-based form builder.
For developers
Register your own block in the forming category and append its name to the allowlist:
add_filter( 'forming_field_blocks', function ( $blocks ) {
$blocks[] = 'my-plugin/field-rating';
return $blocks;
} );
React to a new submission:
add_action( 'forming_submission_saved', function ( $entry_id, $data, $form_id ) {
// $data is a name => value map of the validated submission.
}, 10, 3 );
License
Forming Forms – Form Builder for Block Editor is distributed under the terms of the GNU General Public License v2 or later. See https://www.gnu.org/licenses/gpl-2.0.html for more details.
Screenshots

Blocks
This plugin provides 13 blocks.
- Text Field A single-line text field.
- Email Field An email address field with validation.
- URL Field A URL field with validation.
- Submit Button The button that submits the form.
- Checkbox Field A single consent checkbox or a multi-choice group.
- Phone Field A telephone number field.
- Date Field A date picker field.
- Hidden Field A hidden field carrying a preset value.
- Textarea Field A multi-line text field.
- Radio Field A single-choice radio button group.
- Select Field A dropdown select field.
- Number Field A numeric field with optional min, max and step.
- Form A form built from field blocks. Add fields inside, then set recipients and success behavior.
Installation
From your WordPress dashboard
- Go to Plugins Add New and search for “Forming Forms”.
- Click Install Now, then Activate.
- Edit any post or page, add the Form block, and insert the field blocks you need.
- Open the Form block settings to set your recipients and success behavior, then publish.
Manual installation
- Upload the plugin folder to
/wp-content/plugins/forming-form-builder, or upload the ZIP through Plugins Add New Upload Plugin. - Activate the plugin from the Plugins screen.
- Add the Form block to a post or page and build your form.
FAQ
-
How do I add a contact form to a page?
-
Edit the page, add the Form block, and nest the field blocks you want inside it. The Form block starts with a name, email, message and submit button so you have a working contact form immediately. Set your notification recipients in the block sidebar and publish.
-
Do I need a shortcode?
-
No. The form is a block, so it lives directly in your post or page content. There is no shortcode to copy and no separate builder screen.
-
Where are form submissions stored?
-
Each submission is saved as a
forming_entrycustom post type with one meta value per field, so your data stays in your own WordPress database. A notification email is also sent to the recipients you configure. -
Does it send email notifications?
-
Yes. Set one or more recipients, a subject, and a from name and address in the Form block settings. Notifications use
wp_mail(), so any SMTP plugin you already use will handle delivery. -
How does the spam protection work?
-
Two checks run on every submission, both on by default: a honeypot field that is hidden from people but tempting to bots, and a time-trap that rejects submissions completed implausibly fast. There is no CAPTCHA, so real visitors are never asked to solve anything.
-
Does it work with the classic editor?
-
No. Forming Forms is built exclusively for the WordPress block editor.
-
Does it work with block themes and full site editing?
-
Yes. The Form block can be placed in posts, pages, templates, template parts and widget areas, and it inherits your theme’s styles through the block editor’s own design controls.
-
Can I reuse one form across several pages?
-
Yes. Select the Form block and create a core synced pattern from it, then insert that pattern anywhere. Editing the pattern updates every page at once.
-
Can I redirect visitors after they submit?
-
Yes. In the Form block settings, choose to show a thank-you message or to redirect to any URL.
-
Can developers add their own field types?
-
Yes. Register a block in the
formingcategory and append it to the allowlist with theforming_field_blocksfilter. Use theforming_submission_savedaction to react to new entries. -
Is it free?
-
Yes. Forming Forms is free and licensed under the GPLv2 or later.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Forming Forms – Form Builder for Block Editor” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Forming Forms – Form Builder for Block Editor” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release.
