Enter a keyword or select a category to find the information you’re looking for.
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.
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.
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.
Yes 🙂 Learn more.
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.
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:
Learn more about If-So’s Countdowns and their powerful features.
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.
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)); });
If-So allows you to display testimonials that are specific to the user’s language or location. Learn more.
Yes, you can display the visitor’s country flag easily using a simple shortcode. Learn more.
If-So provides two options for tailoring landing page content based on the user’s Ads campaign, ad group, ad, or keyword:
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:
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:
Yes, you can use the Cookie/Session condition to target specific cookies or sessions and show dynamic content accordingly. Learn more >
If-So offers the capability to display dynamic content based on the user’s search term in Google Ads (or other advertising platforms like Bing, Facebook, etc.). Learn more.
Note that this feature is currently not available for organic search. If it becomes technically feasible in the future, we will be sure to add it.
Yes, check out the Start & End Date condition.
Yes, you can use the UTM Parameters condition to display dynamic content based on specific UTM parameters included in the URL. This allows you to target and personalize content based on campaign sources, mediums, terms, content, and more.
Yes. If you want to manually set IP-based content, you can use the User IP condition.
Alternatively, if you’re interested in displaying geotargeted content based on the user’s IP, you can check out the Geolocation condition.
Yes, If-So offers the Logged-in Users condition that allows you to show specific content exclusively to users who are logged into your website.
Yes, If-So provides the Post Category condition that allows you to target specific content based on the category of the page or post.
Absolutely. If-So offers multiple options for targeting content based on user behavior:
While If-So is not specifically designed for A/B testing, many users find it to be a valuable tool for conducting simple A/B tests. Its simplicity and built-in analytics make it easy to experiment with different variations of content and analyze their performance. Learn more.
Yes, you can use the Browser Type condition to target specific browsers for showing dynamic content.
Absolutely! If-So allows you to precisely target content based on specific WordPress user roles.
This feature works seamlessly with both native WordPress roles, such as administrator, author, editor, subscriber, and others, as well as custom roles created by third-party plugins or custom code. Learn more.
Yes, with If-So, you have the ability to schedule content to be displayed at specific times, including specific days of the week and hours of the day.
You can achieve this functionality by either creating a trigger with a Schedule condition or utilizing our CSV extension.
Yes. If-So allows you to target content based on the user’s referral source or referral URL. Learn more >
Yes, If-So allows you to target content based on a user’s operating system. Learn more >
Certainly! With If-So, you can display different content for users based on whether it’s their first visit to your site or if they have visited before. Learn more >
With If-So, you have multiple methods to achieve location-based content customization:
Certainly, If-So enables you to display dynamic content based on the user’s device type: desktop, tablet, or mobile. More about the Device Type condition >
Yes, you can utilize the Browser Language condition in If-So to target content based on the user’s browser language preference. Learn more >
Yes, you can do it using our WishList Membership extension
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.
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"]
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.
Yes, once a user self-selects, the selection is carried across all pages of the site. The solution is based on a cookie. If the user deletes the cookie or visits the site using another browser, the selection will not be saved.
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.
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.
[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.
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.
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.
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:
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.
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:
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.
Yes, if you have a custom user profile field created by any other WordPress plugin or custom-coded by your developer, and as long as the data is saved in the ‘usermeta’ table (according to the WordPress guidelines), you can use If-So to display dynamic content based on its value.
Yes, the search term condition works in the exact same way on all search engine advertising platforms. All you need to do is transfer the parameters to the landing page URL when setting up your campaigns on the advertising platform. If-So will take it from there and display dynamic content based on those parameters.
This is what we have sent the last time. It’s actually what I meant to send this time as well. Does it answer your current needs?
[ifso_condition default='DEFAULT ' rule='{"trigger_type":"Time-Date","time-date-start-date":"2021\/04\/15 12:45","time-date-end-date":"2022\/04\/28 12:45","Time-Date-Start":null,"Time-Date-End":null,"Time-Date-Schedule-Selection":"Start-End-Date"}']YOUR CONTENT GOES HERE[/ifso_condition]
* The default parameter accepts HTML if needed
Yes. You can display dynamic content based on any parameter you want. Simply, use the Page URL condition and set it as follows:
If: Page URL > Conatins > ?your-parmeter; Then: Show dynamic content…
Alternatively, if you want to create a condition based on UTM parameters, you can use our dedicated UTM condition.
Yes, If-So utilizes JavaScript’s document.referrer for the referral source condition, ensuring compatibility with caching without relying on cookies. If you are using page cache on your site, all you need to do is make sure to load the dynamic content using our ‘page caching compatibility’ (ajax=’yes’) mode.
*In the absence of ajax mode, it defaults to utilizing PHP’s $_SERVER[‘HTTP_REFERER’] global.
The desired result can be easily achieved by adding a parameter to the URL that the button directs users to.
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
Yes, you can display multiple pieces of dynamic content on a single page.
To do so, simply create two (or more) different triggers, one trigger for each piece of dynamic content. For each trigger, set a dynamic version with the condition Page URL > Contains> {parameter name}. Live Example:
For your convenience, you can follow the example below to see how to set your triggers:
Trigger 1:
Version A:
If: Page URL > Contains > ?parameter1 ; Then: Your dyanmic content….
Default Verison:
Your default content (can be left blank if you don’t want to display anything when the condition is not met).
Trigger 2:
Version A:
If: Page URL > Contains > ?parameter2 ; Then: Your dyanmic content….
Default Verison:
Your default content (can be left blank if you don’t want to display anything when the condition is not met).
Certainly! With our geolocation Dynamic Keyword Insertion (DKI) shortcode, you can effortlessly achieve this.
For instance, if you want to showcase the user’s country, you can use the following shortcode:
[ifsoDKI type='geo' show='country']
Similar shortcodes are available to display the user’s country flag, state, city, and event time calculated based on the user’s timezone.
Nope, you don’t need the Pro version of If-So to make use of the geolocation service.
The geolocation condition comes with the free version of the plugin, and you get 250 monthly sessions with our premium IP-to-location API for accurate results (for lifetime).
If your website requires additional sessions, you can opt for one of our geolocation plans.
You don’t have to buy a Pro license along with a geolocation plan if you only want to use the geolocation condition.
We strive for maximum accuracy by utilizing a premium, highly accurate IP-to-location API.
However, it’s important to note that no geolocation service can guarantee 100% accuracy. Several factors influence the accuracy of the location data, with the ISP of the IP address being a key factor. Accuracy is generally higher for fixed lines than it is for cellular networks.
If you come across any inaccuracies, please report them to us, and we will ensure that the database is updated accordingly.
Gain a deeper understanding of IP-based geolocation services and their operational principles
If-So utilizes the ipinfo.io premium IP-to-location API for geolocation-based content. This database has shown high accuracy compared to similar databases.
The database is regularly updated to ensure the most up-to-date information. If you come across any inaccuracies, please report them to us, and we will ensure that the database is updated accordingly.
We also have plans to introduce at least one additional option for geolocation services in the future. This will allow you to switch between different options based on your preferences and requirements.
Absolutely! You can implement a manual user location selection form (location override) that empowers users to choose a different location than the one automatically detected by our IP-to-location service.
Dynamic content will be displayed based on the user’s selection. For additional information, please refer to our detailed guide.
No, there’s no need to disable the geolocation service. The geolocation functionality will only be active if you set up location-based content.
No, a geolocation license is sufficient if you only want to use the geolocation service.
Absolutely! There are no limitations on the number of domains where you can activate a geolocation license.
Certainly not!
Yes. To determine the user’s location for deciding whether to display geotargeted content, we need to check the user’s location. As a result, a session will be counted irrespective of whether the geotargeting condition is met or not.
Absolutely! You have the flexibility to upgrade your existing license at any time. How to upgrade my plan.
The session limit applies to the total number of sessions across all websites where the license is active.
Yes, we do!
When you purchase an annual Geo Super Plan (100,000 monthly sessions), you’ll have the ability to easily upgrade your package.
Additional packages of 50,000 monthly sessions are offered at a rate of $12.50 per month on a yearly subscription basis. You have the flexibility to purchase as many packages as you need to meet your specific requirements.
A geolocation session refers to the period of time starting from when a visitor accesses a page with a geolocation trigger until either the visitor closes the browser or remains inactive for 25 minutes (the duration may slightly vary depending on the user’s browser and server hosting the website).
To illustrate, if a visitor lands on the homepage, navigates to multiple other pages, and eventually leaves, this activity will be counted as a single session.
The table below illustrates how different visitor interactions impact the session count on a website with geotargeted content:
Scenario | Session Count |
---|---|
A visitor only views pages without geotargeted content and then leaves | 0 |
A visitor views a page with conditional content, the geolocation condition is not one of the conditions (other If-So conditions are used). | 0 |
A visitor browses multiple pages within a single session | 1 |
A visitor visits a page with geotargeted content, and then refreshes the page | 1 |
A visitor views a page, closes the tab, and returns to the site after 15 minutes | 1 |
A visitor views a page with geotargeted content, but their location doesn’t match any targeted locations (default content is shown). *The user’s location still needs to be checked in this case. | 1 |
Nope!
A geolocation session will only be counted if a user visits a page with a geolocation-based trigger.
Moreover, if a user visits more than one page containing a geolocation trigger during the same visit, If-So will only count it as one session.
If you deplete your geolocation sessions, If-So will bypass the geolocation condition and evaluate the condition of the subsequent content version. If all dynamic versions have a geolocation condition or if none of the conditions are met, the default version will be displayed.
If you are utilizing our Geolocation DKI shortcodes, you can establish a fallback value to be shown in such instances. Just include the parameter fallback=”your-value” to the trigger shortcode.
[ifsoDKI type=”geo” show=”country” fallback=”your-value”]
Yes, you can. You have the option to either activate the automated “Bots Block” mode or log geolocation requests and manually block specific IPs. Learn more.
You can check your monthly session quota in two locations:
Screenshot – The geolocation dashboard:
Screenshot – Your account:
It appears that there is a communication issue between our server and yours. No need to worry though, we can resolve it. Kindly follow these two steps:
Stay calm and refer to our Geolocation Troubleshooting guide for assistance.
Inaccurate session counts can occur when bots visit the website. Learn about possible solutions to address this issue.
If you are unable to see the country flags, it is likely because your browser does not support emoji display by default (Google Chrome on a desktop for example).
The geolocation service is powered by an IP-to-location API. When a user visits a page with a geolocation condition or DKI shortcode for the first time during their session, a request is sent to the geolocation database to compare the user’s IP with the location information stored in the database.
A geolocation session starts when a visitor first accesses a page with a geolocation trigger or a Geolocation DKI shortcode and lasts until the visitor closes their browser or has been inactive for 25 minutes (note that this time frame may vary slightly depending on the browser and server hosting the website).
Not every page view should count as a session!
If you are experiencing issues with your session count, it is most likely due to bots visiting your site and consuming your session quota.
To identify and block bots, If-So offers two options:
The “Block Bots” mode allows you to automatically prevent Search Engine Crawlers, CURL Requests, and other bots from accessing the geolocation service.
When the “Block Bots” mode is enabled, bots will be able to access your site as usual, but they will be blocked from accessing the geolocation service. Instead, they will be served with the default content version (or “fallback” in case you are using the Geolocation DKI shortcodes)
To enable the “Block Bots” mode, follow these steps:
The “Bot Blocking” mode enables you to automatically prevent Search Engine Crawlers, CURL Requests, and other bots from accessing the geolocation service.
The “Bots Block” mode identifies bots by searching for commonly used terms in the User-Agent header. The following terms, if present in the User-Agent, will trigger a block:
Please note that while the “Bot Blocking” mode is designed to capture the majority of bot traffic, it may not completely block all bots. Keep in mind that the User-Agent can be easily manipulated, which can potentially bypass the block.
If necessary, you can utilize the “Log geolocation requests” option to manually identify IP addresses that consume your session quota excessively. By logging these requests, you can keep track of suspicious activity and take measures to manually block those IPs as needed.
To exclude a specific IP from being blocked by the “Bots Block” mode, you can whitelist the IP address by adding the following shortcode at the end of your functions.php file:
add_filter('ifso_geo_whitelist',function($allow){
$allow['ip'] = ['X.XX.XX.XXX','Y.YY.YY.YYY'];
return $allow;
});
Please ensure to replace ‘X.X.X.X‘ and ‘Y.Y.Y.Y‘ with the respective IP addresses you wish to whitelist.
If you have enabled the log file and are consistently discovering new IPs that exhaust your sessions quota by generating numerous bot sessions, please ensure that you load dynamic content using Ajax. Based on our experience, loading content with Ajax helps prevent many bots from utilizing the geo sessions.
If you don’t want to automatically block search engines and other bots, If-So offers a log feature that records each geolocation request, including the IP and date and time of the request.
By analyzing this log, you can pinpoint the IPs of bots that are causing the issue and block them from the geolocation service (They will still be able to visit the site, but the geolocation service will not be available for them).
The example below shows an IP belongs to a data center:
*Please note that enabling the geolocation log file may slow down the loading speed of pages with a geolocation condition. It is recommended to disable the log file after collecting the necessary information.
If you decide to block certain IP addresses, 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.
add_filter('ifso_exclude_from_geo',function($exclude){ $exclude['ip'] = ['XX.XX.XXX.XXX','YY.YYY.YYY.YYY']; return $exclude; });
Yes! You can use If-So with just about any modern page builder.
Here are the most common page builders our customers use:
This one is simple – Yes.
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.
In similar cases, disabling the following options in the plugin’s settings has resolved the caching issue:
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.
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’);
Yes! Click here to learn more.
When the WordPress pagination function is used within an If-So trigger, it does not function properly. The problem arises from the order in which the functions responsible for loading our dynamic content and handling pagination are executed.
Please note that the reverse scenario, which involves applying dynamic content within the paginated content, is indeed possible.
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.
Yes, you can! Here is a step-by-step guide on how to create dynamic menu items.
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.
Yes. You can create a conditional redirect to redirect all the visitors from a specific certain to a different page.
Yes, you can achieve this in different scenarios:
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.
Yes, you can set up conditional redirects based on any If-So condition. For a step-by-step guide, click here.
Yes.
While If-So was not specifically designed as an A/B testing solution, the plugin and its built-in analytics can be a valuable option if you are seeking to create simple and fast split tests.
However, it’s important to note that If-So is not a dedicated A/B testing plugin and that the built-in analysis system primarily tracks conversions based on page visits (e.g., counting conversions when a user visits page X). If you require more advanced and complex split test scenarios, it might be beneficial to explore dedicated A/B testing plugins to see what they have to offer.
If-So is a code-free, user-friendly, and powerful WordPress personalization plugin that enables you to deliver personalized content, enhancing your website’s engagement, conversion, and sales.
As the most comprehensive and versatile dynamic content plugin available, If-So offers a wide range of methods to create dynamic and customized content, including:
And:
The possibilities for personalization are extensive, with dozens of conditions extensions, and integrations to fine-tune your content delivery.
Nope! Coding skills are not required! Dynamic content can be easily set by selecting a condition from a predefined list and specifying the content to be displayed when the condition is met.
You have the flexibility to customize any part of your site, such as titles, text, images, videos, and even menu items. Dynamic content can generally be applied to any field on your site that accepts shortcodes
Though If-So offers a wide range of possibilities and advanced features, the basic usage of the plugin is very simple:
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.
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.
If-So provides a diverse range of conditions to choose from, including Geolocation, Google Ads search terms, Dynamic links, Schedule, and many more.
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.
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
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 free trial and witness firsthand how If-So performs on your website.
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.
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”.
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.
The way you load dynamic content with AJAX depends on your chosen method for displaying it.
[ifso id="123" ajax="yes"]
[ifsoDKI type='geo' show='country' fallback='' ajax='yes']
[ifso_bulks id='1' column='B' ajax='yes']
Yes.
While the plugin interface does not provide a built-in option to display a dynamic version based on multiple and/or conditions, you can still achieve the desired outcome.
OR Logic: Create an If-So trigger with multiple versions. If-So will first evaluate the condition of the first content version and display it if the condition is met. If not, it will proceed to check the condition of the next content version. You can create as many versions as you need. This setup essentially functions as an “or” operator in logic.
AND Logic: Create two separate triggers and insert the shortcode of one trigger as the dynamic content of the other. If-So will first check the conditions of the initial trigger, and if the relevant condition is met, it will proceed to evaluate the conditions of the second trigger.
Yes! If-So works with any modern page builder. Learn more.
Yes! If-So works with any modern page builder. Learn more.
Yes, If-So can be used with Brizy.
You simply create a trigger with several content versions inside If-So, and paste the trigger shortcode inside a Brizy Shortcode or text element. Upon page rendering, the shortcode will be replaced with one of the content versions you created in your trigger.
If-So arrives with a WYSIWYG editor (the classic WordPress editor) that allows simple content editing. If you want to design your dynamic content using the Brizy editor, you can create the desired content in a new page or post, and then apply the content of the page (or post) you created inside the If-So trigger using a simple shortcode.
Step-by-step:
[ifso-show-post id="123"]
Yes! If-So works with any modern page builder. Learn more.
Yes! If-So works with any modern page builder. Learn more.
Yes! If-So works with any modern page builder. Learn more.
Yes! If-So works with any modern page builder. Learn more.
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.
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.
Yes, you can. Here’s how:
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.
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.
Yes! If-So works with any modern page builder. Learn more.
Yes, you can.
Regardless of which page builder you are using, you can design your dynamic content on a separate page using your builder, and apply the page content into If-So using a shortcode.
If you are using Gutenberg or Elementor, please check out our conditional blocks/element options:
[ifso-show-post id="123"]
To find the post ID, you can open the post using the WordPress editor and check its URL. The post ID is placed between “post =” and “&”.
Learn more about the Post ID shortcode
In some cases, if you load the dynamic content using Ajax, some of the modules loaded using this method might not function as expected (Usually modules that involve JavaScript). Learn more.
Add the parameter type=”elementor” to ensure adequate loading of all elements. For example:
[ifso-show-post id="123" type="elementor"]
Add the parameter type=”divi“ to ensure adequate loading of all modules. For example:
[ifso-show-post id="123" type="divi"]
Add the parameter type=”WPB” to ensure adequate loading of all elements. For example:
[ifso-show-post id="123" type="WPB"]
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!
Yes! If-So works with any modern page builder. Learn more.
Yes! If-So works with any modern page builder. Learn more.
Here are two possible methods you can use to achieve this:
Learn more about creating conditional content using Gutenebrg
Here are two possible methods you can use to achieve this:
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:
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.
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.
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.
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).
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(); });");
If you are experiencing content duplication at the bottom of the page:
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);
}
});
To prevent Elementor from escaping the output and hindering our triggers from rendering correctly in Ajax mode, you can add the following code to the website’s functions.php file:
add_filter( ‘elementor_pro/dynamic_tags/shortcode/should_escape’, ‘__return_false’ );
It’s important to note that Elementor intentionally restricts content rendering using Ajax with a dynamic shortcode for security reasons. Changing this setting doesn’t imply that your site becomes vulnerable to attacks by hackers who are not logged in.
If your conditional Elementor video element isn’t loading with Ajax enabled in If-So, add this code snippet to the end of your theme’s functions.php file:
add_action('wp_enqueue_scripts',function(){ if(!function_exists('wp_add_inline_script')) return; wp_add_inline_script( 'if-so', " document.addEventListener('ifso_ajax_triggers_loaded',function(){ if(document.querySelectorAll('.elementor-video').length<=0) return; var initFrontendIfPossible = function(){if(typeof(YT)!=='undefined'){elementorFrontend.init();return true;}return false;} initFrontendIfPossible(); var interval = setInterval(function(){ if(initFrontendIfPossible()) clearInterval(interval); },1000) });"); },100);
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:
Features
The table below shows the cookies names, description, and when they are created:
Cookie Name | Description | When is the cookie created | Type | Duration |
---|---|---|---|---|
ifso_page_visits | Used to keep track of pages visited by the user. Must be enabled in order to use the Pages Visited condition | The 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 & Functional | Set by the site admin on the plugin’s settings |
ifso_recurrence_data | used for the If-So recurrence option | Added when handling a trigger with recurrence | Preferences & Functional | 3 years |
ifso_recurrence_session_TRIGGER_ID | Used for the If-So recurrence option | Added when handling a trigger with recurrence | Preferences & Functional | One session |
ifso_visit_counts | Used for user behavior (new/returning/num. of visits) trigger | Created and updated (increment) whenever an if-so trigger is rendered | Preferences & Functional | 1 year (31,104,000 sec) |
ifso_last_viewed | Used to store the triggers’ “viewed last” for Analytics conversions. | Created by default. Can be disabled through the plugin’s settings. | Performance & Analytics | Session |
ifso_viewing_triggers | Holds data on triggers viewed on this page for Analytics in AJAX mode | Created by default. Can be disabled through the plugin’s settings (if analytics is turned off or not in AJAX mode) | Performance & Analytics | One session |
ifso_viewed_triggers | Used for the ‘Triggers Visited’ condition | Created by default. Added whenever a trigger is viewed. Can be disabled in the plugin’s settings | Preferences & Functional | One year |
ifso_group_name | Used for the feature where a user is added to an audience | Added only if you use the Groups option | Preferences & Functional | Configurable via the settings. Defaults to 1 year. |
ifso_geo_data | Holds the cache for If-So’s geolocation data | When the “Disable use of PHP sessions” option is enabled in the plugin’s settings. | Preferences & Functional | Session |
ifso-geo-override-data | Used for the location override functionality | If the user selects a location from the list | Preferences & Functional | Session |
cookie ifso-request-browser-location | Temporary cookie – indicates pending browser geolocation request on user visit | When 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 & Functional | Session |
ifso-browser-location-data | Holds the cache for If-So’s HTML5 Geolocation API data | Once the user’s approval to share their browser location is received | Preferences & Functional | Session |
ifso-limited-conversions | Prevents a conversion from being counted more than once within a defined timeframe | When the user encounters a conversion shortcode that includes the ‘do_once_per’ parameter | Preferences & Functional | Set by the site admin |
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.
Click here for our Data Processing Addendum (DPA).
We provide two types of licenses: Pro and Geolocation.
No. The only condition limited by monthly sessions is the geolocation condition for which we use a premium IP-to-Location database in order to match the user’s IP to their location.
If you’re exclusively interested in the geolocation service or if your website requires additional geolocation sessions beyond what is included in the Pro license you can subscribe to one of our geolocation plans.
Yes, you have the flexibility to deactivate a license on one site and activate it on another as many times as needed.
Each WordPress installation is considered a separate domain. However, you can deactivate a license key in one environment and activate it in another environment as many times as necessary.
Yes, we do. You can check it out here.
You can download the add-ons once you are logged in to the site. Each addon can be downloaded from the sidebar of its page (once you are logged in to the site). Visit the add-ons page.
We use PayPal’s secure payment systems. This allows us to accept all kinds of credit cards or direct payments through a PayPal account.
To make a payment with a debit or credit card without creating a PayPal account:
In a Multisite WordPress installation, each sub-site requires its own separate license key for activation. Each license activation is counted individually in regard to the license activation limit.
Yes, you can upgrade an existing license at any time. Learn how.
We employ PayPal for secure payment processing, which means we do not store any credit card details on our site.
If you used a PayPal account for your purchase, you can conveniently update your credit card information by following the steps to replace the card on your PayPal account (how to update your credit card in PayPal).
If you made a direct payment with a credit card without logging in to your PayPal account, unfortunately, the only available solution would be to create a new subscription. Please contact our support team if this is the case.
Yes. License keys are subscription-based and will automatically renew on a yearly basis, giving you access to support and important updates.
If you decide to cancel your subscription, you will still be able to use all the pro features – they will keep working forever, but you will no longer receive updates or support once the license key expires.
Invoices of your purchases can be downloaded from your Account area.
The “Inactive” status indicates that the license is valid but has not been activated on any site yet.
You can cancel your subscription at any time. To cancel your subscription:
If-So utilizes an IP-to-location database to determine the user’s location. You can use the geo data detected by If-So for any purpose by implementing the following code:
require_once(IFSO_PLUGIN_BASE_DIR. 'services/geolocation-service/geolocation-service.class.php');
$geo_data = \IfSo\Services\GeolocationService\GeolocationService::get_instance()->get_user_location();
Keep in mind that IP-to-location services (any service, not just ours) are not always 100% accurate. Learn more about IP-to-location services and how they work.
Want to capture the user’s location using JavaScript? Click here
Yes, you can capture the user’s country in JavaScript by using the following PHP code in your theme’s functions.php file. This code fetches the user’s geolocation data and sets it as a JavaScript variable:
phpCopy codeadd_action('wp_enqueue_scripts', function(){
if(!defined('IFSO_PLUGIN_BASE_DIR')) return;
require_once(IFSO_PLUGIN_BASE_DIR. 'services/geolocation-service/geolocation-service.class.php');
$geo_data = \IfSo\Services\GeolocationService\GeolocationService::get_instance()->get_user_location();
$ifso_country = !empty($geo_data->get('countryCode')) ? $geo_data->get('countryCode') : '';
if(function_exists('wp_add_inline_script'))
wp_add_inline_script('if-so',"var ifso_country = '{$ifso_country}';",'after');
});
This code will make the user’s country available as a variable named ifso_country
in your JavaScript. You can customize this code to capture other geolocation data, such as city or state, by adjusting the values in the code.
Yes, you can. Learn more.
If you want to enable Ajax loading for a specific trigger that is embedded directly in the page template using a PHP code, you can use the “echo do_shortcode(‘…’);” function
<?php echo do_shortcode('[ifso id="123" ajax="yes"]'); ?>
The only limitation to keep in mind is that the geolocation service will not function properly. This means that dynamic content with geolocation conditions will be treated as if the condition is not met.
If you wish to set location-based content and preview how it will appear to users when the condition is met, you can make use of the “testing mode” button. This feature enables you to force the display of the specified version, giving you a visual representation of the final result on your site.
Do license activations in a local environment count toward the total number of license activations?
Yes, but you have the flexibility to deactivate the license once the development is complete and activate it on another site of your choice.
No IP-to-Location service is 100% accurate. The accuracy of a location depends on many factors, most importantly the ISP of the address. Accuracy is generally higher for fixed lines than it is for cellular networks.
If our service fails to detect your location, please send us an email including your IP and your actual location at support@if-so.com. It usually takes about 72-96 hours for the database to be updated.
You can learn more here about geolocation accuracy.
The locations on this page are displayed using our Geolocation DKI shortcodes. You can do the same on your website using If-So.
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:
If you have a large number of different versions, we highly recommend using our CSV (bulks) extension instead of a dynamic trigger.