Contact Form 7 Multi-Step Forms

A contact form that spans across multiple pages and in the end sends an email with all the info collected

With this plugin you can create multiple Contact Form 7 forms and link them together to create a multi step form.  The free version of this plugin allows you to create multi-step forms with a limit on the amount of information that can be submitted.  The limit is due to the fact that the plugin uses cookies to store the submitted data from one step to the next.  If a submission exceeds the browser’s cookie size limit, you’ll notice chunks of missing data in that submission.

See a example of the plugin working here:

Note:  If you need a form that saves entries or needs conditional fields consider using Formidable.  I have used this plugin to build a multi-step application form.


The Pro version of this plugin will allow your forms to submit as much as 5MB of data.  That’s over 1,000 times more data than the free version.  This is because the Pro version uses Session Storage. This means you can have a ton of fields and steps more than the free version. (File uploads are still only supported on the last step and does not count towards the limit.) Session Storage has been available in all major browsers since about 2010.

Please make sure you try out the Free version of the plugin first and see if that works for you.  If you try submitting your form and you are not receiving all the information in the email or you just don’t want to risk losing data when the submission gets too large, you can upgrade by clicking the button below. 

Additional Features

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 here 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.

Currently the Pro version REQUIRES the WordPress REST API and Contact Form 7 AJAX submission to be enabled.  
By default these settings are already enabled.


Data is collected for every site (or sub-site in multisite installations) the admin opts in for or that has an active license key. Most data-points are collected on a weekly cycle, and only if there are changes. Some events like license activation/deactivation and plugin activation/uninstall are collected immediately.