Conditional logic forms adapt to each person filling them out. Instead of showing every field to every user, a form builder with conditional logic lets you create WordPress forms that respond to selections in real time: hiding irrelevant fields, showing follow-up questions, routing notifications to the right team member, and displaying different outcomes based on answers.
Ninja Forms makes all of this possible with a point-and-click interface. No coding, no complex setup. Just rules that make your forms smarter.
With Ninja Forms Conditional Logic, you can easily:
Conditional Logic Features
The Conditional Logic add-on for Ninja Forms gives you full control over how your forms behave. Here’s what you can do:
Show and hide fields based on user input
This is the core of conditional logic: making fields appear or disappear based on what users select. Choose an option from a dropdown, and a new section of questions appears. Select “No” on a yes/no field, and irrelevant follow-up questions disappear.
This keeps forms clean and focused. Users only see what’s relevant to them, which means higher completion rates and better data quality. You can apply show/hide rules to individual fields, entire sections, or any combination.
Show and hide list options based on user input
Want to show or hide individual list items? Just like fields, you can show or hide selection options within any list field. Dropdowns, radio lists, any list. Show or hide one list option, or many. It’s all up to what your users need to see!
Change values in fields or calculations
Want to offer a discount if a user enters a coupon code? Change the price of an item if a customer orders more than x? Create a quiz that presents different options based on the user’s score? All of these and more are possible with the WordPress form plugin, Conditional Logic! With Ninja Forms logic, any value in a field or a calculation can change based on user input, and the form can change to reflect the value!
Send emails to different recipients conditionally
Route notification emails based on form responses. When a user selects “Billing” as their department, the submission goes to your billing team. When they select “Technical Support,” it goes to your tech team. Each selection triggers the right email action automatically.
This replaces manual email forwarding and ensures submissions reach the right person immediately. You can configure as many routing rules as you need, covering every department, location, or category your forms handle.
Display custom success messages
Show different confirmation messages based on how the form was filled out. A contact form could display “Thanks for your sales inquiry, we’ll be in touch within 24 hours” for sales questions and “Your support ticket has been submitted, check your email for updates” for support requests.
Custom success messages make submissions feel personal and set the right expectations for each type of response.
Redirect to different pages after submission
Send users to different pages based on their answers. A lead qualification form could redirect high-value prospects to a calendar booking page while sending general inquiries to a thank-you page. An event registration form could route attendees to different confirmation pages based on the ticket type they selected.
Conditional redirects work alongside or instead of success messages, giving you complete control over what happens after submission.
Control which actions fire on submission
Go beyond email routing. Conditional logic can control any form action: CRM integrations, email marketing subscriptions, payment processing, and more. Only subscribe someone to your mailing list if they checked the opt-in box. Only process a payment if they selected a paid option. Only create a CRM contact if they meet your lead criteria.
This prevents unwanted data from entering your systems and keeps your workflows clean.
Combine multiple rules for complex forms
Real forms rarely have simple logic. Conditional Logic supports multi-condition workflows where multiple rules work together. Show a field only when two conditions are both true. Trigger an email when any of three options is selected. Chain rules across different fields to create sophisticated form flows.
There’s no limit to the number of rules you can add. Build exactly the logic your workflow requires.
Build Smarter Forms in Minutes
The Conditional Logic add-on is included with any Ninja Forms membership, or available as a standalone purchase. Pick your plan above and start building forms that adapt to every user.
Priority email support and 14-day money-back guarantee included.
Build WordPress Forms with Conditional Logic
Setting up conditional logic in Ninja Forms takes minutes, not hours. The entire process happens inside the WordPress admin with a visual rule builder. No PHP, no JavaScript, no external tools.
Here’s how it works:
- Build your form using the drag-and-drop form builder. Add all the fields you need, including the ones that should only appear conditionally.
- Open the conditional logic panel under the Advanced settings of the form builder. All your rules are organized in one place for easy management!
- Set your rules: choose the trigger field, the comparison (equals, contains, greater than, etc.), and the value. Then choose what happens when the condition is met.
- Preview and publish. Test your conditional rules in the form preview, then publish when everything works as expected.
Every rule uses the same consistent interface. Whether you’re hiding a field, routing an email, or controlling a redirect, the setup process is identical. Learn it once, apply it everywhere.

Common Use Cases for Conditional Logic Forms
Conditional logic works wherever your forms need to adapt. Here are some of the most popular ways customers use it:
- Lead qualification forms: Ask screening questions and use conditional logic to qualify leads automatically. Route high-value prospects to your sales team and general inquiries to a follow-up email sequence. Show different follow-up questions based on industry, company size, or budget range.
- Customer support forms: Let users select their issue type and conditionally show the right follow-up fields. Billing questions get routed to accounting, technical issues get routed to engineering, and each team receives only the information they need.
- Event registration forms: Show different options based on ticket type. VIP ticket holders see meal preference and seating options. Standard ticket holders see a simpler confirmation. Conditional redirects send each group to the appropriate confirmation page.
- Survey and feedback forms: Branch your survey based on answers. A respondent who rates their experience as “Poor” gets follow-up questions about what went wrong. Someone who rates it “Excellent” gets a request for a testimonial. Conditional branching keeps surveys relevant and short.
- Job application forms: Show different fields based on the position applied for. Engineering candidates see a technical skills section. Marketing candidates see a portfolio upload field. Each applicant fills out only what’s relevant to their role.
- Order forms with options: Display conditional fields based on product selections. When a customer adds customization to their order, show the customization options. When they choose standard, skip straight to checkout details.
Conditional Logic Works with Other Ninja Forms Add-Ons
Conditional Logic is designed to enhance the rest of the Ninja Forms ecosystem. Pair it with other add-ons to build more sophisticated form workflows:
- Multi-Part Forms: Show or skip entire form steps based on earlier answers. A multi-step application form can conditionally skip sections that don’t apply to certain applicants.
- File Uploads: Only show the file upload field when a user selects an option that requires a document. Keep forms clean for users who don’t need to upload anything.
- PayPal Checkout and Stripe: Conditionally process payments only when a paid option is selected. Forms that mix free and paid submissions can handle both flows with one form.
- Calculations: Change calculation formulas based on user selections. Conditional pricing, dynamic totals, and variable rates are all possible when Conditional Logic and Calculations work together.
Why Choose Ninja Forms for Conditional Logic?
Several WordPress form builders offer conditional logic. Here’s what sets Ninja Forms apart:
No Code Required: Every conditional rule is configured through a visual interface. If you can use a dropdown menu, you can build conditional logic. No PHP filters, no JavaScript snippets, no CSS workarounds.
Unified Logic Panel: All your logic in one place! Most form builders bury conditional rules inside individual fields, forcing you to click through every element to find and review your logic. Ninja Forms takes a different approach. A unified conditional logic panel, accessible from the Advanced tab in the form builder, puts every rule on your form in one place. View, edit, and understand how all your conditions interact without hunting through fields one by one.
Unlimited Rules: Add as many conditional rules as your form requires. There are no artificial limits on the number of conditions, triggers, or actions you can configure.
Free Core, Affordable Add-On: The Ninja Forms core plugin is free on WordPress.org. The Conditional Logic add-on is available as a standalone purchase or included with any Ninja Forms membership.
Works with the Entire Add-On Library: Conditional Logic integrates with every Ninja Forms add-on. Control file uploads, payment flows, multi-step navigation, email marketing subscriptions, and more through the same rule builder.
Priority Email Support: Paid customers get access to our support team. We respond to every ticket and help you configure conditional rules until they work exactly as needed.
14-Day Money-Back Guarantee: Try Conditional Logic risk-free. If it doesn’t meet your needs, we’ll refund your purchase within 14 days.
Your Forms Should Work as Hard as You Do
Conditional Logic turns static forms into dynamic conversations that adapt to every visitor. No code, no complexity, just smarter forms.
Choose a membership or individual plan above and build your first conditional form today.
Every purchase backed by priority email support and a 14-day money-back guarantee.
What is conditional logic in WordPress forms?
Conditional logic lets your WordPress forms respond to user input in real time. You set rules that control what happens based on selections or values: showing or hiding fields, routing email notifications to different recipients, displaying custom success messages, and redirecting to different pages after submission.
Can I show and hide form fields based on user selection?
Yes. Showing and hiding fields is the core feature of Conditional Logic. When a user makes a selection, related fields appear automatically. When they choose a different option, irrelevant fields disappear. This works with dropdowns, radio buttons, checkboxes, and other field types.
Do I need coding knowledge to use conditional logic?
No. Every conditional rule in Ninja Forms is configured through a visual, point-and-click interface. You select the trigger field, set the condition, and choose the action. No PHP, JavaScript, or CSS required.
Does conditional logic work with other Ninja Forms add-ons?
Yes. Conditional Logic integrates with every Ninja Forms add-on. You can conditionally show file upload fields, skip steps in multi-part forms, control when payment processing runs, and route CRM or email marketing actions based on form responses.
Is there a free form builder with conditional logic for WordPress?
The Ninja Forms core plugin is free on WordPress.org. The Conditional Logic add-on is a paid extension available as a standalone purchase or included with any Ninja Forms membership. Every purchase includes a 14-day money-back guarantee.
How does conditional email routing work?
You create email notification actions for each recipient (e.g., sales team, support team, billing). Then you add conditional rules that determine which email fires based on form responses. When a user selects “Billing Question,” only the billing team email triggers. All routing is configured visually with no code.
Changelog
3.1.3 (30 March 2026)
Bug Fixes:
- fix fatal error with Confirm field when conditionally changing paired field value
- fix radio field tab focus incorrectly triggering conditions
- fix keyboard navigation substring matching in checkbox list conditionals
- bypass validation for hidden Password/Email Confirm fields
- fix required fields in hidden Repeater fields blocking form submission
Enhancements:
- add editable labels and drag-and-drop sorting for conditional logic statements
- improve accessibility and UX for condition builder UI
3.1.2 (26 January 2026)
Bug Fixes:
- fix date field value persistence in AND/OR conditions
3.1.1 (21 July 2025)
Bug Fixes:
- Prevent undefined calc error
- Ensure optional property not declared before required property
3.1 (21 April 2021)
Changes:
- Conditions can now compare date fields. This allows users to create conditions that trigger when someone selects or enters a specific date or range.
3.0.28 (4 August 2020)
Bugs:
- Resolved an issue that was preventing file uploads from being saved properly upon submission.
- Conditions should no longer lose reference to fields that have been renamed in the form builder.
3.0.27 (23 July 2020)
Bugs:
- Resolved an issue that was causing conditions on actions to be ignored.
3.0.26.2 (21 July 2020)
Bugs:
- Resolved an issue with the plugin auto-updater.
3.0.26.1 (20 July 2020)
Security:
- Patched a data spoofing vulnerability that allowed required fields to be bypassed.
3.0.26 (25 September 2019)
Bugs:
- Resolved an issue that sometimes prevented actions from firing, even when they had no attached conditions.
- Forms with a Stripe or PayPal action should now properly complete once returning from the payment screen.
3.0.25 (16 September 2019)
Bugs:
- Hidden fields should now properly evaluate against empty.
- Recaptcha fields that are hidden will now properly render once shown.
Changes:
- Fields can now be conditionally set as required.
3.0.24 (23 January 2019)
Bugs:
- Conditions based on calculations should now be properly triggered on form load.
- Resolved an issue that was sometimes causing actions to always fire, regardless of conditions.
Changes:
- Several incompatible field types have been removed from the list of fields that conditions can be based on.
- Inverse statements will no longer be created by default on new do statements.
3.0.23 (11 January 2019)
Bugs:
- Action processing will now ignore incomplete conditional statements, which previously prevented the action from firing.
3.0.22 (14 June 2018)
Changes:
- Fields now display admin labels (if they exist) instead of labels in condition blocks.
3.0.21 (3 May 2018)
Bugs:
- Equals conditions based on calculations should now work properly.
3.0.20 (19 April 2018)
Bugs:
- Duplicating a field should no longer cause conditional logic to lose track of it as a conditional trigger.
3.0.19 (26 March 2018)
Bugs:
- Conditions based on the selection of single checkbox fields should now function properly.
3.0.18 (24 February 2018)
Bugs:
- Checkbox values can now be updated via conditional logic again.
3.0.17 (22 August 2017)
Bugs:
- Actions that use the greaterthan and lessthan comparators should work properly.
- Incorrectly setup conditions should no longer cause form display to crash.
3.0.16 (02 August 2017)
Bugs:
- Action conditions should now properly support calculations.
- Fixed a bug that could cause calculations to fail when using Conditional Logic.
3.0.15 (27 June 2017)
Changes:
- When setting up conditions, fields should now appear in alphabetical order within the field list.
Bugs:
- Conditional Logic should now work properly with the Save Progress add-on.
3.0.14 (31 May 2017)
Bugs:
- Tabbing through a checkbox list that has conditions will no longer trigger those conditions incorrectly.
3.0.13 (02 May 2017)
Bugs:
- Fixed a fatal error with PHP version 7.1 and higher.
3.0.12 (11 April 2017)
Changes:
- Actions like Stripe can now be conditionally ran.
Bugs:
- Fixed a bug that caused some conditions to evaluate improperly.
3.0.11 (19 January 2017)
Changes:
- Textbox fields can now be compared to an empty string.
Bugs:
- Help text should render properly for conditionally shown/hidden fields.
3.0.10 (09 December 2016)
Bugs:
- Fixed a bug that could cause the condition drawer to fail to open if a field was deleted.
- Conditional Logic shouldn\’t prevent or enable actions that are otherwise disabled.
3.0.9 (15 November 2016)
Bugs:
- Fixed a bug with list field options incorrectly triggering conditions based on partial matches.
- Fixed a bug with missing field values causing the form to not submit properly.
- Fixed a bug with false-positives when tabbing through a checkbox field.
Changes:
- Use the form cache for getting field data.
- Corrected processing for different data structures.
- Added a check for manually disabled actions, so as to not re-enable with conditions.
3.0.8 (25 October 2016)
Bugs:
- The \”any\” operator in actions should work properly in all cases.
- Fixed a bug that caused fatal errors when conditions weren\’t configured properly.
3.0.7 (13 October 2016)
Bugs:
- Creating conditions can now properly be based upon calculations.
- Fixed a bug with radio lists and the select option trigger.
Changes:
- When building conditions, fields should now show up with their admin label if one is set.
3.0.6 (03 October 2016)
Bugs:
- Required fields should no longer attempt to valide upon show.
- Country fields can now be used in conditions.
- Fixed a couple of conversion issues with older form imports.
- Conditionally shown/hidden fields should all show properly in submission data.
Changes:
- Conditions can now be created using > and < with textboxes and textareas.
3.0.5 (28 September 2016)
Bugs:
- File Uploads should now show in Conditional Logic conditions.
3.0.4 (22 September 2016)
Bugs:
- Fixed a bug that could cause the builder to crash when fields were removed if there was a condition based upon that field.
3.0.3 (11 September 2016)
- Bugs:*
- Fixed a bug that caused the condition edit drawer to fail to open.
3.0.2 (09 September 2016)
- Fixed a bug with conversion.
3.0.1 (06 September 2016)
- Updated with Ninja Forms v3.x compatibility
3.0 (06 September 2016)
- Updated with Ninja Forms v3.x compatibility
- Deprecated Ninja Forms v2.9.x compatible code
1.4.0 (13 April 2016)
Changes:
- Update for compatibility with WordPress 4.5 ( specifically the underscore.js update ).
1.3.9 (26 May 2015)
Bugs:
- Changed values should now reset to defaults when using the \”clear form\” setting.
1.3.8 (12 May 2015)
Bugs:
- Array elements should now work properly with the \”Contains\” action conditionals.
- Fixed a PHP Notice.
- Decimals should now be compared properly.
- Fixed a bug that could cause a PHP error if asp style tags are enabled in PHP.
1.3.7 (18 March 2015)
Bugs:
- Fixed a bug that could cause conditional field data to submit improperly.
1.3.6 (17 March 2015)
Bugs:
- Fixed a bug that could cause JavaScript to load older versions of files.
1.3.5 (4 March 2015)
Bugs:
- Fixed a bug that could cause conditionally hidden calculations to fail.
- List options should work properly in version 2.9 of Ninja Forms.
1.3.4 (3 March 2015)
Bugs:
- Fixed a bug that could prevent new conditions from being added.
1.3.3 (27 February 2015)
Changes:
- Preparing for the release of Ninja Forms version 2.9.
1.3.1 (17 November 2014)
Bugs:
- Fixing bad domain/translation issues.
- Fixed a bug with checkbox lists and notification conditions.
- Duplicating a page with conditions using multi-part forms should now properly duplicate those conditions.
- Fixed several issues related to i18n.
1.3 (28 October 2014)
Features:
- Conditional Logic now supports conditional notifications.
- Only show, display, or send a notification when a user submits specific form data.
Changes:
- Custom conditional triggers can be added for notifications.
Bugs:
- Fixed a bug that caused conditionals based upon other conditional fields to work improperly.
- Conditionally hidden totals should now be properly removed from the all fields table.
1.2.7 (24 July 2014)
Changes:
- Compatibility with Ninja Forms 2.7.
1.2.6
Bugs:
- Fixed a bug that prevented some users from getting automatic updates.
1.2.5
Bugs:
- Fixed a bug that could cause conditions not to work in some AJAX setups.
1.2.4
Changes:
- Conditionals should now not be applied when editing a form in the wp-admin.
Bugs:
- Fixed a bug with the change value setting.
1.2.3
Bugs:
- Fixed a bug that prevented the \’add_value\’ and \’change_value\’ actions from working properly in some instances.
1.2.2
Bugs:
- Fixed a bug with required fields that were conditionally hidden.
- Removed console logs that were causing problems in IE9.
- Fixed a bug that caused the Add Value setting not to work properly.
1.2.1
Bugs:
- Fixed several bugs that related to pre-populating conditional fields with multi-part forms.
1.2
Changes:
- Added support for the new Ninja Forms loading system. This should significantly improve loading speed for forms that use conditionals.
1.1.1
Bugs:
- Fixed a bug that could prevent conditionals from working properly with required fields.
- Fixed a bug that could cause conditional logic to break when labels contained long strings of HTML.
Changes:
- Updating the JS so that when an element is shown/hidden, a jQuery event is fired after the show/hide is complete.
- Removed old licensing file.
1.1
Bugs:
- Fixed a bug that caused the \”Change Value\” conditional action to fail in some cases.
- Fixed a bug that prevented conditionals from working properly with hidden fields.
- Fixed several PHP Notices.
1.0.10
Bugs:
- Fixed a bug that prevented calculations from working properly when a field that the calculation was based upon was hidden with conditional logic.
1.0.9
Changes:
- Added a \”visible\” data attribute.
- Moved functions from Ninja Forms core to this extension.
Bugs:
- Fixed several bugs related to using calculation fields and conditionals.
1.0.8
Changes:
- Changed the license and auto-update system to the one available in Ninja Forms 2.2.47.
1.0.7
Changes:
- Changed references to wpninjas.com to ninjaforms.com.
1.0.6
Bugs:
- Fixed a bug that prevented conditionals from working properly in some installs.
1.0.5
- Fixed a bug that caused Conditionals to break calculation fields if they were hidden.
1.0.4
Changes:
- Updates for compatibility with WordPress 3.6
1.0.3
Bugs:
- Fixed a bug that prevented conditionals from working properly with calculation fields.
1.0.2
Bugs:
- Fixed a bug that caused conditionals with multiple criteria to fail when connected with the \”All\” parameter.
1.0.1
Changes:
- The Conditionals Extension can now be used with the Multi-Part Extension to show or hide entire pages.
1.0
Bugs:
- Fixed a bug that was causing dropdown list fields to work improperly with Conditional Logic.
0.9
Bugs:
- Fixed a bug that prevented conditionals from working properly with multi-checkbox lists and multi-radio button lists.
0.8
Changes:
- Changed the display JS slightly to be more efficient.
0.7
Bugs:
- Conditional fields should now behave as expected when editing user submissions.
0.6
Bugs:
- Fixed a bug that prevented conditionals from working properly with checkbox and radio list types.
0.5
Changes:
- Moved a JS function from ninja-forms-conditionals-admin.js to the ninja-forms-admin.js.
0.4
- Fixed a bug that prevented multiple forms with conditionals from being placed on the same page.
0.3
- Various bug fixes including:
- Adding multiple forms with conditions to a single page will now work normally.
0.2
- Various bug fixes.
- Changed the way that javascript and css files are loaded in extensions.


