Title: BPOTech Confirm Step for Contact Form 7
Author: BPOTechHue
Published: <strong>9 Luglio 2026</strong>
Last modified: 3 Settembre 2026

---

Ricerca i plugin

![](https://ps.w.org/bpotech-confirm-step-for-contact-form-7/assets/banner-772x250.
jpg?rev=3601146)

![](https://ps.w.org/bpotech-confirm-step-for-contact-form-7/assets/icon-256x256.
jpg?rev=3601146)

# BPOTech Confirm Step for Contact Form 7

 Di [BPOTechHue](https://profiles.wordpress.org/wphuebpo/)

[Scarica](https://downloads.wordpress.org/plugin/bpotech-confirm-step-for-contact-form-7.1.1.4.zip)

 * [Dettagli](https://it.wordpress.org/plugins/bpotech-confirm-step-for-contact-form-7/#description)
 * [Recensioni](https://it.wordpress.org/plugins/bpotech-confirm-step-for-contact-form-7/#reviews)
 *  [Installazione](https://it.wordpress.org/plugins/bpotech-confirm-step-for-contact-form-7/#installation)
 * [Sviluppo](https://it.wordpress.org/plugins/bpotech-confirm-step-for-contact-form-7/#developers)

 [Supporto](https://wordpress.org/support/plugin/bpotech-confirm-step-for-contact-form-7/)

## Descrizione

**Confirm Step for Contact Form 7** adds a review step between filling in a form
and sending it. Visitors see a confirmation screen with their answers (using the
same mail-tags as your emails), can go back to edit, or submit for real.

All options are managed **inside each Contact Form 7 form** (a **Confirm** tab in
the form editor). There is no separate settings page in WordPress admin.

**Requires [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) to be
installed and active.** If CF7 is missing, this plugin deactivates itself and shows
an admin notice.

#### How it works (front end)

 1. The visitor completes the **input step** (your normal Form tab template) and clicks
    the **Confirm** button (`[confirm]`).
 2. Contact Form 7 validates the input. The plugin **does not send mail yet**; the 
    response switches to the **confirm step**.
 3. The confirm template (Confirm tab) is shown with values filled in via mail-tags.
 4. The visitor clicks **Submit** (`[submit]`) to send, or **Back** (`[back]`) to return
    to the input step without reloading the page.
 5. After a successful send, the form returns to the input step.

#### Features

 * **Per-form enable** — Checkbox “Enable confirm step” on the Confirm tab; disabled
   forms behave like plain CF7 forms.
 * **Confirm tab** — Dedicated template textarea, mail-tag helper, and tag generator
   buttons for Submit and Back.
 * **Form tags** — `[confirm]` (step 1, Form tab generator), `[submit]` (CF7 core,
   insert from Confirm tab), `[back]` (step 2, Confirm tab generator). Labels and
   classes follow CF7 conventions.
 * **Step status markers** — Add `cf7cfstep-status-class` or `cf7cfstep-status-class-{
   formid}` to any page element; the plugin toggles `cf7cfstep-status-input` / `
   cf7cfstep-status-confirm` for theme CSS (progress text, sidebars, etc.).
 * **Confirm Settings** — Optional scroll target **class** and **offset (px)** when
   entering the confirm step only (positive offset scrolls further down, negative
   scrolls further up; leave class empty to disable).
 * **Editor UX** — Confirm tab panel hides when disabled; admin styles and collapsible
   help/settings boxes on the Confirm tab.
 * **Legacy-compatible storage** — Confirm body and options use the same meta keys
   as the earlier function-based plugin where applicable.

#### For developers

 * PHP **8.0+**, namespaced class architecture (`CF7ConfirmStep\`), no Composer 
   dependency.
 * Front-end script is vanilla JavaScript (no jQuery on the public site).
 * Form-specific scroll options are passed via `window.cf7csFormSettings[formId]`
   when a scroll class is configured.

#### Hooks & Filters

**`cf7cs_custom_confirm_tags`** _(filter)_ — Register custom tags for the confirm
template. Each tag appears as a clickable mail-tag in the Confirm tab editor and
is replaced by its `content` on the front end.

Parameters:

 * `$tags` _(array)_ — Array of tag definitions. Each item has keys: `tag` (string,
   tag name without brackets), `content` (string, HTML replacement on front end).
 * `$contact_form` _(WPCF7\_ContactForm)_ — The current contact form instance.

Example:

    ```
    add_filter( 'cf7cs_custom_confirm_tags', function ( $tags, $form ) {
        $tags[] = array(
            'tag'     => 'privacy-notice',
            'content' => '<p class="privacy">Your data is safe.</p>',
        );
        return $tags;
    }, 10, 2 );
    ```

In the Confirm tab, `[privacy-notice]` appears alongside other mail-tags. Click 
it to insert into the template.

**`cf7cs_before_confirm_step`** _(filter)_ — Add HTML before the confirm step content
on the front end.

Parameters:

 * `$html` _(string)_ — HTML to prepend (default empty).
 * `$contact_form` _(WPCF7\_ContactForm)_ — The current contact form.

Example:

    ```
    add_filter( 'cf7cs_before_confirm_step', function ( $html, $form ) {
        return '<div class="confirm-header">Please review your data</div>';
    }, 10, 2 );
    ```

**`cf7cs_after_confirm_step`** _(filter)_ — Add HTML after the confirm step content
on the front end.

Parameters:

 * `$html` _(string)_ — HTML to append (default empty).
 * `$contact_form` _(WPCF7\_ContactForm)_ — The current contact form.

Example:

    ```
    add_filter( 'cf7cs_after_confirm_step', function ( $html, $form ) {
        return '<p class="confirm-footer">Click Submit to send or Back to edit.</p>';
    }, 10, 2 );
    ```

**`cf7cs_confirm_template`** _(filter)_ — Filter the confirm template HTML after
all built-in processing (mail-tag placeholders, control tags, and custom tags have
been replaced).

Parameters:

 * `$template` _(string)_ — Processed confirm template HTML.
 * `$contact_form` _(WPCF7\_ContactForm)_ — The current contact form.

**`cf7cs_confirm_tag_buttons`** _(action)_ — Fires after the default and custom 
tag generator buttons on the Confirm tab. Use this to output fully custom button
HTML.

### Usage

 1. **Confirm tab** — Enable confirm step, write the review template with mail-tags,
    add `[submit]` and `[back]`, save.
 2. **Form tab** — Add your fields and a `[confirm]` button (tag generator: **Confirm
    Button**). Use `[submit]` only on the confirm step if you want a single send action.
 3. **Confirm Settings** (optional) — Scroll target class + offset when entering the
    confirm step; leave class empty to skip scrolling.
 4. **Step status markers** (optional) — Add `cf7cfstep-status-class` or `cf7cfstep-
    status-class-{formid}` on page elements; style with `cf7cfstep-status-input` / `
    cf7cfstep-status-confirm`.

## Screenshot

[⌊Confirm tab with enable checkbox, confirm template, and tag buttons.⌉⌊Confirm 
tab with enable checkbox, confirm template, and tag buttons.⌉[

Confirm tab with enable checkbox, confirm template, and tag buttons.

[⌊Confirm Settings metabox (scroll class and offset).⌉⌊Confirm Settings metabox (
scroll class and offset).⌉[

Confirm Settings metabox (scroll class and offset).

[⌊Step status markers help on the Confirm tab.⌉⌊Step status markers help on the 
Confirm tab.⌉[

Step status markers help on the Confirm tab.

## Installazione

 1. Install and activate **Contact Form 7**.
 2. Upload the `bpotech-confirm-step-for-contact-form-7` folder to `/wp-content/plugins/`(
    or install from the WordPress plugin directory when available).
 3. Activate **Confirm Step for Contact Form 7** under **Plugins**.
 4. Edit a contact form, open the **Confirm** tab, enable the confirm step, and configure
    the template and settings.
 5. On the **Form** tab, add a `[confirm]` button (use the **Confirm Button** tag generator).
    Save the form.

## FAQ

### Does this work without Contact Form 7?

No. CF7 must be active. Otherwise the plugin will not run (and will deactivate on
load if CF7 was removed).

### Can I use it on only some forms?

Yes. Enable **Enable confirm step** only on the forms that need a review step.

### When is email actually sent?

Only when the visitor submits from the **confirm step** with `[submit]` (step 2).
The first `[confirm]` click only validates and shows the review screen.

### What happens if I disable “Enable confirm step”?

The form submits in one step like normal CF7.

### Do I need to wrap fields manually?

No. The input wrapper is added when the form is rendered. The confirm wrapper is
built from the Confirm tab template automatically.

### Can I have multiple CF7 forms on one page?

Yes. Each form has its own step state. Global status markers (`cf7cfstep-status-
class`) reflect the last confirm-enabled form that changed step; use `cf7cfstep-
status-class-{formid}` to scope styling per form.

### Does uninstalling remove form data?

Uninstall does not delete confirm templates or per-form meta stored on contact forms.
Remove or disable confirm in each form before uninstall if you want a clean editor
state.

## Recensioni

Non ci sono recensioni per questo plugin.

## Contributi e sviluppo

“BPOTech Confirm Step for Contact Form 7” è un software open source. Le persone 
che hanno contribuito allo sviluppo di questo plugin sono indicate di seguito.

Collaboratori

 *   [ BPOTechHue ](https://profiles.wordpress.org/wphuebpo/)

[Traduci “BPOTech Confirm Step for Contact Form 7” nella tua lingua.](https://translate.wordpress.org/projects/wp-plugins/bpotech-confirm-step-for-contact-form-7)

### Ti interessa lo sviluppo?

[Esplora il codice](https://plugins.trac.wordpress.org/browser/bpotech-confirm-step-for-contact-form-7/)
segui il [repository SVN](https://plugins.svn.wordpress.org/bpotech-confirm-step-for-contact-form-7/),
segui il [log delle modifiche](https://plugins.trac.wordpress.org/log/bpotech-confirm-step-for-contact-form-7/)
tramite [RSS](https://plugins.trac.wordpress.org/log/bpotech-confirm-step-for-contact-form-7/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.4

 * Developer hooks: `cf7cs_custom_confirm_tags` filter for registering custom tags(
   tag/label/content) with auto admin buttons.
 * Developer hooks: `cf7cs_before_confirm_step` and `cf7cs_after_confirm_step` filters
   for injecting HTML around the confirm step.
 * Developer hooks: `cf7cs_confirm_template` filter and `cf7cs_confirm_tag_buttons`
   action for advanced customisation.

#### 1.1.3

 * Hot fix.

#### 1.1.1

 * i18n: use plugin text domain consistently in the CF7 editor.
 * Front-end: scope mail error response handling to the submitting form only.
 * Readme: PHP 8.0, WordPress 7.0 tested, tag limit compliance.

#### 1.1.0

 * First release on WordPress.org.
 * Two-step confirm flow for Contact Form 7 (`[confirm]`, review template, `[submit]`/`[
   back]`).
 * Confirm tab settings: per-form enable, step status markers, optional scroll on
   confirm step.

## Meta

 *  Versione **1.1.4**
 *  Ultimo aggiornamento **1 mese fa**
 *  Installazioni attive **Meno di 10**
 *  Versione WordPress ** 6.0 o superiore **
 *  Testato fino alla versione **7.0.7**
 *  Versione PHP ** 8.0 o superiore **
 *  Lingua
 * [English (US)](https://wordpress.org/plugins/bpotech-confirm-step-for-contact-form-7/)
 * Tag
 * [cf7](https://it.wordpress.org/plugins/tags/cf7/)[confirm](https://it.wordpress.org/plugins/tags/confirm/)
   [contact form 7](https://it.wordpress.org/plugins/tags/contact-form-7/)[review](https://it.wordpress.org/plugins/tags/review/)
   [two step](https://it.wordpress.org/plugins/tags/two-step/)
 *  [Visualizzazione avanzata](https://it.wordpress.org/plugins/bpotech-confirm-step-for-contact-form-7/advanced/)

## Valutazioni

Non sono state ancora inviate recensioni.

[La tua recensione](https://wordpress.org/support/plugin/bpotech-confirm-step-for-contact-form-7/reviews/#new-post)

[Vedi tutte le recensioni](https://wordpress.org/support/plugin/bpotech-confirm-step-for-contact-form-7/reviews/)

## Collaboratori

 *   [ BPOTechHue ](https://profiles.wordpress.org/wphuebpo/)

## Supporto

Hai qualcosa da dire? Ti serve aiuto?

 [Chiedi nel forum di supporto](https://wordpress.org/support/plugin/bpotech-confirm-step-for-contact-form-7/)