Speedy Answers

Enter a keyword or select a category to find the information you’re looking for.

  • How can I use If-So to set conditions on an entire page or post type?

    There are two main ways to apply conditions to an entire page or post type:

    1. Use the “show post” shortcode to load full page content dynamically

    Create the page content on a separate page, then use the If-So show post shortcode to display that page as a dynamic version inside a conditional trigger. Repeat this step for each version you want to create. Finally, replace the main page’s content with the trigger shortcode. The result: when a visitor loads the page, If-So evaluates the conditions, renders the appropriate show post shortcode, and displays the content of the corresponding page. Learn more

    2. Set up a Conditional Redirect

    Instead of loading the content dynamically, you can redirect visitors to different pages based on conditions such as geolocation, query strings, user status, and more. Each audience is sent to a different destination page, allowing you to personalize the entire experience without modifying the original page content. More about conditional redirect.

  • 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.

    Click here to learn more

  • Why don’t GA4 reports match If-So’s built-in stats data?

    Google Analytics 4 (GA4) and If-So’s built-in statistics may show different results due to several factors, primarily revolving around how GA4 tracks and processes data:

    1. Tracking Methodologies:
      GA4 and If-So use different tracking mechanisms. GA4 may miss certain user interactions due to tracking consent, ad blockers, or browser privacy settings. If-So, on the other hand, directly tracks interactions based on its internal logic, which may offer a more comprehensive view of specific user actions on personalized content.
    2. Sampling and Data Processing:
      GA4 often uses data sampling, especially for large data sets. This means that not all visits or interactions are included in the reports, leading to potential discrepancies in the numbers compared to If-So’s unsampled, direct tracking.
    3. Timing and Delays:
      GA4 data is not always real-time and may take up to 24–48 hours to process. If-So’s stats, however, are generally updated immediately, leading to a more real-time reflection of user behavior.
    4. Data Filtering and User Privacy:
      GA4 applies several filters based on user privacy settings (such as opting out of tracking) or data-sharing preferences, resulting in fewer reported events. If-So might track users more directly because it operates within your site’s environment and does not rely on third-party scripts.
      Additionally, If-So does not count views from admin users, while GA4 does—unless you’ve specifically configured GA4 not to.

    Due to these differences in tracking and data handling, it’s expected that GA4 and If-So’s stats may not align perfectly. If you need more granular or immediate data on specific user interactions, If-So’s stats are likely to provide more accurate insights related to your dynamic content.

    User Location Data

    When it comes to detecting a user’s location, it’s important to note that If-So and GA4 rely on different databases. As a result, their methods may vary, and the location data they provide may not always be 100% accurate.

    If-So allows you to log every call that triggers the geolocation service. The data in these logs can shed light on any discrepancies between the reports and help identify potential inaccuracies (click here and scroll to the title “Manual Blocking” to learn more)

  • How to add CSS to my page or website: 3 methods

    There are several ways to add custom CSS to a WordPress site, depending on your needs and level of control.

    1. Using the WordPress Additional CSS Customizer

    The easiest way to add CSS is through the WordPress Customizer. From your dashboard, go to Appearance → Customize → Additional CSS. A text area will open where you can type or paste your CSS code. As you add styles, you’ll see a live preview of the changes before publishing.

    WP Additional CSS

    2. Using an HTML block (in the block editor)

    If you want to style a specific page or section, you can use an HTML block within the Gutenberg editor. Add an HTML block, wrap your content with <style> tags, and include your CSS code. For example:

    <style>
    h2 { color: #0073aa; }
    </style>
    

    This method applies styles only to that page or post.

    3. Using a Child Theme

    For advanced customization, create a child theme and add your CSS to its style.css file. This gives you full control and ensures your changes persist after theme updates. It’s the preferred approach for developers or larger design changes. Official WordPress documentation on child themes.

  • How can I add a cookie on click using HTML?

    The following code creates a button that adds a cookie with the name ‘test-cookie-on click’ and the value ‘clicked’ when clicked.

    This code can be applied to any HTML element.

    The cookie duration in this code is 307584000000 seconds (365 days). Feel free to change the value to fit your requirements.

    <button onclick="
      let cookieName = 'test-cookie-on click'
      let cookieValue = 'clicked'
      let cookieExpireTime = 307584000000
    
      setCookie(cookieName, cookieValue, cookieExpireTime)
    
      function setCookie(name,value,time) {
        var expires = ''
        if (time) {
          var date = new Date()
          date.setTime(date.getTime() + time)
          expires = '; expires=' + date.toUTCString()
        }
        document.cookie = name + '=' + (value || '')  + expires + '; path=/'
      }
    ">
      Add a Cookie
    </button>

    Result:

  • Blocking specific users from the geolocation service

    You can block certain users from the geolocation service using one of the following functions (or by creating a custom function of your choice):

    Block by the user’s IP (or server IP if it’s a bot)

    Add the following code to your function.php file, and replace the XX.XX… and YY.YYY… placeholders with the IPs you want to block.

    • The code only blocks the IPs from the geolocation functionality, and not from accessing your website.
    • Blocked IPs will see the default content version.
    add_filter('ifso_exclude_from_geo',function($exclude){ $exclude['ip'] = ['XX.XX.XXX.XXX','YY.YYY.YYY.YYY']; return $exclude; });

    Block logged-in users

    add_filter('ifso_exclude_from_geo',function($exclude){
    	if(!is_user_logged_in()){
    		$exclude['blockme'] = true;
    		return $exclude;
    	}
    });
    

    Block Administrators

    add_filter('ifso_exclude_from_geo',function($exclude){
    	if(is_user_logged_in()){
    		$user = wp_get_current_user();
    		if ( in_array( 'administrator', (array) $user->roles ) ) {
    			$exclude['blockme'] = true;
    			return $exclude;
    		}
    	}
    });

  • Is it possible to create a self-selection form with multiple fields?

    While we do not offer a pre-built solution for that specific functionality, you can achieve the desired result by following these steps:

    1. Create multiple select forms and position them on the page.
    2. Exclude the button in all forms except the last one and set their Ajax value to “yes.” This configuration ensures that the user’s selections in these forms will be processed in the backend without requiring a page reload.
    3. In the last form, set the Ajax value to “no” and include a button. When the user submits the form, the page will reload.

    From the user’s point of view, it will appear as if the entire form was submitted simultaneously.

    Example (with two fields):

    (Question #1) Gender:
    [ifso_group_selection type="radio" options="Male,Female" ajax="yes" ]
    (Question #2) Age group:
    [ifso_group_selection type="radio" options="0-18,19-26,27-35,35+" redirect="https://if-so.com" ajax="no" button="Continue" orientation="vertical"]

    Result:

    Gender:

    Age group:

  • How can I load a trigger (set up dynamic content) across all of the website's pages?

    With If-So, you can easily insert a trigger above your site’s header on all pages directly from your WordPress dashboard. Additionally, you have the flexibility to exclude specific pages where the trigger should not be included.

    For more detailed instructions, you can refer to our documentation on loading a trigger on all pages.

  • Can I customize the page/website design (CSS) based on conditions?

    Absolutely! With If-So, you have the ability to dynamically load CSS (conditional CSS) and make changes to your website’s design based on specific conditions. Learn More.

  • Is it possible to display an event time based on the user's timezone?

    Absolutely!

    With If-So, you can easily set the time and use a shortcode to showcase the event time in the user’s own timezone.

    This feature eliminates any confusion and saves users the hassle of performing time conversions.

    Whether it’s displaying event schedules, business opening hours, or support availability, your users will appreciate the convenience.

    Learn more about using the shortcode for time-based displays.

  • Is it possible to initiate a countdown as soon as a user visits a page or performs a specific action?

       Yes 🙂 Learn more.

  • Can I create an evergreen (looped) countdown?

    Yes, with If-So you can create evergreen (looped) countdowns that automatically restart once they reach the end. This allows you to continuously display countdowns and maintain a sense of urgency on your website. Learn more.

  • Can I create countdowns? What makes If-So's countdowns special?

    If-So’s countdowns are designed to create a sense of urgency and encourage users to take action. What sets If-So’s countdowns apart is their conditional capabilities:

    • You can create “EverGreen” countdowns that continuously loop.
    • Countdowns can be triggered when a user visits a specific page.
    • Countdowns can also be triggered when a user performs a certain action, such as making a purchase.

    Learn more about If-So’s Countdowns and their powerful features.

  • Can I set up conditional upsells and cross-sells on my WooCommerce website?

    Upsells and cross-sells are effective strategies to boost revenue and increase the average order value.

    If you are using WooCommerce, If-So enables you to display customized special offers based on the products in the user’s cart or their previous purchase history, either before or after the checkout process. Learn more.

  • Enable If-So Shortcodes in WooCommerce Product Attribute Fields

    WooCommerce product attribute fields don’t render shortcodes by default. To display If-So shortcodes within these fields, add the following code snippet to the end of your theme’s functions.php file:

    add_filter('woocommerce_attribute',function($a){ return do_shortcode(wp_specialchars_decode($a,ENT_QUOTES)); });
    Enable Shortcodes in WooCommerce Product Attribute Fields
  • Can I display the visitor's country flag on my website?

    Yes, you can display the visitor’s country flag easily using a simple shortcode. Learn more.

  • What is the WooCommerce “Single Product Redirect” option?

    The Single Product Redirect option lets you control what happens when a user accesses a blocked product page directly (for example, by typing in the URL or clicking a saved link).

    If the user meets the condition you set (e.g., they’re from a specific country or region), they will automatically be redirected to a different page instead of seeing the blocked product.

    This helps you avoid showing irrelevant or restricted content – and keeps the user experience smooth.

    If you leave this field blank, users located in restricted locations will still be able to access the WooCommerce product page via a direct link.

    This option allows you to redirect all restricted products to the same URL. If you’re interested in redirecting users to different URLs, check out our geolocation redirect options:

    Would you like to redirect users to a completely different page or website? If so, please refer to the following resources:

    1. Redirection Templates
    2. Geolocation Redirect
  • Is it possible to show different content based on the visitor's membership level or subscription?

    If-So offers seamless integration with a variety of membership plugins, empowering you to present distinct content tailored to each user’s membership level or subscription tier.
    This feature enables personalized and targeted content based on their membership status.
    Learn more about our supported membership plugin integrations:

  • Can I display different content based on the user's past purchase history?

    Absolutely.
    If you are using WooCommerce or Easy Digital Downloads, you can leverage If-So to display dynamic content based on the user’s previously purchased products.
    To learn more:

  • Conditional WooCommerce Products Display

    While blocking or showing different products based on the user’s location is not a built-in option, If-So, in general, provides the ability to display dynamic content according to the user’s location.

    Option 1: Displaying Dynamic Content Based on User Location (or any other condition)

    If you want to utilize If-So to display conditional products, you can create an If-So trigger (with a geolocation condition or any other). Then, you can use one of WooCommerce’s shortcodes to display only the relevant products.

    Here’s an example of a trigger with three versions (you can create as many versions as you need):

    Version A:

    IF: Geolocation > State > Is  > Texas
    Then:

    [products limit="8" columns="4" category="Category#1"]

    Version B:

    IF: Geolocation > State > Is  > Florida
    Then:

    [products limit="8" columns="4" category="Category#1"]

    Default Version:

    [products limit="8" columns="4" category="Category#3"]

    Helpful links

    Important Considerations

    1. In case you are using the geolocation condition, please note that the geolocation service relies on IP-to-location mapping, which may not be 100% accurate. While we utilize a premium, highly accurate database to ensure the best possible accuracy, some discrepancies may occur. You can find more information about IP-to-location services and how they work here.
    2. If your site includes a “search products” option, the products will appear in the search results based on their relevance to the search query.

    Option 2: Creating conditional redirect from the product page

    Instead of using the method suggested above, you can create a conditional redirect from the product page to a different page (product or other).

    This option is more useful if you have a single product that you want to display in one state and a different variation of it that you want to display in another state.

    How to create a conditional redirect.

  • How can I change the user self-selection form design?

    When you generate the self-selection form using our form generator, you can also set a design for the form, and the CSS will be generated for you.

    Applying the CSS to your site is possible in several different ways, and having development skills is not a requirement. How to add custom CSS to your WordPress site.

  • Limiting the frequency of pop-up display per user

    If-So provides maximum flexibility in determining how often you want to display the pop-up to each user and for how long you want to prevent its display. This option is achieved by adding a cookie to the user’s browser, ensuring that the pop-up is not shown as long as the cookie exists.

    1. Add the following shortcode to the bottom of your pop-up’s content:
    [ifso-add-cookie name='prevent-pop-up' value='yes' time='2628288']

    * ‘2628288’ represents the cookie expiration date in seconds, equivalent to 30 days. Adjust the expiration time according to your requirements.

    1. Add another version to your pop-up.
    2. Drag the new version to the top (place it as version A) to ensure its condition is checked first.
      – Set the version’s condition to “If > Cookie > Is > Cookie Name: prevent-pop-up ; Cookie Value: yes”.
      -Leave the version’s content blank.
    3. Update the trigger.

    The result: When the pop-up is displayed for the first time, a cookie with the name “prevent-pop-up” will be added to the user’s browser. The next time the user visits a page with the pop-up’s shortcode, the condition of version A will be met. Since there is no content in version A, the pop-up will not be displayed.

  • Can dynamic content from CSV be loaded with the Ajax (page caching compatibility) option?

    Yes. The default Ajax loading settings apply to content that loads using the CSV extension.

    In addition, as with standard If-So triggers, you can override the default settings by adding the parameter ajax=”yes” or ajax=”no” to the CSV shortcode.

  • Content in columns A is broken after uploading a CSV file or saving a bulk

    By default, the number of allowed characters in a single cell in column A is 55. This limitation is intentional to optimize the loading speed of the dynamic content for users who don’t need a higher number of characters.

    To change the max allowed number of characters in column A:

    1. Add the code below to your functions.php file.
    2. Visit one of your website pages (it will run the code).
    3. Remove the code from your functions.php file.
    function modify_content_column(){
        global $wpdb;
        $wpdb->query("ALTER TABLE {$wpdb->prefix}ifso_bulks_content MODIFY COLUMN version VARCHAR(100);");
    }
    add_action('init','modify_content_column');
    

    The code above will change the number of allowed characters to 100. You can replace the number in the code with any other number. Bear in mind that if your file consists of many dynamic versions (thousands), there might be some loading speed implications (they will probably be insignificant, but it is worth checking).

    Please note that if you reduce the number of allowed characters, the new number you set will affect content created in the past.

  • Content is broken after uploading a CSV file or saving a bulk (in any column except column A)

    By default, the number of allowed characters in a single cell (except column A) is 1024. This limitation is intentional to optimize the loading speed of the dynamic content for users who don’t need a higher number of characters.

    To change the max allowed number of characters in the relevant column:

    1. Add the code below to your functions.php file.
    2. Visit one of your website pages (it will run the code).
    3. Remove the code from your functions.php file.
    function modify_content_column(){
    global $wpdb;
    $wpdb->query("ALTER TABLE {$wpdb->prefix}ifso_bulks_content MODIFY COLUMN content VARCHAR(2048);");
    }
    
    add_action('init','modify_content_column');
    

    The code above will change the number of allowed characters to 2,048. You can replace the number in the code with any other number. Bear in mind that if your file consists of many dynamic versions (thousands), there might be some loading speed implications (they will probably be insignificant, but it is worth checking).

    Please note that if you reduce the number of allowed characters, the new number you set will affect content created in the past.

  • Can I add users to an audience when a user clicks a button?

    The desired result can be easily achieved by adding a parameter to the URL that the button directs users to.

    1. Create a trigger with a Page URL condition:
      If: Page URL > Contains > domain.com?audience=type-1; Then: Your dynamic content (if desired)
    2. Toggle the audience section, located below the condition, and check the relevant “Add to audience” checkbox.
    3. Paste the trigger’s shortcode on the page/s users are redirected to after clicking the button.

    If your button is displayed on several different pages (on your header, footer, pop-up, etc.), and you wish the button to reload the same page, you can set its link value to be ?audience=type-1

  • Is it possible to display a visitor’s location using a shortcode?

    Yes. You can display a visitor’s continent, country, state, city, and timezone anywhere on your site using a simple shortcode.

    Example – the shortcode below displays the visitor’s country name

    [ifsoDKI type='geo' show='country']

    The option works out of the box and does not require custom code.

    See all available Geo DKI shortcodes.

  • How accurate is If-So’s geolocation service?

    If-So is designed to provide the best possible accuracy for location-based content.

    When visitors allow browser location access, the HTML5 Geolocation API can provide very precise, address-level accuracy. When this isn’t available, If-So uses IP-based location detection with a premium database that delivers reliable results for most use cases.

    As with any IP-to-location solution, accuracy can vary depending on factors such as the visitor’s network or ISP, especially on mobile connections.

    IP-based geolocation explained

  • Which geolocation service does If-So use?

    If-So uses the ipinfo premium IP-to-location database for geolocation-based content. We’ve found it to be highly accurate compared to similar services, and it is regularly updated to ensure reliable results.

    If you come across any inaccuracies, please report them to us and we’ll make sure they’re addressed.If-So uses the ipinfo premium IP-to-location database for geolocation-based content. We’ve found it to be highly accurate compared to similar services, and it is regularly updated to ensure reliable results.

    If you come across any inaccuracies, please report them to us and we’ll make sure they’re addressed.

  • Is it possible for visitors to manually select or override their detected location?

    Yes. You can allow visitors to manually select a location that overrides the automatically detected one.

    Once a location is selected, dynamic content is displayed based on the user’s choice.

    See how manual location selection works.

  • Can I change the category of If-So cookies?

    Yes. You can change the category of specific If-So cookies by using a simple WordPress filter. This is useful if you want better control over how cookies are classified for consent management or compliance tools.

    To do this, add the following code to your theme’s functions.php file (or to a custom plugin):

    add_filter('ifso_cookie_category', function($ctype, $cname) {
        if ($cname === 'MY_NECESSARY_COOKIE') {
            return 'necessary';
        }
        return $ctype;
    }, 10, 2);
    

    In this example, the cookie named MY_NECESSARY_COOKIE is explicitly assigned to the necessary category. All other cookies will keep their original category.

    Available cookie categories

    You can assign cookies to any of the following categories:

    • necessary
    • statistics
    • marketing
    • preferences

    This allows you to align If-So cookies with your site’s cookie consent logic and ensure they are handled correctly by your consent management solution.

  • Is If-So compatible with my page Builder?

    Yes! You can use If-So with just about any modern page builder.

    Here are the most common page builders our customers use:

    Learn more >>

  • Is If-So compatible with all browsers?

    This one is simple – Yes.

  • Does If-So work with server-side and WordPress caching solutions?

    Yes.

    Whether you are using a caching plugin or server caching, you can navigate to the plugin settings and enable the “Page Caching Compatibility” option.

    With the option enabled, dynamic triggers will be rendered in a separate request that will take place after the loading of the cached version.

    Learn more about Page Caching Compatibility.

  • Does If-So work with Cookie Consent (Cookie compliance) services?

    If-So integrates natively with three cookie compliance solutions and provides a hook that allows you to link additional services beyond the built-in integrations.

    Cookie consent services compatible with If-So:

    With these three services, cookies will not be added until the user consents to accept cookies (whether they are server-side cookies or JavaScript cookies).

    Please note that If-So integrates natively with Cookiebot and Complianz, but for the integration to work properly the corresponding WordPress plugins must be installed and active on your site.

    Realted questions:

  • Can If-So be used with Layer Slider?

    Yes, there are two ways to incorporate dynamic content with If-So and Layer Slider.

    The first method involves creating an If-So trigger and inserting its shortcode into the slide’s content field to add dynamic content to the slide.

    The second option is to display different layer sliders to different users. To achieve this, create an If-So trigger with multiple versions, and assign the different layer sliders as the content of each trigger using the sliders’ shortcode. However, note that if you choose this approach, you may not be able to load the trigger using Ajax.

  • Can I use If-So with the Advanced Custom Fields (ACF) WordPress plugin?

    Yes. You can use If-So with the ACF plugin.


    The first step is to create an If-So trigger and paste its shortcode inside the custom field. Since Advanced Custom Fields do not render shortcodes by default, next you’ll need to add the following filters to your functions.php file.  Please feel free to contact us if you need help with that.

    If you’d like to use If-So inside a Text field:
    add_filter(‘acf/format_value/type=text, ‘do_shortcode’);

    If you’d like to use If-So inside a Text Area field:
    add_filter(‘acf/format_value/type=textarea’, ‘do_shortcode’);

  • Is it possible to use If-So and WP Rocket together?

    Yes! Click here to learn more.

  • Can I use If-So in the page title field?

    Yes, you can.

    By default, the page/post title field doesn’t accept shortcodes. If you want to use If-So on your page title field simply go to the If-So > Settings on your WordPress dashboard and check the “Allow shortcodes in titles and menus” option.

    WordPress- allow shortcodes in the title
  • Can I use If-So to create dynamic menu items?

    Yes, you can! Here is a step-by-step guide on how to create dynamic menu items.

  • Can I spilt test 2 WordPress pages using If-So?

    Yes, technically, you can. Though one of the biggest advantages of If-So is that you don’t have to duplicate pages. Instead, you can split-test only a specific piece of content on the same page.

    Nevertheless, if you want to split-test a whole page, you can do so using a simple JavaScript redirect code that can be pasted inside an If-So trigger. We already have the redirect code ready for you. You can learn more and find it here.

  • Is it possible to block a page from users of a certain country?

    Yes. You can create a conditional redirect to redirect all the visitors from a specific certain to a different page.

  • Can I display the user's name on a website page using If-So?

    Yes, you can achieve this in different scenarios:

    1. If the user is logged in, you can use our User Details Shortcode to display the user’s name.
    2. If the user is not logged in, you can pass the user’s name as a value in a query parameter in the URL and then utilize our Query-string DK shortcode to dynamically insert and display the name. The user’s name can be stored as a cookie, allowing it to be accessed and displayed on different pages as the user continues browsing the website.
  • Can the Geolocation DKI Shortcode display location names in languages other than English?

    The DKI shortcode retrieves values directly from our IP-to-location database and is limited to displaying location names in English. However, our CSV extension offers a solution:

    1. Ensure the CSV extension is installed on your site.
    2. Download our “All-countries” CSV file (click to download).
    3. Insert the desired language’s location names in column D.
    4. On your WP dashboard, create a new bulk with a geolocation condition and upload the file.
    5. Paste the CSV shortcode, displaying values from column D, wherever you want to show the country name on your page.

  • Can I display conditional pop-ups using If-So?

    Absolutely! Any If-So trigger can be displayed as a pop-up (overlay). The pop-up will only appear if the condition is met. Learn more about it.

    Learn more about creating pop-ups using If-So

  • Is it possible to set up conditional redirects (redirecting users to different pages based on conditions)?

    Yes, you can set up conditional redirects based on any If-So condition.

    For a step-by-step guide, click here.

  • Can I use the If-So WP Plugin with any WordPress theme?

    You sure can! We haven’t come across a theme that the If-So WP Plugin can’t work with.

    If you experience any compatibility difficulties while working with your theme, contact our support team to resolve them.

  • Can I use If-So on a multisite WordPress installation?

    Yes, you can.

    Each subsite will require its own license.

    If-So cannot be network-activated. The license will have to be activated separately on each subsite.

  • Which conditions (rules) can I set with If-So?

    If-So provides a diverse range of conditions to choose from, including Geolocation, Google Ads search terms, Dynamic links, Schedule, and many more.

    Explore the complete list available of conditions.

  • How does dynamic content impact website SEO?

    Dynamic content can positively impact SEO success by providing a personalized and engaging user experience.

    We have identified certain best practices and potential risks that you should be aware of when it comes to your site’s ranking. Learn more.

  • Search engines and dynamic content - Which content version will search engines crawl?

    If-So is a server-side solution. Conditions are checked when a page with dynamic content is loaded, and content is displayed accordingly. Only one version of the content is rendered (loaded).

    The content version that search engines will crawl depends on the condition you have set.

    Examples:

    Geolocation – If you have set a geolocation condition, the version that search engines will crawl depends on the actual location of the search bot that crawls your site.

    Returning Visitor – Generally, Google and other search engines crawl the web stateless, i.e., without cookies. Search engines will crawl the version displayed for first-time visitors.

    User Role/Logged-in Users – Search engines will crawl the version displayed for users who aren’t logged in.

    Dynamic Link / UTM Parameters – By default, search engines treat URLs with query strings as a separate page; both the default version and the dynamic version will be crawled. In most cases, it will be wise to set a canonical so that search engines will treat the two versions as a single page.

    Learn more about dynamic content and SEO


  • Does If-So impact page speed or performance?

    In the majority of cases, If-So has a negligible effect on loading speed. However, the impact can vary depending on your server, website structure, and how you utilize the plugin.

    To put your worries at ease, we encourage you to take advantage of our 30-day money back guarantee and witness firsthand how If-So performs on your website.

  • Can I use If-So to show different meta data content (page title and description)?

    If-So shortcodes work in YOAST and RankMath title and description fields. They may also work with other SEO plugins, but this cannot be guaranteed. If you choose to embed dynamic content in these fields, ensure the trigger is loaded without AJAX by adding the parameter ajax=”no” to the trigger’s shortcode.

    It’s important to note that the content presented on the search result page cannot be dynamic. Search engines scan the site and display the metadata they crawled during their scan.

  • How can I Import and Export Triggers?

    To import a trigger: On your WordPress dashboard, go to If-So -> All Triggers, click “Import trigger” (the button is right below the page title), and upload your trigger’s JSON file.

    To export a trigger: On your WordPress dashboard, go to If-So -> All Triggers, hover over the trigger you want to export, and click “Export”.

  • Are there styling options available? If so, how are they accessed?

    If-So uses a TinyMCE editor with both visual and text (HTML) modes so that you can basically set up any content.

    If you are using a page builder and are looking for a more convenient way to design your content, the styling options that are available for you are:

    Gutenberg Users – You can assign conditions directly to a block (or group of blocks) instead of creating dynamic triggers. See how.

    Elementor Users – Save any widget or section as a template and apply it inside an If-So trigger using a shortcode. See how.

    Other page builders – Design your dynamic content in a new page and use the shortcode inside your If-So trigger to display the page content as your dynamic version. See how.

  • How do I enable AJAX loading of content?

    The way you load dynamic content with AJAX depends on your chosen method for displaying it.

    Dynamic Trigger

    • Option 1: Enable the “load with Ajax” setting in the plugin’s configuration.
    • Option 2: Include the attribute ajax=”yes” in the trigger’s shortcode. For example:
    [ifso id="123" ajax="yes"]

    More about Dynamic Trigger

    DKI Shortcodes

    • Include the attribute ajax=”yes” in the DKI shortcode for the trigger. For instance:
    [ifsoDKI type='geo' show='country' fallback='' ajax='yes']
    

    More about DKI shortcodes

    CSV Bulk

    • Include the attribute ajax=”yes” in the bulk’s shortcode
    [ifso_bulks id='1' column='B' ajax='yes']
    

    More about the CSV Bulk option

    Conditional Gutenberg block

    • Enable Ajax for each block individually. You can find the Ajax loading option below the condition.
    Conditional gutenberg block Ajax loading

    More about Conditional Gutenberg Blocks

    Conditional Elementor Element

    • Enable Ajax for each element individually. You can find the Ajax loading option below the condition.
    Conditional Elementor element Ajax loading

    More about Conditional Elementor Elements

  • 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.

    Click here to learn more

  • 500 error while trying to edit a page built with SiteOrigin

    If you are using the SiteOrigin page builder and experience a 500 error after publishing a page that contains an If-So trigger, try disabling the “the_content” filter option on the If-So plugin settings page. This should resolve the issue.

    the content filter

  • Does If-So work with Divi Builder?

    Yes, it does, and it’s extremely simple!

    When you create a dynamic trigger with If-So, you will receive a shortcode that you can embed anywhere on your website. Simply paste the shortcode inside a Divi text or code module.  Every time the page loads, one of the trigger’s versions will be displayed based on the condition.

    Can I build content with Divi and use it inside If-So?

    Yes, you can. Here’s how:

    1. Build a layout, section, or module inside Divi.
    2. Save it to the library
    3. Create a new If-So trigger, set a condition, and embed the saved layout using a shortcode.


      There are several ways to enable the option to embed elements from the library using a shortcode. The most simple one is using a free 3rd-party plugin called Simple Divi Shortcode.

    Please note that on the page where the If-So shortcode is placed, the section, row, and text box should have their margins and padding set to 0 all around.

    Do you have plans to create an integration with Divi, similar to the existing integrations with Elementor and Gutenberg?

    We dedicated a considerable amount of time to creating this integration, but we encountered technical challenges related to the structure of Divi. As a result, we had to pause our efforts, but we remain committed to revisiting it in the future.

  • How can I design the dynamic content of a trigger using my page builder?

    To design a trigger’s dynamic content using your page builder, simply create the content on a new separate page. Then use the dedicated “Show Post” shortcode to display that page inside your If-So trigger.

    This lets you design the content freely with your builder while still using If-So’s conditional logic.

    Learn more

    If you are using Gutenberg or Elementor, please check out our conditional blocks/element options:

  • Are there any known issues or limitations?

    No 🙂 We would love to hear from you if you encounter any issues. Please don’t hesitate to click here and create a support ticket. Our team is here to assist you!

  • How can I create dynamic content using the Gutenberg editor?

    Here are two possible methods you can use to achieve this:

    1. Creating a Conditional Gutenberg Block: By defining conditions at the block or group of blocks level, you can control their visibility. The blocks will be displayed only if the specified conditions are met.
    2. Setting up a Trigger and Embedding it on a Page: Utilize a sequence of If > Then conditions to determine the content displayed. Based on the defined conditions and their order, a single version of the content will dynamically appear on the page.

    Learn more about creating conditional content using Gutenebrg

  • Which options are available for creating dynamic content using Elementor?

    Here are two possible methods you can use to achieve this:

    1. Creating Conditional Elementor Elements: By defining conditions at the element (or section) level, you can control their visibility. The elements will be displayed only if the specified conditions are met. Learn more.

    2. Setting up a Trigger and Embedding it on a Page: Utilize a sequence of If > Then conditions to determine the content displayed. Based on the defined conditions and their order, a single version of the content will dynamically appear on the page. Learn more.

  • Conditional Triggers - An Alternative Method for Setting Up Conditional Elementor Elements

    In certain cases, you may find it necessary or preferable to create your dynamic content using an If-So trigger instead of directly setting the condition at the element level. This approach can be beneficial for the following reasons:

    • The specific condition you want to use is only achievable through triggers (such as A/B testing, Schedule, and Start and End date).
    • You’re interested in utilizing If-So’s integrated analytics system
    • You want to create a sequence of “If Not” conditions (e.g., If X, then Y; if not, check if Z, etc.)

    When you set up a trigger, If-So first checks the condition of the first content version, if it is met, the version is displayed, if not, it checks the condition of the next content version.

    You can create as many versions as you want.

    image

    The limitation (and the solution)

    One limitation of using triggers compared to conditional Elementor elements is that you cannot directly create your content using the Elementor editor within the trigger.

    For simple text, images, or titles, you can create them directly inside the trigger editor (WYSIWYG editor). The content will automatically adopt the styling of the surrounding element on your page.

    If you need or prefer to create your content using the Elementor builder, you can simply create it on your page, save it as an Elementor template, and then apply the template to the trigger using the template’s shortcode.

    *The same method works if you want to apply the template to the default content field of another element.

    Step-by-step, creating a conditional trigger

    1. On your WordPress dashboard, go to “If-So → Add New Trigger”.
    2. Click on “Select a condition” and select a condition.
    3. Paste the shortcode of the Elementor template into the content field of the respective version
    4. Repeat the above steps if you want to set up more dynamic versions.
    5. Configure a default content that will be displayed if none of the conditions are met.
    6. Press “Publish” and place the shortcode on your desired page to display the dynamic content. You can use a text, title, or shortcode element – all will work effectively.

    Saving content as an Elementor template and applying it to the trigger

    1. Open the page you are editing with Elementor.
    2. Create and design the desired section or element.
    3. Select the section or element and right-click on the “Edit Section” button.
    4. A menu will appear with several options. Choose the “Save as Template” option.
    5. Provide a suitable name for your template and save it.

    Obtaining the Template’s Shortcode

    Elementor Pro users: On your WordPress Dashboard, navigate to “Templates” and select “Saved Templates”, then Locate the desired template and copy its shortcode.

    Free (Elementor) version users: Search for a free third-party plugin, such as Piotnet, that offers similar functionality.

  • Does the Elementor integration work on the free version of the If-So plugin?

    Yes, it does.

    Yes, it does. All the functionality and conditions included in the free version will also work with the Elementor integration (click here for a list of the free vs. pro features).

  • Elementor widgets are not functional while being applied as part of an Elementor template inside an If-So trigger

    Some Elementor Elements (basically, those using javascript) might not work as expected while If-So’s Page Caching Compatibility option is enabled. The elements are applied as part of an Elementor Template embedded inside If-So using the template’s shortcode.

    Luckily, the fix is simpler than describing the problem 🙂

    Simply, paste the code below at the end of your functions.php file.

    wp_register_script( 'ifso-dummy-enqueue-to-attach-to', '',); wp_enqueue_script( 'ifso-dummy-enqueue-to-attach-to' ); wp_add_inline_script( 'ifso-dummy-enqueue-to-attach-to', " document.addEventListener('ifso_ajax_triggers_loaded',function(){ elementorFrontend.init(); });");


  • Elementor button element doesn't render shortcodes

    The Elementor button element does not automatically render shortcodes in the “text” field.

    If you wish to include an If-So shortcode within an Elementor button field to display dynamic text on the button, you can add the following code snippet to the end of your functions.php file.

    //Elementor button - render shortcode in URL
    add_filter('elementor/widget/before_render_content',function($el){
        if($el->get_name()==='button'){
            $link_setting = $el->get_settings('link');
            if(!empty($link_setting)){
                $link_setting['url'] = do_shortcode($link_setting['url']);
            }
            $el->set_settings('link',$link_setting);
        }
    });
  • Will using the If-So plugin add cookies to my website?

    Yes. Depending on the conditions and functions you choose to use, If-so uses cookies for some of its functionalities.

    All the cookies set by If-So are first-party cookies (added directly by your site) and thus will not be affected by the phase-out of third-party cookies.

    Cookies will only be used once you use a cookie-based condition or feature. Below are the features and conditions that will use cookies:

    Conditions:

    1. Pages visited (cookie name: ifso_page_visits)
    2. New and returning visitors (cookie name: Ifso_Visit_Counts)
    3. Trigger Visited (cookie name: ifso_viewed_triggers)
    4. Geolocation (cookie name: ifso_geo_data; only if you have set the tracking to be using a cookie instead of the default session-based option.

    Features

    1. Recurrence (cookie name: ifso_recurrence_data, ifso_recurrence_session_TRIGGER_ID)
    2. Audiences (cookie name: ifso_group_name)
    3. User Selection (based on the “Audiences” cookie)
    4. Analytics (cookie name: ifso_last_viewed, ifso_viewing_triggers)

    The table below shows the cookies names, description, and when they are created:

    Cookie NameDescriptionWhen is the cookie createdTypeDuration
    ifso_page_visitsUsed to keep track of pages visited by the user. Must be enabled in order to use the Pages Visited conditionThe cookie will not be created and updated if the “Deactivate Pages Visited Cookie” is checked.

    Disabling the cookie will not delete the cookie for users that already have the cookie
    Preferences & FunctionalSet by the site admin on the plugin’s settings
    ifso_recurrence_dataused for the If-So recurrence optionAdded when handling a trigger with “Always” or “Custom” recurrencePreferences & Functional3 years
    ifso_recurrence_session_TRIGGER_IDUsed for the If-So recurrence optionAdded when handling a trigger with a “Single session” recurrencePreferences & FunctionalOne session
    ifso_visit_countsUsed for user behavior (new/returning/num. of visits) triggerCreated and updated (increment) whenever an if-so trigger is renderedPreferences & Functional1 year (31,104,000 sec)
    ifso_last_viewedUsed to store the triggers’ “viewed last” for Analytics conversions.Created by default. Can be disabled through the plugin’s settings.Performance & AnalyticsSession
    ifso_viewing_triggersHolds data on triggers viewed on this page for Analytics in AJAX modeCreated by default. Can be disabled through the plugin’s settings (if analytics is turned off or not in AJAX mode)Performance & AnalyticsOne session
    ifso_viewed_triggersUsed for the ‘Triggers Visited’ conditionCreated by default. Added whenever a trigger is viewed. Can be disabled in the plugin’s settingsPreferences & FunctionalOne year
    ifso_group_nameUsed for the feature where a user is added to an audienceAdded only if you use the Groups optionPreferences & FunctionalConfigurable via the settings. Defaults to 1 year.
    ifso_geo_dataHolds the cache for If-So’s geolocation data When the “Disable use of PHP sessions” option is enabled in the plugin’s settings.Preferences & FunctionalSession
    ifso-geo-override-dataUsed for the location override functionalityIf the user selects a location from the listPreferences & FunctionalSession
    cookie ifso-request-browser-location Temporary cookie – indicates pending browser geolocation request on user visitWhen the option ‘Browser-Based Location’ in the plugin’s settings is set to ‘Whenever the user encounters geo-targeted content’ or ‘Every time the user visits the site,’ and the user encounters geo-targeted content, the cookie is deleted after the user chooses to allow or block the browser location option.Preferences & FunctionalSession
    ifso-browser-location-dataHolds the cache for If-So’s HTML5 Geolocation API dataOnce the user’s approval to share their browser location is receivedPreferences & FunctionalSession
    ifso-limited-conversionsPrevents a conversion from being counted more than once within a defined timeframeWhen the user encounters a conversion shortcode that includes the ‘do_once_per’ parameterPreferences & FunctionalSet by the site admin

  • How does If-So processes personal data?

    If-So processes the personal data that is collected through the plug-in as a data processor on your behalf and in accordance with our Data Processing Addendum.

    As such, you (the data controller) are responsible for providing your end-users with a proper privacy notice that covers your use of the If-So plug-in & cookies.

    Learn more about how If-So uses cookies.

  • Where can I find your Data Processing Addendum (DPA)?

    Click here for our Data Processing Addendum (DPA).

  • Is there a limit to the number of versions that can be created?

    No, there is no limit to the number of versions you can create. 

    Adding new versions is possible by clicking the “add a new version” button right below the last version of your trigger and a new box will appear.

    Keep in mind though that  depending on your server and how your site is built, a large number of versions may affect your site it two ways:

    1. At some point (usually after creating at least 30 versions), new versions will not be saved after hitting “Update”. This can easily be solved by increasing the max_var PHP max input var. Learn more.
    2. If you are using a large number of versions, at some point the loading speed of your page will be affected. Usually, around 50 versions, should not be an issue, but regularly checking loading time during the creation of the trigger is a best practice.

    If you have a large number of different versions, we highly recommend using our CSV (bulks) extension instead of a dynamic trigger.

Pre-sale & Getting started

How-To & Feasibility

Troubleshooting

Plans and Pricing

Billing and Payments

Geolocation

Elementor Integration

Page Builders

GDPR & Privacy

Developers