A Multi-Step Application Form

If only there was an easy to use, affordable plugin that offered multi-step forms, saved the entry, had conditional logic based on the user’s responses, and sent an email.

An application form can span multiple pages on paper.  It has things like personal information, education history, employment history, reasons why you want the job, reasons why you left your job, and achievements.  This form can get pretty long and on a website it isn’t ideal to have all this on one page.  I have done a multi-step form plugin, but this form would require saving the entry to the database.

If only there was an easy to use, affordable plugin that offered multi-step forms spanning multiple pages, saved the entry, conditionally showed and hid other fields based on the user’s responses, and sent an email at the end.  Oh wait there is…  Formidable Pro.  With this plugin I could drag and drop fields and create a simple multi-step application form within minutes.

The employment history section needed to dynamically add sections so the applicant could add as many or as little employment experience as they needed.  This could be achieved by repeating sections now, but at the time this feature was not available yet.  Instead I conditionally hid about 7 or so employment sections and whenever the add button was pressed I incremented a counter and conditionally showed another section.

Another issue with the form was collecting the social security number.  This needed to be encrypted and kept safe as much as possible.  With the hooks provided by Formidable it was fairly straight forward to intercept the SSN and encrypt it before it was saved to the database.  Now we needed to limit viewing of that SSN.  Whenever the form was viewed online you wouldn’t want the SSN showing and also you wouldn’t want that long string of garbage characters from the encryption showing.  So, again, using hooks provided by Formidable and help from their awesome support, I could intercept what would be shown and replace it with “***-**-****”.

It would be nice if the applicant’s data could be downloaded as a PDF and viewed like a normal paper-form.  At the time of developing this, again, Formidable did not have too many options that I liked, so I made my own.  Using domPDF and Formidable’s views I got the data to download as a PDF.  Formidable has these “views” where you can display your form any way you want.  But I needed to know if the view was being used for the PDF vs just online viewing.   Within the PDF would be the only time the SSN would show in its true form.  Formidable’s support forums was a lifesaver figuring this one out.  Once downloaded the form was scheduled to be deleted in 24 hours as an extra precaution.

The last issue was uploading the Resume.  While this is built into Formidable and the upload was as simple as dragging a control onto the form in the Form Builder, WordPress naturally does not protect uploads.  Luckily I had made another plugin to protect the WP-Content folder.  All I had to do was activate and set this.

This application form was quite the task and I seriously would have taken double or triple the time if it wasn’t for the Formidable Pro support team.  I have tried competing form plugins and they are nowhere near as helpful and their code is a mess.  In contrast, the Formidable team provided priceless help and support while maintaining beautiful code.