Contact Form 7 Multi-Step Forms

plugin banner

Enables the Contact Form 7 plugin to create multi-page, multi-step forms.

Author:Webhead LLC. (profile at
WordPress version required:4.7
WordPress version tested:5.5
Plugin version:4.0.7
Added to WordPress repository:15-04-2013
Last updated:14-03-2020
Rating, %:84
Rated by:36
Plugin URI:
Total downloads:294 197
Active installs:20 000+
plugin download
Click to start download

I needed a contact form that spanned across multiple pages and in the end would send an email with all the info collected. This plugin adds onto the popular Contact Form 7 plugin to do just that.

Sample of this working is at

Requires the Contact Form 7 plugin, version 4.8 or above, by Takayuki Miyoshi.


  1. Create one page or post for each step in your multi-step form process. If you have 3 steps, create 3 pages/posts. You will need the urls to these when creating your forms.

  2. Create a Contact Form 7 form.

  3. Place your cursor at the end of the form.

  4. On the “Form” tab of the Contact Form 7 form, click on the button named “multistep”.

  5. In the window that pops up, check the checkbox next to “First Step” if this is the first step of your multi step forms. If this is your last step in the multi step forms, check the “Last Step” checkbox. All other checkboxes are optional.

  6. The Next Page URL is the url that contains your next form. If this form is the last step, you can leave the URL field blank.

  7. Click “Insert Tag”

  8. Save your completed form and place the form’s shortcode into the appropriate Page/Post you created in step 1.

  9. Repeat for each form in your multi-step form process.

  10. On the last step, you probably would want to send an email. Make sure to check the “Send Email” checkbox in step 5. On the Mail Tab, simply enter the mail-tags as you normally would. For example if your first form has the field your-email you can include [your-email] in the Mail tab on your last form. Note: CF7 will see this as an error because your-email may not be displayed on the current form. You can safely ignore this error.

Multistep Tag Options

  • Name – The name of this multistep form-tag. This is required, but is currently not being used.

  • First Step – Besides marking the first step of your multistep forms, this allows any form to act as the first step and show when no previous data has ben submitted. This is useful when you want some users to skip the first step.

  • Last Step – Besides marking the last step of you multistep forms, this clears the data from user’s browsers. Once they submit this form they won’t see their data populating the forms anymore.

  • Send Email – If this is checked the form will send an email like a normal Contact Form 7 submission.

  • Skip Save – If you use Flamingo or CFDB7 to save submissions to the database this prevents saving this form submission.

  • Next Page URL – This is the URL your users will go to after the form is submitted.

Additional Tags

[multiform "your-name"]

The multiform form-tag can be used to display a field from a previous step. Replace your-name with the name of your field. This is only for use on the Form tab, this tag will not work in the Mail tab.

[previous "Go Back"]

The previous form-tag can be used to display a button to go to a previous step. Replace Go Back with text you want to show in the button.

Messages Tab
When a visitor to your site visits the 4th step in your multi step form without filling out the 1st step, the message “Please fill out the form on the previous page.” will be displayed. You can change this on each form in the Messages tab.

What this plugin DOES NOT do:

  • This plugin does not support file uploads on every form. If you need to use file uploads make sure to place it on the last step.

  • This plugin currently does not support “pipes” in the select field. See for more on what “pipes” is on the Contact Form 7 site.

  • This plugin does not load another form on the same page. It only works when the forms are on separate pages. Many have asked to make it load via ajax so all forms can reside on one page. This plugin does not support that.

PRO Version
If you expect to have a lot of data submitted through your multi-step forms, the Pro version may be able to help you better. The PRO version uses Session Storage so it is able to handle roughly 1,000 times more data for your multiple forms. In total it can handle about 5MB vs 4KB in the free version. Currently the Pro version REQUIRES the WordPress REST API and Contact Form 7 AJAX Submission to be enabled.

Another feature the Pro version offers is the ability to skip steps with the “Contact Form 7 – Conditional Fields plugin”. Learn more here.