These days, WordPress powered sites ranges from simple static websites to complex dynamic web applications. WordPress offers great built-in features for providing content for users, allowing the site owners to publish dynamic content from the back end. Getting users to interact with the website is another vital aspect of building successful websites. Therefore, we need ways to let users interact with the site. WordPress forms plugins are the standout solution for retrieving dynamic content from users.
In this article, we are going to talk about how forms plugins fit into WordPress and how you can build the perfect forms plugins as a developer. So this article is intended for users who are planning to improve their WordPress site with dynamic content as well as for developers who want to build a perfect forms plugin for maximum profits.
Let’s get started.
What is a Forms Plugin?
In simple terms, forms plugins lets you create dynamic forms to be embedded in the front end of your site. Once enabled, users have the ability to populate forms with dynamic content and submit them to the site administrator. As an authorized user, you have the ability to see all the data provided by users. Generally, site owners with less technical knowledge will find these plugins very useful as they can create advanced features without worrying about programming or technical stuff.
WordPress forms plugins break the barrier in creating advanced data retrieval techniques for non-technical users.
Now you might have a very basic understanding about a forms plugin and its role. Let’s dig deeper into the concept of forms plugin by looking at some of the most popular forms plugins for WordPress.
WordPress Forms Plugins
There are a substantial number of WordPress forms plugins available, in both free and premium versions. Even though each of these plugins works differently, the main features are the same across all the plugins. In this article, I am going to look at four different plugins in both free and premium category. Let’s get a quick introduction to these four plugins.
- Visual Form Builder – (Free)
- Ninja Forms – (Free)
- Gravity Forms – (Premium)
- Formidable Forms – (Free and Premium)
Before we go any further, you can download and install these four plugins and see how they work and the available features within the provided screens. Note that you can check all of these plugins for free, apart from Gravity Forms.
I highly recommend you do this task if you want to develop a perfect forms plugin and use it in your site for advanced functionalities. Now let’s figure out the common usages of forms plugins.
Common Usage of WordPress Form sPlugins
Integrating an advanced contact form is the most noticeable use of WordPress forms plugins. Most of these plugins contain Contact Form in their name or within the main description, proving that its the main purpose of these plugins. However, there are some common usages apart from building contact forms. Let’s look a t few of those scenarios.
Comment or feedback forms
WordPress provides a built-in comment form and all existing themes provides this feature by default. But there are occasions where we need more advanced comment forms to categorize the user feedback and get more information. In such cases, it’s easy to use a forms plugin rather than modifying the existing comment form by changing theme code.
Forms plugins are also used to receive orders from users on websites selling products. We can create a form to select the products and submit the orders. Once submitted users will get a notification and site admin will process the order manually from the back end.
Polls are a prominent technique for getting user feedback from a limited set of answers. Forms plugins can be easily configured to create polls and check the results from the back end.
Front End Posting
Generally, users need to log in to WordPress admin area to create posts. However, there are occasions that allows users to submit content to the database without logging in. Front end posting is a commonly used technique where users are allowed to create content from the front end of the website by filling in a form. Forms plugins can easily be used to simplify the front end posting process.
You may have noticed that most of these features allows users to submit the form and get a notification. Basically, this is a one way process where users submit the form data and an administrator manually processes it. Once the data is submitted, the process ends for the user. So this is where we can improve our plugin to continue the process by reducing the manual tasks done in the admin side. We’ll talk more about this later on in “Making Your Plugin Stand Out from the Rest”.
Now we have all the ingredients to plan the features of a perfect forms plugin. In the next section, we are going to discuss the planning process.
Planning a WordPress Forms Plugin
Identifying and planning the requirements is the first and most important task of any development project. There are plenty of plugins available for creating forms with WordPress. Unless we plan properly, we are not going to be anywhere near a perfect plugin that can challenge the existing ones.
Let’s consider the most basic steps in planning such a plugin.
Use simple and clean design
Simplicity is the trend in modern web designing, which allows us to catch the eye of potentials users. If you research for best themes, you will find that most popular themes are the ones with very minimal and clean designs. Some people create designs with very high quality graphics and many colors to impress the users. But soon they realize the mistake and switches back to minimal designs to suit the widest range of users. So make sure to design the plugin layout as simply as possible.
Decrease the number of steps
Users want to do things as quickly as possible, while developers usually want to provide as many features as possible. This is the breaking point where users decide to use the plugin or look for an alternative plugin. As developers, we have to find ways to present all the available features in a simple, user friendly manner. Registration forms can considered a very good example to illustrate this point. A few years ago, we had registration forms with very large number of fields. Later registration form fields were distributed across several steps to make the process simpler. These days we only have maximum of 2-3 fields or social logins to register as a member. So we need to reduce the amount of steps required of creating and managing forms within our plugin.
Use existing WordPress features
There are developers who uses fancy third party plugins to create the features in a forms plugin, hoping that they can stand out from the competitors. But the truth is that these types of plugins create more conflicts with the existing theme and plugins within your WordPress application. WordPress provides the support for features such as drag and drop, data grids, file uploads within its core and these should be used in every possible scenario. Also it standardizes the features, making it easy for users to switch from one plugin to another. When you are developing a new plugin, make sure to use the existing WordPress features and functions to their maximum capabilities to provide flexible solution.
Include the mandatory features
Generally, all WordPress form plugins have a set of features common across all the plugins. It’s important to have the mandatory set of features to compete with other plugins.
In the next section, we are going to look at these mandatory features in detail.
Must Have Features of a Forms Plugin
As developers, we don’t have to reinvent the wheel to create a forms plugin. First, we have to conduct a proper research on existing plugins to identify the fundamental features. Once we have a sound base with fundamental features, it’s straightforward to add new features to make the plugin unique. So let’s look at the fundamental features of forms plugins by comparing the four plugins introduced earlier.
Add new forms with dynamic built-in field types
Form creation is the main functionality of a forms plugin. Generally, these type of plugins provide dynamic field types to create forms using drag and drop effect. Consider the previous screenshots of these four plugins for available field types.
As you may notice, most forms plugins has a set of basic fields such as Textbox, Textarea, Checkboxes, HTML etc while having a set of plugin-specific unique fields. Basically, we have to provide the support for all the basic HTML form field types in order to develop a plugin to match the features of any existing plugin. Then, we can decide on the advanced field types to make our plugin unique from the existing ones.
Display the form list
Once created, users should have a way to list all the available forms within the site. It’s important to use the existing WordPress data grid to keep the consistency with other plugins. The list should contain all the mandatory information and actions related to forms. Consider the following screenshot for form list in Formidable plugin. Other plugins contains similar screens for a form list.
As you can see, this plugin uses the existing data grid. Each entry in the form list has number of links to navigate to various options. Most common actions should be Edit, Delete, Settings and Duplicate. Also, these forms are integrated into pages or posts using a shortcode and hence it’s essential to display it inline with the forms.
Add form button in post editor
Generally, users of WordPress websites have limited technical knowledge. So it’s difficult for them to understand the concept of shortcodes and assign parameters without making errors. Therefore, we need a simplified way to allow users to add forms into pages or posts. Most existing plugins provides this feature by adding a “new” button to the post editor. Consider the following screen for form generation button in post editor.
All form buttons are similar in nature where you are allowed to select the form from a dropdown menu and directly insert into the editor. We have to make the popup as simple as possible with only the mandatory options, so that users can quickly add new forms.
Manage form entries
Once forms are inserted into the site, users can fill them with data and submit them. So the next major point in planning a forms plugins is to manage the submitted data and display in the back end of WordPress. Generally, we can use the WordPress admin list table to show the submitted entries in a data grid. The following screen contains a form entries list of Gravity Forms. You can find the link to entries section under each form in forms list.
All the submitted entries are shown in a grid, allowing the administrator to take the necessary actions on the submitted data. Gravity Forms provides extended options for form entries by providing custom statuses called Mark as Read, Mark as Unread, Add Star, Remove star etc. You can make your plugin unique by adding more important actions for filtering form entries.
Import/export form data
This is one of the most vital features of a forms plugin. User should be allowed to export all forms with respective data and import it into another website or the same website. Gravity Forms provides the most organized import/export process compared to the other three plugins discussed in this article. The following screen previews the import/export screen of Gravity Forms.
As you can see, you are allowed to select the forms, necessary fields and respective date range for exporting purposes. Exporting process will create a CSV file, which can be imported any time to restore the data. CSV is the simplest file format and hence should be used instead of relying on different file formats.
Most existing plugins provide their own import/export options. Here, we are trying to figure out the requirements to build the perfect forms plugin. So you can extend the import/export process by supporting exported files of other popular forms plugins and importing them into your plugin. This will make your plugin stand out from the rest.
Step by step forms
Generally, users don’t like long forms with a large number of fields. As a solution, we are using step by step forms to simplify the form filling process. We can apply the same technique for forms generated by these plugins. Basically, users can break the form into multiple sections in the form creation process. Once the form is displayed, we need to provide one section at a time until all sections are filled by the user. Only a few plugins support this feature, hence it can be useful to improve your plugin among the rest.
So far, we’ve looked at the basic usages of forms plugins and the mandatory features to be competitive with popular plugins. Now it’s time to make our plugin unique from the rest. In the next section, we are going to look at the special features for making our forms plugin competitive with other plugins.
Making Your Plugin Stand Out from the Rest
Forms plugins can be used for various tasks within WordPress websites and hence there are unlimited possibilities for creating new features. So let’s discuss some useful features that add value to your plugin and make it “more perfect” than the rest.
Support for form templates
Basically, these forms plugins let us create forms from scratch using dynamic drag and drop fields. But there can be many occasions for the need of pre-built forms. In such cases we can allow the users to create form templates and reuse them for multiple forms. So users can just select a template, change the necessary fields and make it work without making large forms from scratch.
This feature is not supported by many plugins and hence can be used to add value to your plugin.
This is one of the most promising features of forms plugins where users are allowed to change the form field content or form fields dynamically based on predefined conditions. A perfect solution for conditional logic is available in Gravity Forms.
Enable custom hooks
Earlier, we discussed the need for form entries and filtering them by executing custom actions from the bulk action list. These plugins are mostly used for contact forms and hence the list of entries is good enough for most occasions. But we can make these plugins powerful by adding custom hooks and enable developers to implement their own features on form entries.
You can create custom hooks to add more statuses to the form entries action list and another set of action hooks to execute tasks on the form entry. For example, assume that we are building a forms plugin for use with a contest. You can define a custom action called Select Winner and specify an action hook. Then developers can implement the action hook to execute necessary tasks when the winner is selected.
Integrate existing WordPress features
Most people will use WordPress with its default functionality, instead of building custom application using plugins. Therefore, it’s essential to support existing WordPress features as much as possible with the forms plugin. Gravity Forms does this quite effectively by allowing admins to create forms, where users can submit posts from the front end.
Similarly we can add more WordPress specific features into our plugins. For example we can add an upload button to load WordPress media uploader, allow creation of users from front end and so on. As long as we can extend our plugin with WordPress-specific features, we can make it stand out among other plugins.
Throughout this article, we have discussed the basics of forms plugins and how we can plan our plugin to be competitive with existing WordPress forms plugins. There are mainly two ways of making your plugin unique from the rest.
- Add as many WordPress specific features as possible into the forms creation and managing process
- Support uncommon use cases for the need of forms plugins, instead of purely depending on contact forms
These days, forms plugins are used widely for quizzes, polls, order submissions, payment integration and many more purposes. So making a unique premium forms plugin can be a highly profitable business.
Our four existing forms plugin providers give us some pretty useful functionalities and some clever implementations. Of these, Gravity Forms seems to be currently the most advanced. But we are developers, right? It’s our business to make the web more perfect than it is. That’s what our clients want. So, there’s no reason we can’t build our own forms plugins. Perhaps we can’t ever make the “perfect” forms plugin, but it’s the striving for perfection that keeps us moving forward.
Let us know what you think about WordPress forms plugins and how you want them to work in different scenarios.
Also feel free to share features in your mind so that developers here who are willing to make forms plugins can develop them for you. Or would you rather build them yourself?
Rakhitha Nimesh is a software engineer and writer from Sri Lanka. He likes to develop applications and write on latest technologies. He is available for freelance writing and WordPress development. You can read his latest book on Building Impressive Presentations with Impress.js. He is a regular contributor to 1stWebDesigner, Tuts+ network and SitePoint network. Make sure to follow him on Google+.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Form Design Patterns