
Powerful Conditions for Precise Content Targeting
Conditions are what make If-So flexible. They let you define exactly when content should appear by matching visitor context, behavior, or technical parameters.
Conditions can be used across different conditional content creation methods and work with every page builder, including Conditional Triggers, Dynamic Keyword Insertion (DKI), CSV-based content, and conditional display for Elementor and Gutenberg elements.
As the Conditional Trigger is the primary method, it supports the full set of available conditions, while other methods use the same condition logic but may support only a subset of them.
Conditions by Category
Below is a list of all available conditions, grouped by category. Each row represents a condition and the input options it supports. The columns on the right indicate which conditional content creation methods support that condition.
Geolocation
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| User’s Country | Is / Is Not | ✓ | ✓ | ✓ | ✓ | ✓ |
| User’s State | Is / Is Not | ✓ | ✓ | ✓ | ✓ | ✓ |
| User’s City | Is / Is Not | ✓ | ✓ | ✓ | ✓ | ✓ |
| User’s Continent | Is / Is Not | ✓ | ✓ | ✓ | ✓ | ✓ |
| User’s Timezone | Is / Is Not | ✓ | ✓ | ✓ | ✓ | ✓ |
Marketing & Advertising
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| Dynamic Link | Equals | ✓ | ✓ | ✓ | ✓ | ✓ |
| Page URL | Is / Is Not / Contains / Does Not Contain | ✓ | ✓ | ✓ | ✓ | |
| Post Category | Is / Is Not | ✓ | ✓ | ✓ | ||
| UTM Parameters | Is / Is Not / Contains / Does Not Contain | ✓ | ✓ | ✓ | ✓ | |
| Google Ads | Search Term | ✓ | ✓ | ✓ | ✓ | |
| Facebook Ads | Search Term | ✓ | ✓ | ✓ | ||
| Countdown Status | Countdown Is Active / Not Active | ✓ | ||||
Visitor Behavior
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| Returning Visitor | New Visitor / Returning Visitor | ✓ | ✓ | ✓ | ||
| Pages Visited | URL Is / Is Not / Contains | ✓ | ✓ | ✓ | ||
| Referral Source | URL Is / Is Not / Contains | ✓ | ✓ | ✓ | ✓ | ✓ |
| Number of Version Views | Equals | ✓ | ||||
| Trigger visited | Is / Is Not | ✓ | ||||
Visitor Attributes
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| Browser Language | Is / Is Not | ✓ | ✓ | ✓ | ||
| Device Type | Equals | ✓ | ✓ | ✓ | ||
| Logged-in / Out | Logged-In / Out | ✓ | ✓ | ✓ | ||
| Custom User Profile Fields | Text Field Is / Is Not / Contains ; Date Field Is After / Before ; Days Since/After Registration | ✓ | ||||
| User Details | Equals / Is More Than / Is Less Than | ✓ | ✓ | ✓ | ||
| Browser Type | Is / Is Not | ✓ | ||||
| Operating System | Is / Is Not | ✓ | ||||
Date & Time
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| Start & End Date | Date Range / Before / After | ✓ | ✓ | ✓ | ✓ | |
| Schedule | Date Range / Before / After | ✓ | ✓ | |||
| Day of the Month | Date Range / Before / After | ✓ | ||||
WooCommerce
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| Products in the Cart | Is / Is Not | ✓ | ✓ | ✓ | ||
| Products Purchased | Is / Is Not | ✓ | ✓ | ✓ | ||
| Units in Stock | Equals / Is More Than / Is Less Than | ✓ | ✓ | ✓ | ||
| Total Spent | Equals / Is More Than / Is Less Than | ✓ | ✓ | ✓ | ||
| Average Order Value | Equals / Is More Than / Is Less Than | ✓ | ✓ | ✓ | ||
| Customer Details | Equals / Is More Than / Is Less Than | ✓ | ✓ | ✓ | ||
Integrations
| Condition | Input Options | Conditional Content Creation Methods | ||||
|---|---|---|---|---|---|---|
Trigger | DKI | CSV | Elementor | Gutenberg | ||
| WC Subscriptions | Is / Is Not | ✓ | ✓ | |||
| WC Memberships | Is / Is Not | ✓ | ✓ | |||
| MemberPress | Is / Is Not | ✓ | ||||
| Paid Memberships Pro | User Membership Level | ✓ | ||||
| WishList Member | User WishList Level | ✓ | ||||
| WP Job Manager | WP Job Manager | ✓ | ||||
| LearnDash | Enrollment Status / Completion Rate / Quiz Score | ✓ | ||||
| Weglot | User’s Displayed Language | ✓ | ✓ | ✓ | ||
| Easy Digital Downloads | Total Spent Value Of Items In Cart Product / Category In Cart Product / Category Purchased Numbers of Items in Cart Discount Code | ✓ | ||||
| AffiliateWP | Referral Source / Affiliate Referral | ✓ | ||||
| ACF | Field Value Is / Is Not | ✓ | ✓ | ✓ | ||
FAQs
- Can I set dynamic content using AND conditions?
Yes.
- Using Conditional Trigger: Create two separate triggers and nest one inside the other by inserting the shortcode of one trigger into the content of the other. If-So first evaluates the outer trigger, and only if its condition is met does it proceed to evaluate the inner trigger. The content is displayed only when the conditions of both triggers are met.
- Using Conditional Elements / Blocks: Combine methods by placing a trigger inside a conditional Elementor or Gutenberg element (or vice versa), so all conditions must be met for the content to appear. Alternativly, you van wrap the element or block inside a section or group element, assign one condition to the wrapping element, and another condition to the inner element.
- Using Conditional Trigger: Create two separate triggers and nest one inside the other by inserting the shortcode of one trigger into the content of the other. If-So first evaluates the outer trigger, and only if its condition is met does it proceed to evaluate the inner trigger. The content is displayed only when the conditions of both triggers are met.
- Does If-So support OR conditions?
Yes.
Using a Conditional Trigger: Create a single trigger with multiple versions. If-So evaluates the conditions in order (from top to bottom, starting with version A) and displays the first version whose condition is met.
Using Conditional Elements / Blocks: Duplicate the conditional element or block and set a single condition for each version. If multiple conditions could be met at the same time, use a Conditional Trigger instead.




