Conditional logic is the key to online forms
Physical forms don’t ever feel as imposing as web forms. I don’t know why that is, but when I get a form at a doctor’s office, for example, that form collects tons of data on a single sheet of paper and I don’t feel stressed.
But when people design forms on your websites, because of the way most forms are designed, the form that might collect the same data ends up taking up the virtual space of three pages.
How do you get around this problem? You only show the fields that you need to. In other words, you do the thing that you can’t do on paper forms – you dynamically present (using conditional logic) only the fields that are appropriate to each user.
Because this is a critical feature of online forms, it’s no surprise that many WordPress form plugins support conditional logic.
These plugins offer it as a key part of their main features:
These plugins offer it as a part of their “pro” offering, or as an add-on:
The Cost of Conditional Logic in WordPress Form Plugins
Here you see the cost of the plugin (and added add-on, if needed) to do an apples-to-apples comparison.Plugin Name Add-on/License required? Plugin Cost Add-on/License Total PriceNinja FormsAdd-on$0$49$49WPFormsLicense (Basic)$39$0$39Formidable ProLicense (Personal)$49$0$49Gravity FormsLicense (Personal)$39$0$39Caldera FormsNone$0$0$0
(Note, this is not a sponsored post but some of the links above are affiliate links which means if you buy a product from these links, I will receive a small thank you, in the form of affiliate revenue. As I’ve articulated before, this doesn’t impact my stated opinions in this post. If you’re uncomfortable with these links, you can type the names of these plugins directly into your browser and find them via Google.)
Comparing their support for conditional logic
The good news is that each of these WordPress form plugins support conditional logic in one way or another. Some offer more nuance than others, and I’ll show you that below. But let’s start with the good news – if you use any of these plugins, you’ll be in a pretty good spot – especially because the cost of buying them is under $50.
There are three kinds of conditional logic I normally look for. Here they are.
Displaying Questions (Fields) Conditionally
As I started this post, I talked about the need to show or hide fields based on another question that was answered. All of the plugins supported this feature. Some of them did it directly in the form field control, while others did it in a central place.
WPForms did it directly as you were building the field in your form.
This approach makes it easy to configure and also ensures that I can understand the logic really well. It supports both “and” and “or” functions (show this field if this option says this AND this other field says that, OR show this field if this option says something else).
This approach is the one multiple form plugin vendors choose and the rule groups that WPForms supports is powerful because it supports a lot of variable expressions.
Another way to do the “or” statement is how Formidable Pro does it, with the option for “all or any” in their conditional logic processing.
What you notice with the “any” option is that you can mix and match multiple fields. In this case what I’m doing is saying that I want a particular field / question to show up if a) the initial question is answered one way, or b) a different sub-question is answered a specific way.
This kind of logic chaining between multiple questions is powerful (as in the case of the example I’m using for all these forms) because I can daisy chain the logic to fields that may not even be visible to everyone.
It looks like this:
Who you trying to contact > sales > show sales question
Who you trying to contact > product > show product question
Who you trying to contact > support > show support question, also show if product was selected with support option chosen
Of course, this brings up a challenge dynamic that wasn’t solved by many of the plugins.
When a person changes an earlier option, and starts the logic again, do you support a way to hide the previously shown question?
Most of the plugins create a single “show” or “hide” logic at the start of their conditional logic articulation. This means you don’t have the ability to create a secondary “hide” path once you’ve started with the “show” logic.
Only Ninja Forms supports this – because they aren’t doing the conditional logic within the field creation. They have it centrally managed like Caldera Forms, but with more advanced capabilities.
Sending Email Notifications Conditionally
All of the plugins let you manage conditional emails based on form field selections. WP Forms, Ninja Forms, and Formidable Pro all make it pretty easy (see wpforms below).
The UI for Caldera seems a bit more complex than it needs to be. Mostly because they separate the form processing from the actual email notification. So you have to create a form processor and then work out the body of the email separately.
But it’s Gravity Forms that adds a tiny bit more to the process. At the bottom you see the standard conditional logic to determine if you should process this email or not. But at the top, they add some additional conditional logic for the recipient. This means you could say, not only send it if it goes to sales, but based on other fields, send it to different sales people.
While you could do this with the others, you’d be creating a lot more entries in a more complicated way.
Form Completion Routing Conditionally
The third conditional logic feature I like is what I get to do when a form is completed (or submitted). It’s post-form processing and while every plugin gives me the ability to either show a message, redirect to a url, or show a specific page on the site, almost none of them let me use conditional logic in that selection.
They just give me those three options. And of course, I want more.
Thankfully, Gravity Forms does this and after lots of conversations almost a year ago with the Ninja Forms guys, they have delivered the power I like.
This is where you see the advantage of centralizing your conditional logic. They can offer me conditional logic on form fields, on emails, and even on routing – making it really powerful.
How do you choose?
The question of which plugin you choose for your WordPress forms is always going to be based on a variety of factors that are important to you.
If you want to spend absolutely no money, you could go with Caldera Forms, but I find the UI the least pleasing of all of them. That said, some people would make that trade-off every day.
If you want to get the most for the money you spend, while also being really price-focused, WP Forms offers a ton of value at $39 and their conditional logic is really solid. Outside of page routing on completion, it’s UI is clean, easy to read and use, and beats everyone else on price.
If you want all the conditional logic I like, then you’re going to want to take a look at Ninja Forms. But you should note that when you start down this route, you’ll end up needing to pay for other features (because many of their features come as paid-for add-ons).
The best news is that you can use any of these and still get most of the conditional logic you want or need.