{"id":4774,"date":"2025-02-20T00:14:05","date_gmt":"2025-02-20T00:14:05","guid":{"rendered":"https:\/\/s-o-s.net\/if-so-dynamic-content-personalization\/"},"modified":"2025-02-20T00:14:05","modified_gmt":"2025-02-20T00:14:05","slug":"if-so-dynamic-content-personalization","status":"publish","type":"post","link":"https:\/\/s-o-s.net\/en_gb\/if-so-dynamic-content-personalization\/","title":{"rendered":"If-So Dynamic Content Personalization"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<article id=\"post-55255\" class=\"alignwide post-55255 plugin type-plugin status-publish hentry plugin_section-blocks plugin_tags-conditional plugin_tags-dynamic-content plugin_tags-geolocatargeting plugin_tags-location plugin_tags-personalization plugin_category-discussion-and-community plugin_category-security-and-spam-protection plugin_contributors-ifso plugin_committers-ifso\">\n<div class=\"plugin-banner\" id=\"plugin-banner-if-so\"><\/div>\n<header class=\"plugin-header\">\n<div class=\"entry-heading-container\">\n<div>\n<div class=\"entry-thumbnail\">\n\t\t\t\t\t<img decoding=\"async\" class=\"plugin-icon\" srcset=\"https:\/\/ps.w.org\/if-so\/assets\/icon-128x128.gif?rev=2633132, https:\/\/ps.w.org\/if-so\/assets\/icon-256x256.gif?rev=2633132 2x\" src=\"https:\/\/ps.w.org\/if-so\/assets\/icon-256x256.gif?rev=2633132\" alt=\"\">\t\t\t\t<\/div>\n<div>\n<h1 class=\"plugin-title\">If-So Dynamic Content Personalization<\/h1>\n<p>\t\t\t\t\t<span class=\"byline\">By <span class=\"author vcard\"><a target=\"_blank\" class=\"url fn n\" href=\"https:\/\/profiles.wordpress.org\/ifso\/\" rel=\"noopener\">IfSo Dynamic Content<\/a><\/span><\/span>\n\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"plugin-actions\">\n<div class=\"wp-block-button is-small plugin-download download-button\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/downloads.wordpress.org\/plugin\/if-so.1.9.3.zip\" rel=\"noopener\">Download<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/header>\n<p><!-- .entry-header --><\/p>\n<p>\t<span id=\"description\"><\/span><br \/>\n\t<span id=\"reviews\"><\/span><br \/>\n\t<span id=\"installation\"><\/span><br \/>\n\t<span id=\"developers\"><\/span><br \/>\n\t<span id=\"advanced\" class=\"\"><\/span><br \/>\n\t<span id=\"section-links\"><\/p>\n<ul class=\"tabs clear\">\n<li id=\"tablink-description\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so\/#description\" rel=\"noopener\">Details<\/a><\/li>\n<li id=\"tablink-reviews\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so\/#reviews\" rel=\"noopener\">Reviews<\/a><\/li>\n<li id=\"tablink-installation\">\n\t\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so\/#installation\" rel=\"noopener\">Installation<\/a>\n\t\t\t<\/li>\n<li id=\"tablink-developers\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so\/#developers\" rel=\"noopener\">Development<\/a><\/li>\n<\/ul>\n<div id=\"link-support\">\n\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/if-so\/\" rel=\"noopener\">Support<\/a>\n\t\t<\/div>\n<p>\t<\/span><br \/>\n\t<script type=\"text\/javascript\">if ( '#changelog' == window.location.hash ) { window.setTimeout( function() { window.location.hash=\"#developers\"; }, 10 ); }<\/script><\/p>\n<div class=\"entry-content\">\n<div id=\"tab-description\" class=\"plugin-description section\">\n<h2 id=\"description-header\">Description<\/h2>\n<p>Personalize any content! Add or replace content according to the visitor\u2019s profile or interaction with the site.<\/p>\n<p>No coding required!<\/p>\n<h3>FOUR WAYS TO CREATE DYNAMIC CONTENT<\/h3>\n<ul>\n<li>Conditional triggers \u2013 works with every page builder \u2013 <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/how-to-create-dynamic-content-trigger\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=dynamic-triggerTop\" rel=\"nofollow ugc noopener\">Watch<\/a><\/li>\n<li>Conditional Gutenberg blocks \u2013 <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/conditional-gutenberg-blocks\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=gutenbergTop\" rel=\"nofollow ugc noopener\">Watch<\/a><\/li>\n<li>Conditional Elementor elements \u2013 <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/elementor-personalization\" rel=\"nofollow ugc noopener\">Watch<\/a><\/li>\n<li>Dynamic Keyword Insertion (DKI) shortcodes \u2013 <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/dynamic-keyword-insertion\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=DKITop\" rel=\"nofollow ugc noopener\">Watch<\/a><\/li>\n<\/ul>\n<p>Watch a short video (1:36):<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><\/p>\n<div class=\"responsive-embed responsive-embed-16x9 embed-youtube\"><iframe title=\"If\u25b8So | Content pesonalization WordPress Plugin\" width=\"1140\" height=\"641\" src=\"https:\/\/www.youtube.com\/embed\/yRroTk7EDF8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p><\/span><\/p>\n<h3>WHY IF-SO?<\/h3>\n<ul>\n<li>Simple to use \u2013 No coding is required<\/li>\n<li>Works with any page builder<\/li>\n<li>100% compatible with all caching plugins (no need to disable the cache)<\/li>\n<li>A simple way to improve engagement and conversion rates<\/li>\n<li>New! Conditional Gutenberg Blocks and Elementor Widgets<\/li>\n<\/ul>\n<p>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<\/p>\n<h3>HOW IT WORKS<\/h3>\n<h4>All page builder users:<\/h4>\n<ol>\n<li>Create a trigger <\/li>\n<li>Select a condition and set the personalized content version<\/li>\n<li>Optional \u2013 create more dynamic versions and set the default content<\/li>\n<li>Paste the shortcode wherever you want to display the content<br \/>\nEvery time a page with the shortcode is loaded, one of the content versions will be displayed accordingly.<\/li>\n<\/ol>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/how-to-create-dynamic-content-trigger\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=dynamic-trigger\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<h4>Gutenberg and Elementor users<\/h4>\n<ol>\n<li>Select the block or element<\/li>\n<li>On the side menu, select the condition to display the block\/element<\/li>\n<\/ol>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/elementor-personalization\/\" rel=\"nofollow ugc noopener\"> \u2013 More about conditional  Elementor Elements &gt;&gt;<\/a><br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/conditional-gutenberg-blocks\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=gutenberg\" rel=\"nofollow ugc noopener\"> \u2013 More about conditional  Gutenberg Blocks &gt;&gt;<\/a><\/p>\n<p>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<\/p>\n<h3>WHICH CONDITIONS CAN BE SET WITH IF-SO?<\/h3>\n<p>If-So offers a wide range of conditions. Here are examples of our most implemented conditions.<\/p>\n<p><strong>Most popular<\/strong><\/p>\n<ol>\n<li>Geolocation \u2013 Show location-based content (<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/location-based-content-wordpress-plugin\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=geolocation\" rel=\"nofollow ugc noopener\">examples &gt;&gt;<\/a>)<\/li>\n<li>Google Ads \u2013 Show content based on the user\u2019s search term on Google Ads or related to the Facebook Ad the user was referred from (<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/google-ads\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=google-ads\" rel=\"nofollow ugc noopener\">examples &gt;&gt;<\/a>)<\/li>\n<li>UTM Parameters \u2013 Show dynamic content based on UTM parameters or other query strings (<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/utms\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=utm-parameters\" rel=\"nofollow ugc noopener\">examples &gt;&gt;<\/a>)<\/li>\n<\/ol>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/personalization-examples?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=1.5.1&amp;utm_term=examples\" rel=\"nofollow ugc noopener\">More usage examples &gt;&gt;<\/a><\/p>\n<p><strong>Geolocation<\/strong><\/p>\n<ul>\n<li>City<\/li>\n<li>State<\/li>\n<li>Country<\/li>\n<li>Continent<\/li>\n<li>Time zone<\/li>\n<\/ul>\n<p><strong>User Behavior<\/strong><\/p>\n<ul>\n<li>Browser Language <\/li>\n<li>Returning Visitor (pro)<\/li>\n<li>Device Type<\/li>\n<li>Logged-in User<\/li>\n<li>Days Since User Registration (pro)<\/li>\n<li>Pages Visited (pro)<\/li>\n<li>Referral Source (pro)<\/li>\n<li>Browser Type (pro)<\/li>\n<li>Operating System (pro)<\/li>\n<li>Number of Version Views (pro)<\/li>\n<\/ul>\n<p><strong>Date &amp; Time<\/strong><\/p>\n<ul>\n<li>Start &amp; End Date (pro)<\/li>\n<li>Schedule (pro)<\/li>\n<li>Day of the Month (pro)<\/li>\n<\/ul>\n<p><strong>Marketing &amp; Advertising<\/strong><\/p>\n<ul>\n<li>Dynamic Link (pro)<\/li>\n<li>Page URL (pro)<\/li>\n<li>UTM Parameters (pro)<\/li>\n<li>Google Ads \/ Facebook Ads (pro)<\/li>\n<\/ul>\n<p><strong>WooCommerce<\/strong><\/p>\n<ul>\n<li>Products in the Cart (pro)<\/li>\n<li>Products Purchased (pro)<\/li>\n<li>Units in Stock (pro)<\/li>\n<li>Total Spent (pro)<\/li>\n<li>Average Order Value (pro)<\/li>\n<li>Customer Details (pro)<\/li>\n<\/ul>\n<p><strong>Integrations (pro)<\/strong><\/p>\n<ul>\n<li>WooCommerce Subscriptions<\/li>\n<li>WooCommerce Memberships<\/li>\n<li>MemberPress<\/li>\n<li>WishList Member<\/li>\n<li>WP Job Manager<\/li>\n<li>LearDash<\/li>\n<li>Easy Digital Downloads<\/li>\n<li>AffiliateWP<\/li>\n<li>Weglot<\/li>\n<\/ul>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=AboutTheConditions\" rel=\"nofollow ugc noopener\"><strong>All conditions &gt;&gt;<\/strong><\/a><\/p>\n<p>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<\/p>\n<h3>Built-in stats<\/h3>\n<p>Get clear insights into your content performance! See real-time results with a built-in analytics system \u2013 how many times each version was displayed and how it affected the conversion rate.<\/p>\n<p>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<\/p>\n<h3>THE EXTRA OPTIONS THAT MADE If-So THE #1 PERSONALIZATION PLUGIN<\/h3>\n<p>If-So is more than just an If-Then personalization solution. We consistently add new features so that no matter what your need is, you will be able to achieve it with If-So.<\/p>\n<p><strong>Audiences (segments)<\/strong><br \/>\nAssign users into predefined audiences based on the user\u2019s interaction with the site and then show content based on the user\u2019s audience.<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/segments\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=audiences\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<p><strong>User self-selection form:<\/strong><br \/>\nAllow users to select the content they will see by assigning themselves to an audience (segment).<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/dynamic-select-form\/\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<p><strong>Conditional pop-ups<\/strong><br \/>\nCreate pop-ups that will be displayed based on any If-So condition.<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/conditional-pop-ups\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=pop-ups\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<p><strong>Custom user profile fields (for logged-in users)<\/strong><br \/>\nCreate a new field in the user\u2019s profile, assign a value to that field, and show content based on the value.<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/custom-user-profile-fields-dynamic-content\/\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<p><strong>Dynamic content from CSV<\/strong><br \/>\nCreate and manage thousands of dynamic content versions directly from a CSV file.<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/dynamic-content-from-csv\/\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<p>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<\/p>\n<h3>DYNAMIC KEYWORD INSERTION (DKI)<\/h3>\n<p>The Dynamic Keyword Insertion (DKI) option allows you to display values using shortcodes:<br \/>\n* The user\u2019s location: country, state, city, or continent<br \/>\n* A value of a query string parameter<br \/>\n* The user name<br \/>\n* An event time \u2013 calculated according to the user time zone<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/dynamic-keyword-insertion?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=AllDKI\" rel=\"nofollow ugc noopener\">And more\u2026 for all DKI shortcodes &gt;&gt;<\/a><\/p>\n<h4>Examples for Dynamic Keyword Insertion shortcodes:<\/h4>\n<p><strong>User\u2019s Country<\/strong><br \/>\nDisplay the user\u2019s location: country, city, state, continent, or time zone.<\/p>\n<pre><code>[ifsoDKI type=\"geo\" show='country']\n<\/code><\/pre>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/geolocation-dki\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=geo-dki\" rel=\"nofollow ugc noopener\">More Geolocation DKI shortcode options &gt;&gt;<\/a><\/p>\n<p><strong>Query String DKI<\/strong><br \/>\nDisplay the value of any query string.<\/p>\n<pre><code>[ifsoDKI type=\"querystring\" parameter=\"YOUR-PARAMETER\" fallback=\"Your default value (optional)\"]\n<\/code><\/pre>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/query-string-dki-shortcode\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=qs-dki\" rel=\"nofollow ugc noopener\">More Geolocation DKI shortcode options &gt;&gt;<\/a><\/p>\n<p><strong>Auto-Local Time Display<\/strong><br \/>\nShow an event time calculated according to the user\u2019s time zone.<\/p>\n<pre><code>[ifsoDKI type=\"time\" show='user-geo-timezone-sensitive' time=\"04\/25\/2022 08:00\" format=\"n\/j\/o, G:i\"]\n<\/code><\/pre>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/auto-local-time-display\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=local-time-display-dki\" rel=\"nofollow ugc noopener\">More Geolocation DKI shortcode options &gt;&gt;<\/a><\/p>\n<\/div>\n<div id=\"screenshots\" class=\"plugin-screenshots section\">\n<h2 id=\"screenshots-header\">Screenshots<\/h2>\n<ul class=\"plugin-screenshots\">\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-1.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-1.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>Dynamic triggers \u2013 works with all page builder users<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-2.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-2.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>Dynamic Gutenberg Blocks<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-3.gif?rev=2669840\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-3.gif?rev=2669840\" alt=\"\"><\/a><figcaption>Dynamic Elementor Elements<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-4.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-4.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>The conditions<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-5.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-5.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>Built-in stats<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-6.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-6.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>Dynamic Keyword Insertion (DKI) shortcodes<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-7.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-7.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>Compatible with caching plugins<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-8.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-8.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>User segmentation<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-9.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-9.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>User-self selection field<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-10.jpg?rev=2655886\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-10.jpg?rev=2655886\" alt=\"\"><\/a><figcaption>The recurrence option<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-11.gif?rev=2657276\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/if-so\/assets\/screenshot-11.gif?rev=2657276\" alt=\"\"><\/a><figcaption>Dynamic trigger<\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"blocks\" class=\"plugin-blocks section\">\n<h2 id=\"blocks-header\">Blocks<\/h2>\n<p>This plugin provides 1 block.<\/p>\n<ul class=\"plugin-blocks-list\">\n<li class=\"plugin-blocks-list-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"block-icon dashicons dashicons-block-default\"><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"block-title\">Dynamic Content<\/span>\n\t\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/div>\n<div id=\"tab-installation\" class=\"plugin-installation section\">\n<h2 id=\"installation-header\">Installation<\/h2>\n<ol>\n<li>Go to your WordPress Control Panel<\/li>\n<li>Click \u201cPlugins\u201d, then \u201cAdd New\u201d<\/li>\n<li>Enter \u201cifso\u201d as a search term and click \u201cSearch Plugins\u201d<\/li>\n<li>Download and install the IfSo Dynamic Content plugin<\/li>\n<li>Click the \u201cActivate Plugin\u201d link<\/li>\n<li>On your WordPress menu under IfSo, click \u201cAdd new\u201d<\/li>\n<li>Fill in the default content<\/li>\n<li>Select rule<\/li>\n<li>Choose the content you wish to display if the rule is met and press \u201cPublish\u201d<\/li>\n<\/ol>\n<\/div>\n<div id=\"faq\" class=\"plugin-faq section\">\n<h2 id=\"faq-header\">FAQ<\/h2>\n<dl>\n<dt id=\"does%20if-so%20work%20with%20any%20page%20builder%3F\">\n<h3>Does If-So work with any page builder?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, If-So works on every website, regardless of the page builder you are using.<\/p>\n<\/dd>\n<dt id=\"is%20there%20a%20session%20limit\">\n<h3>Is there a session limit<\/h3>\n<\/dt>\n<dd>\n<p>No, the only condition that is limited by sessions is the Geolocation condition since we use a highly accurate, premium, IP-to-location database.<\/p>\n<\/dd>\n<dt id=\"what%20content%20can%20be%20customized%20with%20if-so%3F\">\n<h3>What content can be customized with If-So?<\/h3>\n<\/dt>\n<dd>\n<p>If-So allows you to customize any element on the website, including titles, texts, images, videos, menu items, and design.<\/p>\n<\/dd>\n<dt id=\"how%20does%20if-so%20work%3F\">\n<h3>How does If-So work?<\/h3>\n<\/dt>\n<dd>\n<p>If-So is very simple to use. All you have to do is select a condition (rule), set the content you would like to display if it is met, and set default content to be displayed when it is not.<\/p>\n<p>*All page builder users: *<\/p>\n<ol>\n<li>Create a trigger <\/li>\n<li>Select a condition and set the personalized content version<\/li>\n<li>Optional \u2013 create more dynamic versions and set the default content<\/li>\n<li>Paste the shortcode wherever you want to display the content<br \/>\nEvery time a page with the shortcode is loaded, one of the content versions will be displayed accordingly.<\/li>\n<\/ol>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/how-to-create-dynamic-content-trigger\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=dynamic-trigger\" rel=\"nofollow ugc noopener\">Learn more &gt;&gt;<\/a><\/p>\n<p><em>Gutenberg and Elementor users<\/em><\/p>\n<ol>\n<li>Select the block or element<\/li>\n<li>On the side menu, select the condition to display the block\/element<\/li>\n<\/ol>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com\/elementor-personalization\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=elementor\" rel=\"nofollow ugc noopener\"> \u2013 More about conditional  Elementor Elements &gt;&gt;<\/a><br \/>\n<a target=\"_blank\" href=\"https:\/\/www.if-so.com\/conditional-gutenberg-blocks\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=gutenberg\" rel=\"nofollow ugc noopener\"> \u2013 More about conditional  Gutenberg Blocls &gt;&gt;<\/a><\/p>\n<\/dd>\n<dt id=\"which%20conditions%20%28rules%29%20can%20i%20set%20with%20if-so%3F\">\n<h3>Which conditions (rules) can I set with If-So?<\/h3>\n<\/dt>\n<dd>\n<p>You can choose from a variety of conditions. Here are a few examples:<\/p>\n<ul>\n<li>Referral source \u2013 Show different content to users arriving through a specific domain or webpage.<\/li>\n<li>In-site remarketing \u2013 Show different content to users who referred from a particular page on your website.<\/li>\n<li>Logged-in users \u2013 Show different content to logged-in users.<\/li>\n<li>New and returning visitors \u2013  Show different content to returning \/ new visitors.<\/li>\n<li>Browser language \u2013 Show customized messages to visitors according to their set browser language.<\/li>\n<li>Dynamic Link- Create a dynamic website URL: send it to users or use it in Google Adwords, Facebook, and other advertising platforms. Visitors who arrive through the dynamic link will see unique content.<\/li>\n<li>Schedule \u2013 Change selected parts of your website content according to the time and day.<\/li>\n<li>Start and end date \u2013 Show content throughout selected dates.<\/li>\n<li>UTM Parameters-based content \u2013 Add or replace content based on UTM (tracking parameters).<\/li>\n<\/ul>\n<p><a target=\"_blank\" href=\"https:\/\/www.if-so.com?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=faq-list-of-conditions\" rel=\"nofollow ugc noopener\"><strong>click here for the complete list of conditions<\/strong><\/a><\/p>\n<\/dd>\n<dt id=\"can%20i%20use%20if-so%20wp%20plugin%20with%20any%20wordpress%20theme%3F\">\n<h3>Can I use If-So WP Plugin with any WordPress theme?<\/h3>\n<\/dt>\n<dd>\n<p>You sure can! So far, we have not come across any WordPress themes that If-So Dynamic Content can not work with. If for any reason it doesn\u2019t work with your theme, we will work with you to resolve the issue.<\/p>\n<\/dd>\n<\/dl>\n<\/div>\n<div id=\"tab-reviews\" class=\"plugin-reviews section\">\n<h2 id=\"reviews-header\">Reviews<\/h2>\n<div class=\"plugin-reviews\">\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/0153b6ba370dd96c5149f720dcf59b461b01b53e0f265cb2a79fe0a5b7a11cc1?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/0153b6ba370dd96c5149f720dcf59b461b01b53e0f265cb2a79fe0a5b7a11cc1?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"1 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"1\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/not-clear-about-free-features\/\" rel=\"noopener\">Not clear about free features<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/renan_santos\/\" title=\"Posts by renan_santos\" rel=\"author noopener\">renan_santos<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 10, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">The plugin details page doesn\u2019t make clear that features are PRO only. It makes you waste your time to discover that.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/097a41bffcd0647ae52ccde6e7a188be5162fe39fbbcc13369f888a2d11c235f?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/097a41bffcd0647ae52ccde6e7a188be5162fe39fbbcc13369f888a2d11c235f?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/powerful-plugin-for-visibility-personalization\/\" rel=\"noopener\">Powerful plugin for visibility &amp; personalization<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/davewarfel\/\" title=\"Posts by Dave Warfel\" rel=\"author noopener\">Dave Warfel<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">October 28, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I\u2019m using the premium version, but the features and support have been great so far. It\u2019s easier to output personalized information using simple shortcodes, and the dynamic visibility conditions available in the block editor &amp; within Elementor are a big time saver.<\/p>\n<p>I use this plugin on a LearnDash site and use the dynamic visibility to show\/hide different elements based on Course Enrollment.<\/p>\n<p>I also like the user meta fields that you can add to different pages via a simple shortcode or via query strings. I\u2019m using those to capture additional data that we collect on each user so we can further cross-sell and upsell other items in the future to specific users.<\/p>\n<p>I did reach out to their support after finding a bug in their premium plugin and they patched it within 24 business hours and communicated with me very clearly.<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/7b5ba247e8e06b40fd5b135d5dbd0c25ee16bb464a187e0532c6249dca5ccc96?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/7b5ba247e8e06b40fd5b135d5dbd0c25ee16bb464a187e0532c6249dca5ccc96?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/good-plugin-and-good-support-77\/\" rel=\"noopener\">Good Plugin and good Support<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/breakingnewground123\/\" title=\"Posts by breakingnewground123\" rel=\"author noopener\">breakingnewground123<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">August 28, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">The Plugin works very well and offers features for marketing to specific countries \/ areas. We had a small technical issue and Josef assisted in resolving professionally and quickly.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/909e5f69b72d254b24c44e9d0c89a920bc93151df37ab54c5cb471359ce29bf4?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/909e5f69b72d254b24c44e9d0c89a920bc93151df37ab54c5cb471359ce29bf4?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/they-even-fixed-manually-a-very-specific-plugin-conflict-i-had\/\" rel=\"noopener\">They even fixed MANUALLY a very specific plugin conflict I had!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/sydolnemarr\/\" title=\"Posts by sydolnemarr\" rel=\"author noopener\">sydolnemarr<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">July 30, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I am using Kadence blocks plugin, and noticed that on a very particular setup with Kadence Accordion, the If-So plugin wouldn\u2019t behave like I would expect.I sent a message to the support, and they investigated and solved it: I\u2019m sure it took at least a few hours of work to understand what was conflicting with what, and more hours to fix it.I am amazed by the support level, because it would have also been understandable if they couldn\u2019t fix it, given the very specific use case.<\/p>\n<p>(I am a lifetime user of If-So since their AppSumo deal a few years ago, so I am not technically paying them for support on an ongoing basis)<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/fa407329997e27ca172e3522cc846a088f9b3a494db02427edfe022c5fa2a92b?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/fa407329997e27ca172e3522cc846a088f9b3a494db02427edfe022c5fa2a92b?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/great-technical-support-and-fair-prices\/\" rel=\"noopener\">Great technical support and fair prices.<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/romankorenkov\/\" title=\"Posts by romankorenkov\" rel=\"author noopener\">romankorenkov<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">June 5, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">Great technical support and fair prices, I\u2019m glad I got in touch with this plugin.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/76540d900bc9f56279a6cdace5f88207c17a4210030814d39160cac95a69d512?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/76540d900bc9f56279a6cdace5f88207c17a4210030814d39160cac95a69d512?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/excellent-plugin-9135\/\" rel=\"noopener\">Excellent plugin!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/ajeannot\/\" title=\"Posts by ajeannot\" rel=\"author noopener\">ajeannot<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">May 6, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">This plugin is excellent! I was looking for a plugin that could help me personalize a landing page for my cold email outreach campaigns and this one does a great job. Now I\u2019m able to show customized messages to my leads based on UTM parameters.<\/div>\n<\/p><\/div>\n<\/article><\/div>\n<p>\t\t<a target=\"_blank\" class=\"reviews-link\" href=\"https:\/\/wordpress.org\/support\/plugin\/if-so\/reviews\/\" rel=\"noopener\"><br \/>\n\t\t\tRead all 85 reviews\t\t<\/a><\/div>\n<div id=\"tab-developers\" class=\"plugin-developers section\">\n<h2 id=\"developers-header\">Contributors &amp; Developers<\/h2>\n<div class=\"plugin-contributors\">\n<p>\u201cIf-So Dynamic Content Personalization\u201d is open source software. The following people have contributed to this plugin.<\/p>\n<p><span class=\"screen-reader-text\">Contributors<\/span><\/p>\n<ul id=\"contributors-list\" class=\"contributors-list\">\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/07a2b50803d2f0356d88bc4fe372389e63b818b1a5f2e1f4cbd1e8074a326444?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/07a2b50803d2f0356d88bc4fe372389e63b818b1a5f2e1f4cbd1e8074a326444?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/ifso\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tIfSo Dynamic Content\t\t\t\t<\/a>\n\t\t\t<\/li>\n<\/ul><\/div>\n<div class=\"plugin-development\">\n<p>\u201cIf-So Dynamic Content Personalization\u201d has been translated into 2 locales. Thank you to <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/if-so\/contributors\" rel=\"noopener\">the translators<\/a> for their contributions.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/if-so\" rel=\"noopener\">Translate \u201cIf-So Dynamic Content Personalization\u201d into your language.<\/a><\/p>\n<h3>Interested in development?<\/h3>\n<p><a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/browser\/if-so\/\" rel=\"noopener\" class=\"broken_link\">Browse the code<\/a>, check out the <a target=\"_blank\" href=\"https:\/\/plugins.svn.wordpress.org\/if-so\/\" rel=\"noopener\">SVN repository<\/a>, or subscribe to the <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/if-so\/\" rel=\"noopener\" class=\"broken_link\">development log<\/a> by <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/if-so\/?limit=100&amp;mode=stop_on_copy&amp;format=rss\" rel=\"noopener\" class=\"broken_link\">RSS<\/a>.<\/p>\n<\/div>\n<\/div>\n<div id=\"tab-changelog\" class=\"plugin-changelog section\">\n<h2 id=\"changelog-header\">Changelog<\/h2>\n<h4>1.9.3<\/h4>\n<ul>\n<li>Compatibility with the <a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so-conditional-elementor-elements\/\" rel=\"ugc noopener\">If-So &amp; Elementor integration (version 1.4)<\/a><\/li>\n<li>UI and microcopy improvements<\/li>\n<li>Bug fixes<\/li>\n<\/ul>\n<h4>1.9.2.2<\/h4>\n<ul>\n<li>Compatibility with the upcoming If-So &amp; Elementor integration (version 1.4)<\/li>\n<li>Fixed information disclosure vulnerability in the [ifso-show-post] shortcode<\/li>\n<li>UI and microcopy improvements<\/li>\n<li>Bug fixes<\/li>\n<\/ul>\n<h4>1.9.1<\/h4>\n<ul>\n<li>Audience Standalone Condition \u2013 Added an option to target users who are either inside or outside any audience<\/li>\n<li>Updated the \u201cMobile Detect\u201d library (the new version requires PHP 7.4 or higher)<\/li>\n<li>Bug Fixes<\/li>\n<\/ul>\n<h4>1.9<\/h4>\n<ul>\n<li>PHP 5.X and lower versions are no longer supported.<\/li>\n<li>An old format of the DKI shortcodes has been removed. The new version no longer supports the following shortcodes (all of them have new alternatives):<br \/>\n[ifso_display_user_geo], [ifso_display_user_languages], [ifso_display_referrer]<\/li>\n<li>The [ifso-redirect] shortcode now defaults to the JS redirect type when rendered within an If-So trigger loaded via AJAX.<\/li>\n<li>A new filter, \u201cifso_gutenberg_standalone_widget_forbidden_blocks,\u201d has been introduced to prevent the If-So standalone condition widget from loading on certain Gutenberg blocks.<\/li>\n<li>Geo-session usage notifications are now calculated based on all licenses installed on the site, rather than separating pro and geolocation licenses.<\/li>\n<li>The \u201cshortcodes in titles and menus\u201d setting now affects WooCommerce page\/category titles and breadcrumbs.<\/li>\n<li>The \u201ctime\u201d DKI shortcode (Also known as the Auto-local Time Disaply shortcode) now supports displaying the current time according to the website\u2019s timezone using the format attribute (optional), for example: [ifsoDKI type=\u2019time\u2019 show=\u2019site-timezone\u2019 format=\u2019n\/j\/o, G:i\u2019].<\/li>\n<li>Bug fixes<\/li>\n<li>Refactoring<\/li>\n<li>Performance improvments<\/li>\n<\/ul>\n<h4>1.8.0.4<\/h4>\n<ul>\n<li>Licensing system improvements<\/li>\n<li>Bugs fix<\/li>\n<\/ul>\n<h4>1.8.0.3<\/h4>\n<ul>\n<li>New DKI Shortcode: Automatically Creates Link Templates Based on the Page URLs. Commonly used to create a link to a parallel page on a different website.[ifsoDKI type=\u2019url\u2019 url=&#8221;{{SCHEME}}:\/\/{{HOST}}{{PATH}}?{{QUERY}}\u2019]<\/li>\n<li>Security fix (XSS vulnerability)<\/li>\n<\/ul>\n<h4>1.8.0.2<\/h4>\n<ul>\n<li>Bug fixes (Uncaught TypeError)<\/li>\n<\/ul>\n<h4>1.8.0.1<\/h4>\n<ul>\n<li>Bug fixes (conditional gutenberg blocks)<\/li>\n<\/ul>\n<h4>1.8<\/h4>\n<ul>\n<li>Added GA4 reporting option, which can be activated per-shortcode by adding a ga4=\u201dyes\u201d attribute to the trigger\u2019s shortcode.<\/li>\n<li>Allowed names to be added to If-So trigger versions, which are also included in the GA4 events being sent (if enabled) as event parameters.<\/li>\n<li>Reworked the Gutenberg standalone condition widget for improved reliability and performance.<\/li>\n<li>Added a new public JS event \u2013 \u201cifsoajaxcontentloaded\u201d \u2013 to help synchronize all the actions attached to various ajax content loading procedures.<\/li>\n<li>Allowed triggers rendered by \u201crecurrence\u201d and \u201ctesting mode\u201d to work with analytics, groups, and other hooks.<\/li>\n<li>Allowed setting the_content filter on a trigger rendered via ajax (previously only without ajax) by setting the \u201cthe_content\u201d attribute in the shortcode.<\/li>\n<li>UI improvements.<\/li>\n<li>Bug fixes.<\/li>\n<\/ul>\n<h4>1.7.1.1<\/h4>\n<ul>\n<li>Security update.<\/li>\n<\/ul>\n<h4>1.7.1<\/h4>\n<ul>\n<li>New functionality \u2013 Redirect shortcode improvements: Create a URL template to easily redirect each page on your site to a corresponding page on another domain, subdomain, TLD, or directory. <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/redirect-users-based-on-conditions\/\" rel=\"nofollow ugc noopener\">Learn more<\/a>.<\/li>\n<\/ul>\n<h4>1.7<\/h4>\n<ul>\n<li>New functionality \u2013 Conversion can now be set to fire once every X seconds via the \u201cdo_once_per\u201d shortcode attribute. <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/analytics\/\" rel=\"nofollow ugc noopener\">Learn more<\/a>.<\/li>\n<li>PHP 8.2 compatibility \u2013 Prevent the use of deprecated functionality.<\/li>\n<li>\u201cFind a Trigger\u201d tool functionality improvements.<\/li>\n<li>Elementor compatibility improvements \u2013 Treat Elementor \u201cpreview\u201d pages like edit pages.<\/li>\n<li>Reworked the built-in analytics conversion system.<\/li>\n<li>Reworked the trigger hook\/filter mechanism.<\/li>\n<li>Redirect shortcode \u2013 Escape URL before placing it on the page; changed \u201conce_per\u201d attribute to \u201cdo_onceper\u201d.<\/li>\n<li>ifsoDKI shortcode in \u201cajax\u201d mode now works inside various pop-ups (If-So trigger events, Elementor, and others).<\/li>\n<li>Conditional Gutenberg Blocks functionality \u2013 Fixed dependency bug occurring in the newest version of WordPress.<\/li>\n<li>If-So triggers\u2019 shortcodes inside If-So bulks content now use the appropriate context when loaded via Ajax and vice versa.<\/li>\n<li>Gravity Forms compatibility fixes.<\/li>\n<li>Various bug fixes.<\/li>\n<\/ul>\n<h4>1.6.3.1<\/h4>\n<ul>\n<li>WordPress 6.4 compatibility fixes<\/li>\n<\/ul>\n<h4>1.6.3<\/h4>\n<ul>\n<li>Add support to use the <a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so-geolocation\/\" rel=\"ugc noopener\">HTML5 Geolocation API (browser location) option<\/a>, provided by the free Geolocation Extension. <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/the-html-geolocation-api\/?utm_source=WordPress&amp;utm_medium=Readme&amp;utm_campaign=v2&amp;utm_term=html5_api\" rel=\"nofollow ugc noopener\">Learn more<\/a><\/li>\n<li>[ifso-add-cookie] Shortcode: Added \u2018increment\u2019 attribute. Setting it to \u2018yes\u2019 will make the cookie value a number that increments each time the shortcode is encountered. <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/the-cookie-condition\/\" rel=\"nofollow ugc noopener\">Learn more<\/a>.<\/li>\n<li>Cookie Condition: Added \u201cNumeric is more than\u201d \/ \u201cNumeric is less than\u201d options. <\/li>\n<li>Redirect Shortcode: Added the ability to redirect once per a specified period of time. <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/redirect-users-based-on-conditions\/\" rel=\"nofollow ugc noopener\">Learn more<\/a>.<\/li>\n<li>\u201cFind Shortcode\u201d \/ Scan Posts Tool: Functionality improvements, including the ability to scan for relevant if-so conversions.<\/li>\n<li>Audiences and Geolocation Dashboard Pages: Enhancements.<\/li>\n<li>Bug Fixes.<\/li>\n<\/ul>\n<h4>1.6.2<\/h4>\n<ul>\n<li>State targeting now utilizes the Google Maps API for state selection.<\/li>\n<li>Compatibility with new functions of the If-So Geolocation extension has been enhanced.<\/li>\n<li>Added the option to \u201cblock bots\u201d (can be activated in the settings) (learn more).<\/li>\n<li>The geolocation request log and analyzer tool now include user-agent data, making it easier to detect and block bots. User agents can be blocked by passing an array of user-agent values to the filter \u201cifso_block_bots_extra_blocked_user_agents\u201d (User-agent will be blocked if its text contains the value)<\/li>\n<li>Flag DKI Shortcode: Added a \u201cclassname\u201d attribute, allowing users to add classes to the rendered element.<br \/>\nEx. [ifsoDKI type=\u2019geo\u2019 show=\u2019flag\u2019 width=\u201950px\u2019 classname=\u2019class-you-choose\u2019]<\/li>\n<li>Location override improvements: Added the option to display flags near the country labels in a selection form.<\/li>\n<li>Location override improvements: Country DKI shortcode is now affected by the override functionality.<\/li>\n<li>Location override page caching compatibility: The form can now be loaded using Ajax.<\/li>\n<li>Added the ability to whitelist users from the geolocation \u201cBlock bots\u201d mode based on IP, cookie, or by using the geo service in the same way blacklisting is done, but with the \u201cifso_geo_whitelist\u201d filter instead.<\/li>\n<li>Allow blocking users from the geolocation service based on the results of custom functions (user role, login status).<\/li>\n<li>UI improvements.<\/li>\n<li>Bug fixes.<\/li>\n<\/ul>\n<p>= 1.6.1.2=<br \/>\n* Added the option to become a geolocation reseller \u2013 create sublicenses for clients\u2019 websites and take control of allocating monthly sessions to each sublicense based on their needs. <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/add-ons-and-integrations\/sub-geolocation-license\/\" rel=\"nofollow ugc noopener\">Learn more.<\/a>.<br \/>\n* Improved the user interface of the geolocation dashboard section.<br \/>\n* Extended access to the audiences page and audience creation\/deletion to editors, authors, and other custom roles with post creation permissions.<br \/>\n* Bug fixes.<\/p>\n<p>= 1.6.1.1=<br \/>\n* Geolocation page \u2013 Various UI and style changes; added session usage chart to info tab<br \/>\n* Added new filter \u2013 \u201cifso_visit_count_expiration\u201d \u2013 letting the user set the expiration of the \u201creturning visitor\u201d cookie<br \/>\n* Enabled if-so conversion shortcodes to work when loaded via ajax<br \/>\n* Bug fixes<\/p>\n<p>= 1.6.1=<br \/>\n* Compatiblity with the new <a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so-geolocation\/\" rel=\"ugc noopener\">If-So Geolocation Extension<\/a>.<br \/>\n* Log geo requests functionality removed \u2013 moved to geo extension. Note! If you enabled the log in the past, the old log will be deleted, you will have to download the <a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/if-so-geolocation\/\" rel=\"ugc noopener\">If-So Geolocation Extension<\/a> and re-check the \u2018Log Geolocation Request\u2019 in the plugin\u2019s settings to create a new log.<br \/>\n* Conditional Gutenberg blocks \u2013 streamlined the process of targeting locations for the Geolocation condition.<br \/>\n* Added ability to display the audiences a user is assigned to using the shortcode[ifso-audience type=\u2019show\u2019 show=\u2019user-audiences\u2019]<br \/>\n* Geolocation page UI changes.<br \/>\n* UI changes \u2013 the geolocation license activation field was moved to the license page.<\/p>\n<p>= 1.6.0=<br \/>\n* New system to sync <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/add-ons-and-integrations\/\" rel=\"nofollow ugc noopener\">extensions and integrations<\/a>.<br \/>\n* Compatiblity improvements with new version of the conditional countdown extension<br \/>\n* [ifso-show-post] shortcode \u2013 added type=\u2019elementor\u2019 to improve rendering of elementor templates.<br \/>\n* Geolocation condition \u2013 \u201cCuracao\u201d was added to the list of countries<br \/>\n* UTM condition \u2013 added \u201cterm\u201d type to the conditional Gutenberg and Elementor conditions.<br \/>\n* Bug fixes<\/p>\n<p>= 1.5.9=<br \/>\n* Gutenberg and Elementor widgets \u2013 an autocomplete option was added to the geolocation condition to ease the targeting of cities and states.<br \/>\n* Post category condition \u2013 UI changes<br \/>\n* AB Testing condition \u2013 added the option to create split testing with 5 versions.<br \/>\n* Query-string DKI \u2013 added a hook to allow users to set the expiration of the \u201cpersist\u201d cookie.<br \/>\n* Settings  \u2013 an option to apply shortcodes to navigation menus was added.<br \/>\n* Performance improvements<br \/>\n* Bug fixes<\/p>\n<p>= 1.5.8=<br \/>\n* Compatibility with various cookie consent plugins and systems was added: Cookiebot, Cookie Notice &amp; Compliance for GDPR \/ CCPA(hu-compliance), Complianz.<br \/>\n* [ifso-show-post] shortcode \u2013 Improved the shortcode while using WPBakery and Divi posts(templates). Adding the attributes type=\u201dWPB\u201d or type=\u201ddivi\u201d to make sure the post content loads correctly.<br \/>\n* WP filters for content resulting from rendering triggers\/widgets were added: apply_filters( \u2018ifso_standalone_condition_content\u2019, string $content ), apply_filters(\u2018ifso_shortcode_content\u2019,string $content, array $atts).<br \/>\n* [ifso-audience] shortcode \u2013 added ability to add\/remove users from audiences based on query strings, either by using a URL param value as audience name or a condition to determine whether the user should be added\/removed:<br \/>\n    [ifso-audience type=\u2019add\u2019 from=\u2019query\u2019 param=\u2019myparam\u2019] \u2013 will add the user to the group, whose name is the value of the \u201cmyparam\u201d querystring parameter. default value for param is \u201cifso_audience\u201d.<br \/>\n    [ifso-audience type=\u2019remove\u2019 from=\u2019query-condition\u2019 param=\u2019myparam\u2019 param_value=\u2019my-remove-parameter\u2019 audience=\u2019group1\u2032] \u2013 will only remove the user from group \u201cgroup1\u201d if the \u201cmyparam\u201d query string value equals \u201cmy-remove-parameter\u201d.<br \/>\n* [ifsoDKI] shortcode \u2013 added \u201cbefore\u201d and \u201cafter\u201d attrs that allow injecting text around the content while dynamic content is displayed(not fallback).<br \/>\n* [ifsoDKI] shortcode \u2013 added \u201cpersist\u201d attr for query-string DKI \u2013 to show content when the user browses other pages, even if the query string is not present anymore(during tone session).<br \/>\n* Edit Trigger page \u2013 UI improvements.<br \/>\n* SEO plugins compatibility \u2013 Allow using If-So shortcodes in the title and meta desc fields of YOAST and Rank Math.<br \/>\n* New feature \u2013 find (scan for) If-So shortcodes on posts and pages\u2019 main content field<br \/>\n* Added ability to exclude specific users from geolocation based on cookie or their IP,  using a new wp filter:<br \/>\n    apply_filters(\u2018ifso_exclude_from_geo\u2019,array $excluded)   $excluded array format : [\u2018cookie\u2019=&gt;[\u2018exclude_from_geo\u2019],\u2019ip\u2019=&gt;[]]<br \/>\n* New condition \u2013 post category (works also on custom taxonomies and terms)<br \/>\n* Elementor trigger element \u2013 added \u201cLoad with ajax\u201d option<br \/>\n* If-So content loaded via ajax \u2013 improve compatibility with page builder content by making sure the js code within it runs in the global scope<br \/>\n* Bug fixes and performance improvements<\/p>\n<p>= 1.5.7.2=<br \/>\n* Dynamic Keyword Insertion \u2013 an option to load the shortcodes with Ajax was added (add the parameter ajax=\u201dyes\u201d to the shortcode)<br \/>\n* Trigger Events extension compatibility \u2013 support the option to load triggers above the header on all pages (through the plugin\u2019s settings)<br \/>\n* Bug fixes<\/p>\n<p>= 1.5.7.1=<br \/>\n* Bug fixes \u2013 Elementor triggers widget not displaying content in some cases<\/p>\n<h4>1.5.7<\/h4>\n<ul>\n<li>Conditional Gutenberg blocks \u2013 added the option to target multiple locations\/pages visited in a single condition<\/li>\n<li>Conditional Elementor elements (integration)- added compatibility to support the option to target multiple locations\/pages visited in a single condition<\/li>\n<li>Added the option to log geolocation requests for debugging<\/li>\n<li>New Ajax loader animation \u2013 show the default content until the dynamic version loads using Ajax<\/li>\n<li>Global ifso() function now allows 2 additional parameters, making its signature ifso($id,$atts=null,$return=false), where $atts is an array of attributes that can be passed to the if-so shortcode and $return is a boolean, which determines whether the function echoes or returns the result of the trigger<\/li>\n<li>Added ability to load if-so shortcodes with \u201cname\u201d parameter instead of \u201cid\u201d(uses trigger title) \u2013 THE OPTION HEARTS LOADING TIMES \u2013 USE THE TRIGGER ID UNLESS YOU HAVE A REASON NOT TO<\/li>\n<li>New DKI shortcode option, to display the user\u2019s IP : [ifsoDKI type=\u2019ip\u2019]<\/li>\n<li>UI improvements<\/li>\n<li>Geolocation service now supports IPV6 addresses<\/li>\n<li>Added filter to allow users to set alternative IP detection \u2013 \u201cifso_user_ip\u201d<\/li>\n<li>Bug fixes<\/li>\n<\/ul>\n<h4>1.5.6.2<\/h4>\n<ul>\n<li>Bug fixes<\/li>\n<\/ul>\n<h4>1.5.6.1<\/h4>\n<ul>\n<li>Updated jquery-ui version in admin ui to 1.13.1<\/li>\n<li>Fix geolocation caching in triggers loaded via ajax<\/li>\n<li>Added option to cache the geolocation data in cookies(as opposed to sessions)<\/li>\n<li>Bug fixes<\/li>\n<\/ul>\n<h4>1.5.6<\/h4>\n<ul>\n<li>New condition \u2013 Session Variable: create conditional content based on a session variable. The option was added to the cookie condition.<\/li>\n<li>Compatibility with our <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/elementor-personalization\/\" rel=\"nofollow ugc noopener\">Conditional Elementor Elements integration<\/a><\/li>\n<li>Ajax loading \u2013 an option to load conditional Gutenberg Blocks using Ajax <\/li>\n<li>Ajax loading \u2013 an option to load conditional Elementor elements using Ajax<\/li>\n<li>Redirect shortcode: Create 301\/302 or JS redirects using a shortcode. Insert the shortcode in the the dynamic version content field to create conditional redirects <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/help\/documentation\/redirect-users-based-on-conditions\/\" rel=\"nofollow ugc noopener\">Learn more&lt;\/&gt;<\/a><\/li>\n<li>Bugfix: Use WordPress timezone for determining current day in schedule condition (problems occurred on specific scenarios)<\/li>\n<li>Visit count is now performed only through an ajax request<\/li>\n<li>Improved IP detection for geolocation functionality<\/li>\n<li>Gutenberg standalone condition widget \u2013 changed the \u201cIf-So Active\u201d indicator to be a colored border, to avoid breaking the appearance of some blocks in the editor<\/li>\n<li>Security improvements<\/li>\n<li>Bug fixes<\/li>\n<\/ul>\n<h4>1.5.5.1<\/h4>\n<ul>\n<li>Added shortcode that sets\/deletes a cookie value <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/add-and-remove-cookies-using-shortcodes\/\" rel=\"nofollow ugc noopener\">Learn more.<\/a><\/li>\n<li>Cloudflare Compatibility \u2013 The geolocation condition works with Cloudflare without having to use our Cloudflare integration<\/li>\n<li>Divi modules compatibility improvements while loading content with Ajax<\/li>\n<li>Page Caching Compatibility improvements \u2013 the referrer source condition is compatible with the Page Caching Compatibility (ajax) option<\/li>\n<li>Gutenberg standalone conditions \u2013 fix conflict with jetpack contact form<\/li>\n<li>Gutenberg standalone conditions \u2013 fix bug where the block inserter wasn\u2019t appearing when hovering between blocks<\/li>\n<li>Bugfix \u2013 Removed calls to dysfunctional updater \u2013  fixed bug which  caused an  \u201cupdate  available\u201d message  to  be shown<\/li>\n<li>Bugfix \u2013 Audiences \u2013 fixed the handling of names with \u201cspecial characters\u201d<\/li>\n<\/ul>\n<h4>1.5.5<\/h4>\n<ul>\n<li>The recurrence option was added to the user role condition<\/li>\n<li>An option to disable the use of sessions was added to the settings (do not disable the sessions if you are using the geolocation condition)<\/li>\n<li>Audience self-selection shortcode generator was added the audience page<\/li>\n<li>added  the ability to defer the loading of  if-so triggers   via  ajax  (by adding the parameter defer=\u201dtrue\u201d to the trigger\u2019s shortcode)<\/li>\n<li>Added new option to disable the number of visit count cookie to the settings<\/li>\n<li>Bugsfix \u2013 import triggers  \u2013 fixed  newlines being replaced  with \u201crn\u201d<\/li>\n<li>bugsfix \u2013 TinyMCE ediotr was reverted to HTML mode while dragging a version<\/li>\n<li>(1) Security fix (Ajax vulnerability)<\/li>\n<\/ul>\n<p>=1.5.4.2 =<br \/>\n* Bugfix \u2013 TinyMCE is no longer turning image URLs to be relative urls when changing versions order<br \/>\n* TinyMCE \u2013 An option to prevent text nodes from being wrapped in<\/p>\n<p>&lt;<\/p>\n<p>p&gt; tags was added to the settings<br \/>\n* Yoast SEO \u2013 Prevent if-so triggers (the \u201cview trigger\u201d pages) from being added to the sitemap<br \/>\n* <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/custom-user-profile-fields-dynamic-content\/\" rel=\"nofollow ugc noopener\">Custom user profile extension<\/a> \u2013 a new option to assign a value using a query string<br \/>\n* <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/dynamic-content-from-csv\/\" rel=\"nofollow ugc noopener\">CSV extension<\/a> \u2013 New conditions \u2013 Cookie ; geolocation ; IP<br \/>\n* WordPress 5.8 compatiblity<\/p>\n<p>user details trigger \u2013 fix admin display bug<\/p>\n<h4>1.5.4.1<\/h4>\n<ul>\n<li>New condition \u2013 Referral Category: Display dynamic content based on the referral page\/post category (page or post on your site).<\/li>\n<li>New condition \u2013 Trigger visited: Show dynamic content if a specific trigger was previously displayed to the user.<\/li>\n<li>Ajax loading: an option to show a loader animation while the content is being loaded in Ajax mode (Page Caching Compatibility mode) .<\/li>\n<li>The Geolocation Condition: An option to target a city manually (without autocomplete) \u2013 this option should be used to overcome problems with targeting cities whose names in Google Maps (the backend autocomplete service we use) are spelled differently from our IP-to-location database)<\/li>\n<li>The Schedule Condition \u2013 More flexibility setting the times. You can now change the time intervals through the plugin\u2019s settings.<\/li>\n<li>The Page URL Condition \u2013 An option to ignore case was added.<\/li>\n<li>The User Role Condition \u2013 The option to set the recurrence option was added to the condition.  <\/li>\n<li>New DKI shortcode \u2013 \u201cAuto-Local Time Display\u201d:- Show an event time calculated according to the visitor\u2019s time zone.<\/li>\n<li>Audiences \u2013 You can now add or remove users from an audience using a shortcode.<\/li>\n<li>Bugfix \u2013 HTML mode was turning to visual mode while dragging a version.  <\/li>\n<li>Performance \u2013 An option to disable the use of sessions was added to the settings (do not disable the sessions if you are using the geolocation condition).  <\/li>\n<li>Extensions and integrations -The new version supports some of our <a target=\"_blank\" href=\"https:\/\/www.if-so.com\/add-ons-and-integrations\/\" rel=\"nofollow ugc noopener\">latest extensions and integrations.<\/a><br \/>\n*Various bug fixes and performance improvements<\/li>\n<\/ul>\n<h4>1.5.3.2<\/h4>\n<ul>\n<li>Hotfix- security vulnerability fixes<\/li>\n<\/ul>\n<h4>1.5.3.1<\/h4>\n<ul>\n<li>WordPress 5.6 compatibility fixes<\/li>\n<\/ul>\n<h4>1.5.2.4<\/h4>\n<ul>\n<li>WordPress 5.6 compatibility fixes<\/li>\n<\/ul>\n<h4>1.5.2.2<\/h4>\n<ul>\n<li>Hot fix \u2013 Elementor compatibility \u2013 fail to load the Edit With Elementor screen using WordPress 5.6<\/li>\n<\/ul>\n<h4>1.5.2.1<\/h4>\n<ul>\n<li>Bug fix \u2013 loading speed<\/li>\n<\/ul>\n<h4>1.5.2<\/h4>\n<ul>\n<li>Display post content using a shortcode \u2013 create content using your page builder as a post. Use the shortcode [ifso-show-post id=\u201d###\u201d show=\u201dcontent\/title\u201d] inside an If-So version to display the post content.<\/li>\n<li>Content editor \u2013 Allowing inline JavaScript and SVG usage inside the trigger\u2019s wysiwyg editor<\/li>\n<li>Bugfix \u2013 adding conditions to 3rd-party Gutenberg blocks <\/li>\n<\/ul>\n<h4>1.5.1<\/h4>\n<ul>\n<li>Gutenberg \u2013 option to set conditions directly in a block<\/li>\n<li>Preventing no-cache headers from being sent as a result of If-So using PHP sessions<\/li>\n<li>Shortcodes are now rendered when entered in YOAST and SEO Pack title meta filed.<\/li>\n<li>New routine for detecting a user\u2019s IP<\/li>\n<li>Added WPDB prefix to the beginning of names in the tables used by If-So<\/li>\n<li>Bugfix \u2013 The option to prevent Ajax calls was fixed.<\/li>\n<\/ul>\n<h4>1.5.0.1<\/h4>\n<ul>\n<li>Ajax loading (page caching compatibility) \u2013 Load triggers after ther page loads from the cache. <\/li>\n<li>DKI \u2013 A new option to set the default content in the User name DKI shortcode.<\/li>\n<li>Bugfix \u2013 Subscribers data is now collected by Built-in analytics.<\/li>\n<li>Groups \u2013 The name was changed to \u201cAudiences\u201d<\/li>\n<li>New DKI \u2013 name of the day.<\/li>\n<li>Bugfix \u2013 The option to prevent Ajax calls was fixed.<\/li>\n<\/ul>\n<h4>1.4.9.1<\/h4>\n<ul>\n<li>Bug fix \u2013 Geolocation \u2013 targeting city-states (Singapore, Monaco, etc.)<\/li>\n<li>Bug fix \u2013 CSS and JS conflicts with 3rd party plugins.<\/li>\n<\/ul>\n<h4>1.4.9<\/h4>\n<ul>\n<li>New Elementor Widget <\/li>\n<li>Geolocation DKI \u2013 An option to set a fallback was added<\/li>\n<li>Bugs fix (visual editor issues)<\/li>\n<\/ul>\n<h4>1.4.8<\/h4>\n<ul>\n<li>New DKI shortcode \u2013 display a value of a query string paremeter <\/li>\n<li>Improved the help box and help notifications<\/li>\n<li>Bugs fix (visual editor issues)<\/li>\n<\/ul>\n<h4>1.4.7<\/h4>\n<ul>\n<li>Geolocation dashboard improvements<\/li>\n<li>Change the Time and date conditions to rely on local time.<\/li>\n<li>Stop including admin views in the built-in analytics<\/li>\n<li>Load time improvements<\/li>\n<li>RTL fixes<\/li>\n<li>Bugs fix (remove groups data on uninstall; Google places javascript issue;)<\/li>\n<\/ul>\n<h4>1.4.6.1<\/h4>\n<ul>\n<li>WordPress 5.4 compatibility fixes (Gutenberg design)<\/li>\n<li>Bugs fix (Conflict with SafeGard)<\/li>\n<\/ul>\n<h4>1.4.6<\/h4>\n<ul>\n<li>New feature: Create groups; Add users to a group when the condition is met; Display group-based content.<\/li>\n<li>New condition \u2013 user role. Add or replace content according to the user\u2019s role (Administrator, Editor, Subscriber, or any other role you have on your website)<\/li>\n<li>New feature \u2013 User\u2019s Select \u2013 Let the users select the content they\u2019ll see. Add a select box or radio buttons with categories and show category-based content<\/li>\n<li>Bugs fix<\/li>\n<\/ul>\n<h4>1.4.5<\/h4>\n<ul>\n<li>If used in the page title, If-So\u2019s shortcodes are now also rendered in the meta title of the page.<\/li>\n<li>Allowing Editors to create and edit triggers<\/li>\n<li>Gutenberg block \u2013 an indication showing if a trigger was deleted was added<\/li>\n<li>Geolocation  \u2013 The user\u2019s location will be checked again if the user\u2019s IP has been changed \u2013 even if the session hasn\u2019t been ended.<\/li>\n<li>Bugs fix<\/li>\n<\/ul>\n<h4>1.4.4<\/h4>\n<ul>\n<li>Gutenberg block<\/li>\n<li>New condition: Content by cookie name and cookie value<\/li>\n<li>Performance improvements.<\/li>\n<li>Bugfixs.<\/li>\n<li>Security updates.<\/li>\n<\/ul>\n<h4>1.4.3<\/h4>\n<ul>\n<li>Built-in analytics was added \u2013 see how many time each version was displayed what effect does it have on the conversion rate.<\/li>\n<li>UI improvements.<\/li>\n<li>Security updates.<\/li>\n<li>Bug fixes.<\/li>\n<\/ul>\n<h4>1.4.2<\/h4>\n<ul>\n<li>An option to import and export triggers was added.<\/li>\n<li>A new button that allows editing and embedding triggers was added to the content editor.<\/li>\n<li>Import and export triggers.<\/li>\n<li>Security updates.<\/li>\n<li>Refactored + Bug fixes.<\/li>\n<\/ul>\n<h4>1.4.1<\/h4>\n<ul>\n<li>New condition \u2013 Cookie Detection: \u2013 Show dynamic content based on existing cookies on the user\u2019s browser.<\/li>\n<li>The License Key is now hidden<\/li>\n<li>An option to allow shortcodes in the titles was add to the settings<\/li>\n<li>Duplicate triggers option was added to the <code>All the triggers page<\/code><\/li>\n<li>An option to disable the <code>pages visited<\/code> cookie was added to the settings<\/li>\n<li>A new option to overrdie recurrence was added to conditions with recurrence<\/li>\n<li>Dynamic keyword Insertion is now an integral part of the plugin<\/li>\n<li>Refactored + Bug fixes.<\/li>\n<\/ul>\n<h4>1.4.0<\/h4>\n<ul>\n<li>New condition \u2013 Cookie Detection: Add or replace content according to UTM parameters<\/li>\n<li>New condition \u2013 IP Detection: \u2013 Show dynamic content based on user IP.<\/li>\n<li>Refactored + Bug fixes.<\/li>\n<\/ul>\n<h4>1.3.3<\/h4>\n<ul>\n<li>Improved user experience at the advertising platforms condition (Google Ads, Facebook Ads and dynamic link)<\/li>\n<li>Right to left support<\/li>\n<li>A Russian translation was added<\/li>\n<li>Refactored + Bugs fix<\/li>\n<\/ul>\n<h4>1.3.2<\/h4>\n<ul>\n<li>Drag versions to change their order<\/li>\n<li>Settings \u2013 An option to prevent WordPress from wrapping If-So shortcodes with <\/li>\n<\/ul>\n<p>&lt;<\/p>\n<p>p&gt; tags was added.<br \/>\n* Settings \u2013 An option to choose not to remove If-So\u2019s data when the plugin is deleted was added.<br \/>\n* Settings \u2013 An option to set The duration used by the \u2018pages visited\u2019 condition to track users\u2019 visits was added.<br \/>\n* Number of versions \u2013 There is now no limit to the number of versions that can be created.<br \/>\n* A\/B testing \u2013 An option to set a control group (will be displayed 100% of the reminder sessions) was added<br \/>\n* Refactored + Bugs fix<\/p>\n<h4>1.3.1<\/h4>\n<ul>\n<li>New condition \u2013 Pages visited: Show dynamic content to visitors who have been visited a chosen page (or pages) on your website<\/li>\n<li>Refactored + Bugs fix<\/li>\n<\/ul>\n<h4>1.3.0<\/h4>\n<ul>\n<li>New condition \u2013 Page URL: Show dynamic content if the page URL is or consists a certain text string<\/li>\n<li>Refactored + Bugs fix<\/li>\n<\/ul>\n<h4>1.2.9<\/h4>\n<ul>\n<li>Thrive architect compatibility<\/li>\n<li>New geolocation options: target visitors by continent, state, and time zone.<\/li>\n<li>New feature for the browser language condition \u2013 choose to display custom content only when the user\u2019s language is set as the primary language (The option to target users when a language is not set as default is still available).<\/li>\n<li>Reach snippets compatibility<\/li>\n<\/ul>\n<p>PLEASE NOTE \u2013 THE REFERRER SOURCE CONDITION IS NO LONGER  AVAILABLE FOR FREE. IF YOU ARE USING  A VERSION OLDER THAN 1.2.9, AND WOULD LIKE TO KEEP USING THE REFERRER SOURCE CONDITION, PLEASE CONTACT US.<\/p>\n<h4>1.2.8<\/h4>\n<ul>\n<li>Recurrence \u2013 New options were added<\/li>\n<li>Geolocation \u2013 New settings screen shows utilization details<\/li>\n<li>Browser language \u2013 Dynamic version will be presented even if the user\u2019s browser language is not set as the main language in his browser settings.<\/li>\n<li>Refactored + Fixed bugs<\/li>\n<\/ul>\n<h4>1.2.7<\/h4>\n<ul>\n<li>Recurrence (New feature) \u2013 After the condition is met for the first time, the version will be displayed any time the visitor encounters the trigger. Recurrence works only if the visitor entered again from the same device and browser and did not delete cookies.<\/li>\n<\/ul>\n<h4>1.2.6<\/h4>\n<ul>\n<li>New condition \u2013 Geolocation: Add or replace content according to the user\u2019s location \u2013 country or city<\/li>\n<\/ul>\n<h4>1.2.5<\/h4>\n<ul>\n<li>Some conditions are now open to registered users only. Please note that if you already use the plugin only default content will be displayed unless you register (Free for one year).<\/li>\n<li>The free conditions are: Logged-in users, device type, and referrer source.<\/li>\n<\/ul>\n<h4>1.1.6<\/h4>\n<ul>\n<li>New conditions were added: Start &amp; end date.<\/li>\n<li>New conditions were added: Scheduling Content.<\/li>\n<li>Pause mode \u2013 Users can now temporarily pause a version of the content.<\/li>\n<\/ul>\n<h4>1.1.4<\/h4>\n<ul>\n<li>New condition added- Browser language<\/li>\n<li>Testing mode \u2013 Force displaying of a chosen version of content.<\/li>\n<\/ul>\n<h4>1.1.3<\/h4>\n<ul>\n<li>New condition added- New \/ Returning visitors<\/li>\n<\/ul>\n<\/div><\/div>\n<p><!-- .entry-content --><\/p>\n<p>\t<!-- .entry-meta --><br \/>\n<\/article>\n<p><br \/>\n<br \/><a href=\"https:\/\/wordpress.org\/plugins\/if-so\/\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>If-So Dynamic Content Personalization By IfSo Dynamic Content Download Details Reviews Installation Development Support Description Personalize any content! Add or replace content according to the visitor\u2019s profile or interaction with the site. No coding required! FOUR WAYS TO CREATE DYNAMIC CONTENT Conditional triggers \u2013 works with every page builder \u2013 Watch Conditional Gutenberg blocks \u2013 [&hellip;]<\/p>","protected":false},"author":298,"featured_media":4775,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[42,39,40],"tags":[2202,2524,3048,3049],"class_list":["post-4774","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-block-plugin","category-lite-version","category-wp-plugin-solution","tag-content","tag-dynamic","tag-ifso","tag-personalization"],"acf":[],"fifu_image_url":"https:\/\/ps.w.org\/if-so\/assets\/banner-772x250.gif?rev=2590709","_links":{"self":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/4774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/users\/298"}],"replies":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/comments?post=4774"}],"version-history":[{"count":0,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/4774\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media\/4775"}],"wp:attachment":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media?parent=4774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/categories?post=4774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/tags?post=4774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}