Two Stage Registration Forms

The idea of a two-stage registration form is to increase the likelihood a user will sign up, by breaking up a larger form into two separate stages.

A user will initially sign up with only an e-mail address or limited details, and then be asked for more details on a second page. If the user doesn't complete the second stage of registration, at least you have some limited information to add them to your contact database for follow-up.

Keep Your Database Clean & Valuable

Ideally to maintain a valuable, clean database you'll know at least these details about each of your contacts:

  • First Name
  • Last Name
  • E-mail

Requesting a minimum of these details will ensure that your database stays clean and personalized.

The Registration Form

The first registration form requests an e-mail address, first name and last name from the user, and the second stage form requests their address, phone number and date of birth details.

The first stage registration form:
This form would be added to the website design, or on the first page of the two page registration process.

<forms:form id="signup" contactmode="register" onsubmitredirect="/second-stage-registration/"> <forms:row label="First Name"> <forms:editbox id="contact_first_name" width="105" validations="mandatory" placeholder="First Name" /> </forms:row> <forms:row label="Last Name"> <forms:editbox id="contact_last_name" width="105" validations="mandatory" placeholder="Last Name" /> </forms:row> <forms:row label="E-mail"> <forms:editbox id="contact_email" validations="mandatory,email" width="230" placeholder="E-mail" /> </forms:row> <forms:row type="one_column" align="center"> <forms:submitbutton value="Submit" /> </forms:row> </forms:form>

The second stage registration form:

<h1>Thanks <personalisation:firstname /></h1> <p>If you have a spare minute, please help us improve how we communicate with you by providing a few additional details:</p> <forms:form id="signup_two" onsubmitredirect="[? getRedirectURL() ?]" contactmode="store" > <forms:row label="Phone Number"> <forms:editbox id="contact_phone" width="194" /> </forms:row> <forms:row label="Street Address"> <forms:editbox id="contact_address" width="200" /><br /> </forms:row> <forms:row label="Suburb"> <forms:editbox id="contact_suburb_city" width="200" /><br /> </forms:row> <forms:row label="Postcode"> <forms:editbox id="contact_postcode" width="200" /><br /> </forms:row> <forms:row label="Date of Birth"> <forms:editbox id="contact_dob_d" width="64" class="form-control" placeholder="DD" /> / <forms:editbox id="contact_dob_m" width="64" class="form-control" placeholder="MM" /> / <forms:editbox id="contact_dob_y" width="70" class="form-control" placeholder="YYYY" /> </forms:row> <forms:row type="one_column" align="center"> <forms:submitbutton id="submitButton" value="Update My Details" /> </forms:row> </forms:form>

After adding the above code to your second page, you'll need to add some server code to properly re-direct the user back to the page they were originally referred from. If you don't want to redirect the user, simply leave the onsubmitredirect="" attribute blank (or redirect to a success page) and don't worry about the below server code:

*Note: To access the server code for a page, simply open the page with the page editor and select the "Server Code" tab towards the top of the page.

<?php function getRedirectURL() { if(isset($_GET['referrer'])) { return $_GET['referrer']; } return '/blog/'; } ?>