Title: Forming Forms – Form Builder for Block Editor
Author: fieldx
Published: <strong>September 5, 2026</strong>
Last modified: September 5, 2026

---

Search plugins

![](https://ps.w.org/forming-form-builder/assets/banner-772x250.png?rev=3682764)

![](https://ps.w.org/forming-form-builder/assets/icon-256x256.png?rev=3682764)

# Forming Forms – Form Builder for Block Editor

 By [fieldx](https://profiles.wordpress.org/fieldx/)

[Download](https://downloads.wordpress.org/plugin/forming-form-builder.1.0.0.zip)

 * [Details](https://pcm.wordpress.org/plugins/forming-form-builder/#description)
 * [Reviews](https://pcm.wordpress.org/plugins/forming-form-builder/#reviews)
 *  [Installation](https://pcm.wordpress.org/plugins/forming-form-builder/#installation)
 * [Development](https://pcm.wordpress.org/plugins/forming-form-builder/#developers)

 [Support](https://wordpress.org/support/plugin/forming-form-builder/)

## 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_entry` custom 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_blocks`
   filter and hook `forming_submission_saved` to 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

[⌊Building a contact form in the block editor. The field blocks appear in the inserter
on the left, the form renders live in the canvas, and the sidebar exposes per-field
settings — label, name, placeholder, default value, help text, required and width.⌉⌊
Building a contact form in the block editor. The field blocks appear in the inserter
on the left, the form renders live in the canvas, and the sidebar exposes per-field
settings — label, name, placeholder, default value, help text, required and width
.⌉[

Building a contact form in the block editor. The field blocks appear in the inserter
on the left, the form renders live in the canvas, and the sidebar exposes per-field
settings — label, name, placeholder, default value, help text, required and width.

## 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

 1. Go to **Plugins  Add New** and search for “Forming Forms”.
 2. Click **Install Now**, then **Activate**.
 3. Edit any post or page, add the **Form** block, and insert the field blocks you 
    need.
 4. Open the Form block settings to set your recipients and success behavior, then 
    publish.

#### Manual installation

 1. Upload the plugin folder to `/wp-content/plugins/forming-form-builder`, or upload
    the ZIP through **Plugins  Add New  Upload Plugin**.
 2. Activate the plugin from the **Plugins** screen.
 3. 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_entry` custom 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 `forming` category and append it to the allowlist with
the `forming_field_blocks` filter. Use the `forming_submission_saved` action 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.

Contributors

 *   [ fieldx ](https://profiles.wordpress.org/fieldx/)
 *   [ BeautifulPlugins ](https://profiles.wordpress.org/beautifulplugins/)

[Translate “Forming Forms – Form Builder for Block Editor” into your language.](https://translate.wordpress.org/projects/wp-plugins/forming-form-builder)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/forming-form-builder/),
check out the [SVN repository](https://plugins.svn.wordpress.org/forming-form-builder/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/forming-form-builder/)
by [RSS](https://plugins.trac.wordpress.org/log/forming-form-builder/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.0**
 *  Last updated **16 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/forming-form-builder/)
 * Tags
 * [block-editor](https://pcm.wordpress.org/plugins/tags/block-editor/)[contact form](https://pcm.wordpress.org/plugins/tags/contact-form/)
   [custom form](https://pcm.wordpress.org/plugins/tags/custom-form/)[form builder](https://pcm.wordpress.org/plugins/tags/form-builder/)
   [forms](https://pcm.wordpress.org/plugins/tags/forms/)
 *  [Advanced View](https://pcm.wordpress.org/plugins/forming-form-builder/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/forming-form-builder/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/forming-form-builder/reviews/)

## Contributors

 *   [ fieldx ](https://profiles.wordpress.org/fieldx/)
 *   [ BeautifulPlugins ](https://profiles.wordpress.org/beautifulplugins/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/forming-form-builder/)