Title: If-So Dynamic Content Personalization
Author: If-So Dynamic Content
Published: <strong>23. mars, 2017</strong>
Last modified: 9. mars, 2026

---

Leita í viðbótum

![](https://ps.w.org/if-so/assets/banner-772x250.gif?rev=2590709)

![](https://ps.w.org/if-so/assets/icon-256x256.gif?rev=2633132)

# If-So Dynamic Content Personalization

 Höfundur: [If-So Dynamic Content](https://profiles.wordpress.org/ifso/)

[Sækja](https://downloads.wordpress.org/plugin/if-so.1.9.7.zip)

 * [Details](https://is.wordpress.org/plugins/if-so/#description)
 * [Reviews](https://is.wordpress.org/plugins/if-so/#reviews)
 *  [Installation](https://is.wordpress.org/plugins/if-so/#installation)
 * [Development](https://is.wordpress.org/plugins/if-so/#developers)

 [Aðstoð](https://wordpress.org/support/plugin/if-so/)

## Lýsing

Personalize any content! Add or replace content according to the visitor’s profile
or interaction with the site.

No coding required!

### FOUR WAYS TO CREATE DYNAMIC CONTENT

 * Conditional triggers – works with every page builder – [Watch](https://www.if-so.com/help/documentation/how-to-create-dynamic-content-trigger/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=dynamic-triggerTop)
 * Conditional Gutenberg blocks – [Watch](https://www.if-so.com/conditional-gutenberg-blocks/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=gutenbergTop)
 * Conditional Elementor elements – [Watch](https://www.if-so.com/elementor-personalization)
 * Dynamic Keyword Insertion (DKI) shortcodes – [Watch](https://www.if-so.com/help/documentation/dynamic-keyword-insertion/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=DKITop)

Watch a short video (1:36):

### WHY IF-SO?

 * Simple to use – No coding is required
 * Works with any page builder
 * 100% compatible with all caching plugins (no need to disable the cache)
 * A simple way to improve engagement and conversion rates
 * New! Conditional Gutenberg Blocks and Elementor Widgets

……………………………………………………………

### HOW IT WORKS

#### All page builder users:

 1. Create a trigger
 2. Select a condition and set the personalized content version
 3. Optional – create more dynamic versions and set the default content
 4. Paste the shortcode wherever you want to display the content
     Every time a page
    with the shortcode is loaded, one of the content versions will be displayed accordingly.

[Learn more >>](https://www.if-so.com/help/documentation/how-to-create-dynamic-content-trigger/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=dynamic-trigger)

#### Gutenberg and Elementor users

 1. Select the block or element
 2. On the side menu, select the condition to display the block/element

[ – More about conditional Elementor Elements >>](https://www.if-so.com/elementor-personalization/)

[ – More about conditional Gutenberg Blocks >>](https://www.if-so.com/conditional-gutenberg-blocks/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=gutenberg)

……………………………………………………………

### WHICH CONDITIONS CAN BE SET WITH IF-SO?

If-So offers a wide range of conditions. Here are examples of our most implemented
conditions.

**Most popular**

 1. Geolocation – Show location-based content ([examples >>](https://www.if-so.com/location-based-content-wordpress-plugin/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=geolocation))
 2. Google Ads – Show content based on the user’s search term on Google Ads or related
    to the Facebook Ad the user was referred from ([examples >>](https://www.if-so.com/google-ads/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=google-ads))
 3. UTM Parameters – Show dynamic content based on UTM parameters or other query strings(
    [examples >>](https://www.if-so.com/help/documentation/utms/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=utm-parameters))

[More usage examples >>](https://www.if-so.com/personalization-examples?utm_source=WordPress&utm_medium=Readme&utm_campaign=1.5.1&utm_term=examples)

**Geolocation**

 * City
 * State
 * Country
 * Continent
 * Time zone

**User Behavior**

 * Browser Language
 * Returning Visitor (pro)
 * Device Type
 * Logged-in User
 * Days Since User Registration (pro)
 * Pages Visited (pro)
 * Referral Source (pro)
 * Browser Type (pro)
 * Operating System (pro)
 * Number of Version Views (pro)

**Date & Time**

 * Start & End Date (pro)
 * Schedule (pro)
 * Day of the Month (pro)

**Marketing & Advertising**

 * Dynamic Link (pro)
 * Page URL (pro)
 * UTM Parameters (pro)
 * Google Ads / Facebook Ads (pro)

**WooCommerce**

 * Products in the Cart (pro)
 * Products Purchased (pro)
 * Units in Stock (pro)
 * Total Spent (pro)
 * Average Order Value (pro)
 * Customer Details (pro)

**Integrations (pro)**

 * WooCommerce Subscriptions
 * WooCommerce Memberships
 * MemberPress
 * WishList Member
 * WP Job Manager
 * LearDash
 * Easy Digital Downloads
 * AffiliateWP
 * Weglot

[**All conditions >>**](https://www.if-so.com?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=AboutTheConditions)

……………………………………………………………

### Built-in stats

Get clear insights into your content performance! See real-time results with a built-
in analytics system – how many times each version was displayed and how it affected
the conversion rate.

……………………………………………………………

### THE EXTRA OPTIONS THAT MADE If-So THE #1 PERSONALIZATION PLUGIN

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.

**Audiences (segments)**
 Assign users into predefined audiences based on the user’s
interaction with the site and then show content based on the user’s audience. [Learn more >>](https://www.if-so.com/help/documentation/segments/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=audiences)

**User self-selection form:**
 Allow users to select the content they will see by
assigning themselves to an audience (segment). [Learn more >>](https://www.if-so.com/dynamic-select-form/)

**Conditional pop-ups**
 Create pop-ups that will be displayed based on any If-So
condition. [Learn more >>](https://www.if-so.com/conditional-pop-ups/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=pop-ups)

**Custom user profile fields (for logged-in users)**
 Create a new field in the 
user’s profile, assign a value to that field, and show content based on the value.
[Learn more >>](https://www.if-so.com/custom-user-profile-fields-dynamic-content/)

**Dynamic content from CSV**
 Create and manage thousands of dynamic content versions
directly from a CSV file. [Learn more >>](https://www.if-so.com/dynamic-content-from-csv/)

……………………………………………………………

### DYNAMIC KEYWORD INSERTION (DKI)

The Dynamic Keyword Insertion (DKI) option allows you to display values using shortcodes:
*
The user’s location: country, state, city, or continent * A value of a query string
parameter * The user name * An event time – calculated according to the user time
zone

[And more… for all DKI shortcodes >>](https://www.if-so.com/help/documentation/dynamic-keyword-insertion?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=AllDKI)

#### Examples for Dynamic Keyword Insertion shortcodes:

**User’s Country**
 Display the user’s location: country, city, state, continent,
or time zone.

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

[More Geolocation DKI shortcode options >>](https://www.if-so.com/geolocation-dki/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=geo-dki)

**Query String DKI**
 Display the value of any query string.

    ```
    [ifsoDKI type="querystring" parameter="YOUR-PARAMETER" fallback="Your default value (optional)"]
    ```

[More Geolocation DKI shortcode options >>](https://www.if-so.com/query-string-dki-shortcode/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=qs-dki)

**Auto-Local Time Display**
 Show an event time calculated according to the user’s
time zone.

    ```
    [ifsoDKI type='time' show='user-geo-timezone-sensitive' time='04/25/2022 08:00' format='n/j/o, G:i']
    ```

[More Geolocation DKI shortcode options >>](https://www.if-so.com/auto-local-time-display/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=local-time-display-dki)

## Skjámyndir

 * [[
 * Dynamic triggers – works with all page builder users
 * [[
 * Dynamic Gutenberg Blocks
 * [[
 * Dynamic Elementor Elements
 * [[
 * The conditions
 * [[
 * Built-in stats
 * [[
 * Dynamic Keyword Insertion (DKI) shortcodes
 * [[
 * Compatible with caching plugins
 * [[
 * User segmentation
 * [[
 * User-self selection field
 * [[
 * The recurrence option
 * [[
 * Dynamic trigger

## Blocks

This plugin provides 1 block.

 *   Dynamic Content

## Uppsetning

 1.  Go to your WordPress Control Panel
 2.  Click „Plugins“, then „Add New“
 3.  Enter „ifso“ as a search term and click „Search Plugins“
 4.  Download and install the IfSo Dynamic Content plugin
 5.  Click the „Activate Plugin“ link
 6.  On your WordPress menu under IfSo, click „Add new“
 7.  Fill in the default content
 8.  Select rule
 9.  Choose the content you wish to display if the rule is met and press „Publish“

## SOS

### Does If-So work with any page builder?

Yes, If-So works on every website, regardless of the page builder you are using.

### Is there a session limit

No, the only condition that is limited by sessions is the Geolocation condition 
since we use a highly accurate, premium, IP-to-location database.

### What content can be customized with If-So?

If-So allows you to customize any element on the website, including titles, texts,
images, videos, menu items, and design.

### How does If-So work?

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.

*All page builder users: *

 1. Create a trigger
 2. Select a condition and set the personalized content version
 3. Optional – create more dynamic versions and set the default content
 4. Paste the shortcode wherever you want to display the content
     Every time a page
    with the shortcode is loaded, one of the content versions will be displayed accordingly.

[Learn more >>](https://www.if-so.com/help/documentation/how-to-create-dynamic-content-trigger/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=dynamic-trigger)

_Gutenberg and Elementor users_

 1. Select the block or element
 2. On the side menu, select the condition to display the block/element

[ – More about conditional Elementor Elements >>](https://www.if-so.com/elementor-personalization/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=elementor)

[ – More about conditional Gutenberg Blocls >>](https://www.if-so.com/conditional-gutenberg-blocks/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=gutenberg)

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

You can choose from a variety of conditions. Here are a few examples:

 * Referral source – Show different content to users arriving through a specific
   domain or webpage.
 * In-site remarketing – Show different content to users who referred from a particular
   page on your website.
 * Logged-in users – Show different content to logged-in users.
 * New and returning visitors – Show different content to returning / new visitors.
 * Browser language – Show customized messages to visitors according to their set
   browser language.
 * 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.
 * Schedule – Change selected parts of your website content according to the time
   and day.
 * Start and end date – Show content throughout selected dates.
 * UTM Parameters-based content – Add or replace content based on UTM (tracking 
   parameters).

[**click here for the complete list of conditions**](https://www.if-so.com?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=faq-list-of-conditions)

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

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’t work with your theme, we
will work with you to resolve the issue.

## Umsagnir

![](https://secure.gravatar.com/avatar/a1b7f27a6f67c307e2f6b5f4240d1bf3798c4bcd971e32db55264a201aaca51d?
s=60&d=retro&r=g)

### 󠀁[Utter nightmare for menus](https://wordpress.org/support/topic/utter-nightmare-for-menus/)󠁿

 [honeystonebooks](https://profiles.wordpress.org/honeystonebooks/) 21. febrúar,
2026

I installed this and the geolocation plugin to be able to redirect customers from
countries that I can’t sell directly into towards the retailers carrying my books.
I was able to set up a simple category-level set of redirections based on country.
I couldn’t redirect based on product page. I didn’t mind, at least I had some kind
of solution in place. But when I made a trigger and went to try adding it to my 
website, I found my menu and footer on my website in utter chaos, I’m guessing because
of the dynamic content thing. Three lines of menu links at the top and every menu
link listed in my policy footer. I had to uninstall it to restore the order defined
in my Menu appearance area. My experience has been time consuming, distressing, 
and ultimately disappointing. I can’t figure out why it made such a violent mess
of my menu, but I can’t have it filled with clutter just for the sake of trying 
to be kind to readers outside of the countries I can sell to.

![](https://secure.gravatar.com/avatar/a4eec5666400aea169065b11eb124637bb0494d32ea41d68b41f3e039235f06b?
s=60&d=retro&r=g)

### 󠀁[Very clever and simple to use](https://wordpress.org/support/topic/very-clever-and-simple-to-use/)󠁿

 [tangoev](https://profiles.wordpress.org/tangoev/) 15. desember, 2025

Neat bit of code for creating clever options based on users locations. Perfect for
US visitors in USD and Europe in Euros and UK in telling.

![](https://secure.gravatar.com/avatar/d92c3683581bbbdf5ce27f65ccee2e3bb7c4437e2b3a57bbc7cc90b60a956b04?
s=60&d=retro&r=g)

### 󠀁[Amazing Plugin](https://wordpress.org/support/topic/amazing-plugin-2802/)󠁿

 [Ultimate Electricians Guide](https://profiles.wordpress.org/mjones1625/) 22. september,
2025

Great features, works flawlessly. Support is great.

![](https://secure.gravatar.com/avatar/0df465d2de6cecad9a6d56f745689e0e7662bea2eb5865955f50548acd0be415?
s=60&d=retro&r=g)

### 󠀁[Amazing Support](https://wordpress.org/support/topic/amazing-support-1009/)󠁿

 [mreall](https://profiles.wordpress.org/mreall/) 16. september, 2025

I’m still getting to know the plugin, but have been impressed with the feature set
so far. But, by far, the most impressive experience is their support. They are responsive
and helpful (you don’t always get both).

![](https://secure.gravatar.com/avatar/7a2890591d50b4db4d66eeb0f1e3e5bc8931489a80fc31393ba7618acacb6968?
s=60&d=retro&r=g)

### 󠀁[Support going the extra mile](https://wordpress.org/support/topic/support-going-the-extra-mile/)󠁿

 [Roed](https://profiles.wordpress.org/michaelroed/) 11. september, 2025

The support for this plugin is unbelievable. They added some new features because
I needed them in my site. Without asking they just developed new functions so i 
could use the plugin as I needed. No other support developers has done that for 
me. And in general this plugin is just the bomb, you get so much control of what
you show on your site with this and it is so easy to use. This is 10 out of 10.

![](https://secure.gravatar.com/avatar/0944ec83fd644aa34ab0ecb7498af877e3d7a455a87874d6d2c91bf60649f6ed?
s=60&d=retro&r=g)

### 󠀁[Easy, Effective and a very budget friendly pricing structure!!!](https://wordpress.org/support/topic/easy-effective-and-a-very-budget-friendly-pricing-structure/)󠁿

 [emlystp](https://profiles.wordpress.org/emlystp/) 27. ágúst, 2025

I had a geo-targeting conditional display nightmare on my hands. I spent hours trying
to find a solution. This plugin solved it. Unfortunately (?) for me, my traffic 
did pass the free plan threshold almost immediately, but the geo targeting specific
license is SO affordable. I strongly recommend this as your geo-targeting solution
compared to any other option out there. *I use in combination with the Divi Builder,
and unfortunately I was not able to figure out how to combine the geo targeting 
shortcode with Divi’s conditional display, so I was not able to conditionally display
an entire section, as I would have preferred (may still be possible! I just couldn’t
figure it out), but the plugin is built right into the „text“ module, and is so 
easy to configure on the front end.

 [ Skoða 92 umsagnir ](https://wordpress.org/support/plugin/if-so/reviews/)

## Þátttakendur & höfundar

“If-So Dynamic Content Personalization&#8221 er opinn hugbúnaður. Eftirfarandi aðilar
hafa lagt sitt af mörkum við smíði þessarar viðbótar.

Höfundar

 *   [ If-So Dynamic Content ](https://profiles.wordpress.org/ifso/)

“If-So Dynamic Content Personalization” has been translated into 2 locales. Thank
you to [the translators](https://translate.wordpress.org/projects/wp-plugins/if-so/contributors)
for their contributions.

[Translate “If-So Dynamic Content Personalization” into your language.](https://translate.wordpress.org/projects/wp-plugins/if-so)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/if-so/), check out 
the [SVN repository](https://plugins.svn.wordpress.org/if-so/), or subscribe to 
the [development log](https://plugins.trac.wordpress.org/log/if-so/) by [RSS](https://plugins.trac.wordpress.org/log/if-so/?limit=100&mode=stop_on_copy&format=rss).

## Breytingarsaga

#### 1.9.7

 * Added a new shortcode – [ifso_hide_site_content] which allows you to display 
   a message instead of the site’s content.
 * If-So GA4 Extension compatibility.
 * UI improvements.
 * Bug fixes and PHP 8.4 compatibility improvemnts.

#### 1.9.6

 * Added a new ifso_cookie_category filter that allows you to change the cookie 
   consent category of cookies added by If-So. The filter receives two arguments:
   the cookie type (necessary, statistics, marketing, preferences) and the cookie
   name ([Learn more](https://www.if-so.com/faq-items/can-i-change-the-category-of-if-so-cookies/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=cookiefilter)).
 * Added a new DKI shortcode that lets you block users from accessing the site based
   on If-So conditions (for example, country-based blocking; [Learn more](https://www.if-so.com/geolocation-wordpress-plugin/wordpress-country-block/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=cookiefilter)).

#### 1.9.5.1

 * Bug fixes (Built-in analytics UI)

#### 1.9.5

 * User IP condition – added a “starts with” operator
 * Conditional Elementor and Gutenberg blocks – added Date & Time conditions
 * Date & Time condition – can now operate using either the server timezone or the
   user’s local timezone (via geolocation)
 * UI improvements on the trigger page
 * [ifso-redirect] and [ifsoDKI type=’url’] shortcodes – URL template now supports
   the {{?}} character, which renders a “?” when a query string exists and an empty
   string when it doesn’t
 * Bug fixes and performance optimizations

#### 1.9.4.1

 * Resolved a non-critical security concern.

#### 1.9.4

 * New visual tool for generating If-So DKI and Utility shortcodes
 * Shortcode improvements – [ifso-redirect] shortcode generator
 * Reworked the A/B Testing condition for improved usability
 * If-So Trigger Gutenberg block: added “Load with AJAX” option
 * UI improvements
 * Performance improvements
 * Bug fixes

#### 1.9.3.2

 * Security fixes

#### 1.9.3.1

 * Google Places API compatibility fixes

#### 1.9.3

 * Compatibility with the [If-So & Elementor integration (version 1.4)](https://wordpress.org/plugins/if-so-conditional-elementor-elements/)
 * UI and microcopy improvements
 * Bug fixes

#### 1.9.2.2

 * Compatibility with the upcoming If-So & Elementor integration (version 1.4)
 * Fixed information disclosure vulnerability in the [ifso-show-post] shortcode
 * UI and microcopy improvements
 * Bug fixes

#### 1.9.1

 * Audience Standalone Condition – Added an option to target users who are either
   inside or outside any audience
 * Updated the „Mobile Detect“ library (the new version requires PHP 7.4 or higher)
 * Bug Fixes

#### 1.9

 * PHP 5.X and lower versions are no longer supported.
 * 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):
    [ifso_display_user_geo],[
   ifso_display_user_languages], [ifso_display_referrer]
 * The [ifso-redirect] shortcode now defaults to the JS redirect type when rendered
   within an If-So trigger loaded via AJAX.
 * A new filter, „ifso_gutenberg_standalone_widget_forbidden_blocks,“ has been introduced
   to prevent the If-So standalone condition widget from loading on certain Gutenberg
   blocks.
 * Geo-session usage notifications are now calculated based on all licenses installed
   on the site, rather than separating pro and geolocation licenses.
 * The „shortcodes in titles and menus“ setting now affects WooCommerce page/category
   titles and breadcrumbs.
 * The „time“ DKI shortcode (Also known as the Auto-local Time Disaply shortcode)
   now supports displaying the current time according to the website’s timezone 
   using the format attribute (optional), for example: [ifsoDKI type=’time’ show
   =’site-timezone’ format=’n/j/o, G:i’].
 * Bug fixes
 * Refactoring
 * Performance improvments

#### 1.8.0.4

 * Licensing system improvements
 * Bugs fix

#### 1.8.0.3

 * 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=’url’ url='{{SCHEME}}://{{HOST}}{{PATH}}?{{QUERY}}’]
 * Security fix (XSS vulnerability)

#### 1.8.0.2

 * Bug fixes (Uncaught TypeError)

#### 1.8.0.1

 * Bug fixes (conditional gutenberg blocks)

#### 1.8

 * Added GA4 reporting option, which can be activated per-shortcode by adding a 
   ga4=“yes“ attribute to the trigger’s shortcode.
 * 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.
 * Reworked the Gutenberg standalone condition widget for improved reliability and
   performance.
 * Added a new public JS event – „ifsoajaxcontentloaded“ – to help synchronize all
   the actions attached to various ajax content loading procedures.
 * Allowed triggers rendered by „recurrence“ and „testing mode“ to work with analytics,
   groups, and other hooks.
 * Allowed setting the_content filter on a trigger rendered via ajax (previously
   only without ajax) by setting the „the_content“ attribute in the shortcode.
 * UI improvements.
 * Bug fixes.

#### 1.7.1.1

 * Security update.

#### 1.7.1

 * New functionality – 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. [Learn more](https://www.if-so.com/help/documentation/redirect-users-based-on-conditions/).

#### 1.7

 * New functionality – Conversion can now be set to fire once every X seconds via
   the „do_once_per“ shortcode attribute. [Learn more](https://www.if-so.com/help/documentation/analytics/).
 * PHP 8.2 compatibility – Prevent the use of deprecated functionality.
 * „Find a Trigger“ tool functionality improvements.
 * Elementor compatibility improvements – Treat Elementor „preview“ pages like edit
   pages.
 * Reworked the built-in analytics conversion system.
 * Reworked the trigger hook/filter mechanism.
 * Redirect shortcode – Escape URL before placing it on the page; changed „once_per“
   attribute to „do_onceper“.
 * ifsoDKI shortcode in „ajax“ mode now works inside various pop-ups (If-So trigger
   events, Elementor, and others).
 * Conditional Gutenberg Blocks functionality – Fixed dependency bug occurring in
   the newest version of WordPress.
 * If-So triggers’ shortcodes inside If-So bulks content now use the appropriate
   context when loaded via Ajax and vice versa.
 * Gravity Forms compatibility fixes.
 * Various bug fixes.

#### 1.6.3.1

 * WordPress 6.4 compatibility fixes

#### 1.6.3

 * Add support to use the [HTML5 Geolocation API (browser location) option](https://wordpress.org/plugins/if-so-geolocation/),
   provided by the free Geolocation Extension. [Learn more](https://www.if-so.com/the-html-geolocation-api/?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=html5_api)
 * [ifso-add-cookie] Shortcode: Added ‘increment’ attribute. Setting it to ‘yes’
   will make the cookie value a number that increments each time the shortcode is
   encountered. [Learn more](https://www.if-so.com/help/documentation/the-cookie-condition/).
 * Cookie Condition: Added „Numeric is more than“ / „Numeric is less than“ options.
 * Redirect Shortcode: Added the ability to redirect once per a specified period
   of time. [Learn more](https://www.if-so.com/help/documentation/redirect-users-based-on-conditions/).
 * „Find Shortcode“ / Scan Posts Tool: Functionality improvements, including the
   ability to scan for relevant if-so conversions.
 * Audiences and Geolocation Dashboard Pages: Enhancements.
 * Bug Fixes.

#### 1.6.2

 * State targeting now utilizes the Google Maps API for state selection.
 * Compatibility with new functions of the If-So Geolocation extension has been 
   enhanced.
 * Added the option to „block bots“ (can be activated in the settings) (learn more).
 * 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 „ifso_block_bots_extra_blocked_user_agents“(
   User-agent will be blocked if its text contains the value)
 * Flag DKI Shortcode: Added a „classname“ attribute, allowing users to add classes
   to the rendered element.
    Ex. [ifsoDKI type=’geo’ show=’flag’ width=’50px’ classname
   =’class-you-choose’]
 * Location override improvements: Added the option to display flags near the country
   labels in a selection form.
 * Location override improvements: Country DKI shortcode is now affected by the 
   override functionality.
 * Location override page caching compatibility: The form can now be loaded using
   Ajax.
 * Added the ability to whitelist users from the geolocation “Block bots” mode based
   on IP, cookie, or by using the geo service in the same way blacklisting is done,
   but with the „ifso_geo_whitelist“ filter instead.
 * Allow blocking users from the geolocation service based on the results of custom
   functions (user role, login status).
 * UI improvements.
 * Bug fixes.

= 1.6.1.2=
 * Added the option to become a geolocation reseller – create sublicenses
for clients’ websites and take control of allocating monthly sessions to each sublicense
based on their needs. [Learn more.](https://www.if-so.com/add-ons-and-integrations/sub-geolocation-license/).*
Improved the user interface of the geolocation dashboard section. * Extended access
to the audiences page and audience creation/deletion to editors, authors, and other
custom roles with post creation permissions. * Bug fixes.

= 1.6.1.1=
 * Geolocation page – Various UI and style changes; added session usage
chart to info tab * Added new filter – „ifso_visit_count_expiration“ – letting the
user set the expiration of the „returning visitor“ cookie * Enabled if-so conversion
shortcodes to work when loaded via ajax * Bug fixes

= 1.6.1=
 * Compatiblity with the new [If-So Geolocation Extension](https://wordpress.org/plugins/if-so-geolocation/).*
Log geo requests functionality removed – 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 
[If-So Geolocation Extension](https://wordpress.org/plugins/if-so-geolocation/) 
and re-check the ‘Log Geolocation Request’ in the plugin’s settings to create a 
new log. * Conditional Gutenberg blocks – streamlined the process of targeting locations
for the Geolocation condition. * Added ability to display the audiences a user is
assigned to using the shortcode[ifso-audience type=’show’ show=’user-audiences’]*
Geolocation page UI changes. * UI changes – the geolocation license activation field
was moved to the license page.

= 1.6.0=
 * New system to sync [extensions and integrations](https://www.if-so.com/add-ons-and-integrations/).*
Compatiblity improvements with new version of the conditional countdown extension*[
ifso-show-post] shortcode – added type=’elementor’ to improve rendering of elementor
templates. * Geolocation condition – „Curacao“ was added to the list of countries*
UTM condition – added „term“ type to the conditional Gutenberg and Elementor conditions.*
Bug fixes

= 1.5.9=
 * Gutenberg and Elementor widgets – an autocomplete option was added to
the geolocation condition to ease the targeting of cities and states. * Post category
condition – UI changes * AB Testing condition – added the option to create split
testing with 5 versions. * Query-string DKI – added a hook to allow users to set
the expiration of the „persist“ cookie. * Settings – an option to apply shortcodes
to navigation menus was added. * Performance improvements * Bug fixes

= 1.5.8=
 * Compatibility with various cookie consent plugins and systems was added:
Cookiebot, Cookie Notice & Compliance for GDPR / CCPA(hu-compliance), Complianz.*[
ifso-show-post] shortcode – Improved the shortcode while using WPBakery and Divi
posts(templates). Adding the attributes type=“WPB“ or type=“divi“ to make sure the
post content loads correctly. * WP filters for content resulting from rendering 
triggers/widgets were added: apply_filters( ‘ifso_standalone_condition_content’,
string $content ), apply_filters(‘ifso_shortcode_content’,string $content, array
$atts). * [ifso-audience] shortcode – 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: [ifso-audience 
type=’add’ from=’query’ param=’myparam’] – will add the user to the group, whose
name is the value of the „myparam“ querystring parameter. default value for param
is „ifso_audience“. [ifso-audience type=’remove’ from=’query-condition’ param=’myparam’
param_value=’my-remove-parameter’ audience=’group1′] – will only remove the user
from group „group1“ if the „myparam“ query string value equals „my-remove-parameter“.*[
ifsoDKI] shortcode – added „before“ and „after“ attrs that allow injecting text 
around the content while dynamic content is displayed(not fallback). * [ifsoDKI]
shortcode – added „persist“ attr for query-string DKI – to show content when the
user browses other pages, even if the query string is not present anymore(during
tone session). * Edit Trigger page – UI improvements. * SEO plugins compatibility–
Allow using If-So shortcodes in the title and meta desc fields of YOAST and Rank
Math. * New feature – find (scan for) If-So shortcodes on posts and pages’ main 
content field * Added ability to exclude specific users from geolocation based on
cookie or their IP, using a new wp filter: apply_filters(‘ifso_exclude_from_geo’,
array $excluded) $excluded array format : [‘cookie’=>[‘exclude_from_geo’],’ip’=>[]]*
New condition – post category (works also on custom taxonomies and terms) * Elementor
trigger element – added „Load with ajax“ option * If-So content loaded via ajax –
improve compatibility with page builder content by making sure the js code within
it runs in the global scope * Bug fixes and performance improvements

= 1.5.7.2=
 * Dynamic Keyword Insertion – an option to load the shortcodes with 
Ajax was added (add the parameter ajax=“yes“ to the shortcode) * Trigger Events 
extension compatibility – support the option to load triggers above the header on
all pages (through the plugin’s settings) * Bug fixes

= 1.5.7.1=
 * Bug fixes – Elementor triggers widget not displaying content in some
cases

#### 1.5.7

 * Conditional Gutenberg blocks – added the option to target multiple locations/
   pages visited in a single condition
 * Conditional Elementor elements (integration)- added compatibility to support 
   the option to target multiple locations/pages visited in a single condition
 * Added the option to log geolocation requests for debugging
 * New Ajax loader animation – show the default content until the dynamic version
   loads using Ajax
 * 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
 * Added ability to load if-so shortcodes with „name“ parameter instead of „id“(
   uses trigger title) – THE OPTION HEARTS LOADING TIMES – USE THE TRIGGER ID UNLESS
   YOU HAVE A REASON NOT TO
 * New DKI shortcode option, to display the user’s IP : [ifsoDKI type=’ip’]
 * UI improvements
 * Geolocation service now supports IPV6 addresses
 * Added filter to allow users to set alternative IP detection – „ifso_user_ip“
 * Bug fixes

#### 1.5.6.2

 * Bug fixes

#### 1.5.6.1

 * Updated jquery-ui version in admin ui to 1.13.1
 * Fix geolocation caching in triggers loaded via ajax
 * Added option to cache the geolocation data in cookies(as opposed to sessions)
 * Bug fixes

#### 1.5.6

 * New condition – Session Variable: create conditional content based on a session
   variable. The option was added to the cookie condition.
 * Compatibility with our [Conditional Elementor Elements integration](https://www.if-so.com/elementor-personalization/)
 * Ajax loading – an option to load conditional Gutenberg Blocks using Ajax
 * Ajax loading – an option to load conditional Elementor elements using Ajax
 * 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 [Learn more</>](https://www.if-so.com/help/documentation/redirect-users-based-on-conditions/)
 * Bugfix: Use WordPress timezone for determining current day in schedule condition(
   problems occurred on specific scenarios)
 * Visit count is now performed only through an ajax request
 * Improved IP detection for geolocation functionality
 * Gutenberg standalone condition widget – changed the „If-So Active“ indicator 
   to be a colored border, to avoid breaking the appearance of some blocks in the
   editor
 * Security improvements
 * Bug fixes

#### 1.5.5.1

 * Added shortcode that sets/deletes a cookie value [Learn more.](https://www.if-so.com/add-and-remove-cookies-using-shortcodes/)
 * Cloudflare Compatibility – The geolocation condition works with Cloudflare without
   having to use our Cloudflare integration
 * Divi modules compatibility improvements while loading content with Ajax
 * Page Caching Compatibility improvements – the referrer source condition is compatible
   with the Page Caching Compatibility (ajax) option
 * Gutenberg standalone conditions – fix conflict with jetpack contact form
 * Gutenberg standalone conditions – fix bug where the block inserter wasn’t appearing
   when hovering between blocks
 * Bugfix – Removed calls to dysfunctional updater – fixed bug which caused an „
   update available“ message to be shown
 * Bugfix – Audiences – fixed the handling of names with „special characters“

#### 1.5.5

 * The recurrence option was added to the user role condition
 * 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)
 * Audience self-selection shortcode generator was added the audience page
 * added the ability to defer the loading of if-so triggers via ajax (by adding 
   the parameter defer=“true“ to the trigger’s shortcode)
 * Added new option to disable the number of visit count cookie to the settings
 * Bugsfix – import triggers – fixed newlines being replaced with „rn“
 * bugsfix – TinyMCE ediotr was reverted to HTML mode while dragging a version
 * (1) Security fix (Ajax vulnerability)

=1.5.4.2 =
 * Bugfix – TinyMCE is no longer turning image URLs to be relative urls
when changing versions order * TinyMCE – An option to prevent text nodes from being
wrapped in

<

p> tags was added to the settings
 * Yoast SEO – Prevent if-so triggers (the „view
trigger“ pages) from being added to the sitemap * [Custom user profile extension](https://www.if-so.com/custom-user-profile-fields-dynamic-content/)–
a new option to assign a value using a query string * [CSV extension](https://www.if-so.com/dynamic-content-from-csv/)–
New conditions – Cookie ; geolocation ; IP * WordPress 5.8 compatiblity

user details trigger – fix admin display bug

#### 1.5.4.1

 * New condition – Referral Category: Display dynamic content based on the referral
   page/post category (page or post on your site).
 * New condition – Trigger visited: Show dynamic content if a specific trigger was
   previously displayed to the user.
 * Ajax loading: an option to show a loader animation while the content is being
   loaded in Ajax mode (Page Caching Compatibility mode) .
 * The Geolocation Condition: An option to target a city manually (without autocomplete)–
   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)
 * The Schedule Condition – More flexibility setting the times. You can now change
   the time intervals through the plugin’s settings.
 * The Page URL Condition – An option to ignore case was added.
 * The User Role Condition – The option to set the recurrence option was added to
   the condition.
 * New DKI shortcode – „Auto-Local Time Display“:- Show an event time calculated
   according to the visitor’s time zone.
 * Audiences – You can now add or remove users from an audience using a shortcode.
 * Bugfix – HTML mode was turning to visual mode while dragging a version.
 * Performance – 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).
 * Extensions and integrations -The new version supports some of our [latest extensions and integrations.](https://www.if-so.com/add-ons-and-integrations/)
   *
   Various bug fixes and performance improvements

#### 1.5.3.2

 * Hotfix- security vulnerability fixes

#### 1.5.3.1

 * WordPress 5.6 compatibility fixes

#### 1.5.2.4

 * WordPress 5.6 compatibility fixes

#### 1.5.2.2

 * Hot fix – Elementor compatibility – fail to load the Edit With Elementor screen
   using WordPress 5.6

#### 1.5.2.1

 * Bug fix – loading speed

#### 1.5.2

 * Display post content using a shortcode – create content using your page builder
   as a post. Use the shortcode [ifso-show-post id=“###“ show=“content/title“] inside
   an If-So version to display the post content.
 * Content editor – Allowing inline JavaScript and SVG usage inside the trigger’s
   wysiwyg editor
 * Bugfix – adding conditions to 3rd-party Gutenberg blocks

#### 1.5.1

 * Gutenberg – option to set conditions directly in a block
 * Preventing no-cache headers from being sent as a result of If-So using PHP sessions
 * Shortcodes are now rendered when entered in YOAST and SEO Pack title meta filed.
 * New routine for detecting a user’s IP
 * Added WPDB prefix to the beginning of names in the tables used by If-So
 * Bugfix – The option to prevent Ajax calls was fixed.

#### 1.5.0.1

 * Ajax loading (page caching compatibility) – Load triggers after ther page loads
   from the cache.
 * DKI – A new option to set the default content in the User name DKI shortcode.
 * Bugfix – Subscribers data is now collected by Built-in analytics.
 * Groups – The name was changed to „Audiences“
 * New DKI – name of the day.
 * Bugfix – The option to prevent Ajax calls was fixed.

#### 1.4.9.1

 * Bug fix – Geolocation – targeting city-states (Singapore, Monaco, etc.)
 * Bug fix – CSS and JS conflicts with 3rd party plugins.

#### 1.4.9

 * New Elementor Widget
 * Geolocation DKI – An option to set a fallback was added
 * Bugs fix (visual editor issues)

#### 1.4.8

 * New DKI shortcode – display a value of a query string paremeter
 * Improved the help box and help notifications
 * Bugs fix (visual editor issues)

#### 1.4.7

 * Geolocation dashboard improvements
 * Change the Time and date conditions to rely on local time.
 * Stop including admin views in the built-in analytics
 * Load time improvements
 * RTL fixes
 * Bugs fix (remove groups data on uninstall; Google places javascript issue;)

#### 1.4.6.1

 * WordPress 5.4 compatibility fixes (Gutenberg design)
 * Bugs fix (Conflict with SafeGard)

#### 1.4.6

 * New feature: Create groups; Add users to a group when the condition is met; Display
   group-based content.
 * New condition – user role. Add or replace content according to the user’s role(
   Administrator, Editor, Subscriber, or any other role you have on your website)
 * New feature – User’s Select – Let the users select the content they’ll see. Add
   a select box or radio buttons with categories and show category-based content
 * Bugs fix

#### 1.4.5

 * If used in the page title, If-So’s shortcodes are now also rendered in the meta
   title of the page.
 * Allowing Editors to create and edit triggers
 * Gutenberg block – an indication showing if a trigger was deleted was added
 * Geolocation – The user’s location will be checked again if the user’s IP has 
   been changed – even if the session hasn’t been ended.
 * Bugs fix

#### 1.4.4

 * Gutenberg block
 * New condition: Content by cookie name and cookie value
 * Performance improvements.
 * Bugfixs.
 * Security updates.

#### 1.4.3

 * Built-in analytics was added – see how many time each version was displayed what
   effect does it have on the conversion rate.
 * UI improvements.
 * Security updates.
 * Bug fixes.

#### 1.4.2

 * An option to import and export triggers was added.
 * A new button that allows editing and embedding triggers was added to the content
   editor.
 * Import and export triggers.
 * Security updates.
 * Refactored + Bug fixes.

#### 1.4.1

 * New condition – Cookie Detection: – Show dynamic content based on existing cookies
   on the user’s browser.
 * The License Key is now hidden
 * An option to allow shortcodes in the titles was add to the settings
 * Duplicate triggers option was added to the `All the triggers page`
 * An option to disable the `pages visited` cookie was added to the settings
 * A new option to overrdie recurrence was added to conditions with recurrence
 * Dynamic keyword Insertion is now an integral part of the plugin
 * Refactored + Bug fixes.

#### 1.4.0

 * New condition – Cookie Detection: Add or replace content according to UTM parameters
 * New condition – IP Detection: – Show dynamic content based on user IP.
 * Refactored + Bug fixes.

#### 1.3.3

 * Improved user experience at the advertising platforms condition (Google Ads, 
   Facebook Ads and dynamic link)
 * Right to left support
 * A Russian translation was added
 * Refactored + Bugs fix

#### 1.3.2

 * Drag versions to change their order
 * Settings – An option to prevent WordPress from wrapping If-So shortcodes with

<

p> tags was added.
 * Settings – An option to choose not to remove If-So’s data 
when the plugin is deleted was added. * Settings – An option to set The duration
used by the ‘pages visited’ condition to track users’ visits was added. * Number
of versions – There is now no limit to the number of versions that can be created.*
A/B testing – An option to set a control group (will be displayed 100% of the reminder
sessions) was added * Refactored + Bugs fix

#### 1.3.1

 * New condition – Pages visited: Show dynamic content to visitors who have been
   visited a chosen page (or pages) on your website
 * Refactored + Bugs fix

#### 1.3.0

 * New condition – Page URL: Show dynamic content if the page URL is or consists
   a certain text string
 * Refactored + Bugs fix

#### 1.2.9

 * Thrive architect compatibility
 * New geolocation options: target visitors by continent, state, and time zone.
 * New feature for the browser language condition – choose to display custom content
   only when the user’s language is set as the primary language (The option to target
   users when a language is not set as default is still available).
 * Reach snippets compatibility

PLEASE NOTE – 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.

#### 1.2.8

 * Recurrence – New options were added
 * Geolocation – New settings screen shows utilization details
 * Browser language – Dynamic version will be presented even if the user’s browser
   language is not set as the main language in his browser settings.
 * Refactored + Fixed bugs

#### 1.2.7

 * Recurrence (New feature) – 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.

#### 1.2.6

 * New condition – Geolocation: Add or replace content according to the user’s location–
   country or city

#### 1.2.5

 * 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).
 * The free conditions are: Logged-in users, device type, and referrer source.

#### 1.1.6

 * New conditions were added: Start & end date.
 * New conditions were added: Scheduling Content.
 * Pause mode – Users can now temporarily pause a version of the content.

#### 1.1.4

 * New condition added- Browser language
 * Testing mode – Force displaying of a chosen version of content.

#### 1.1.3

 * New condition added- New / Returning visitors

## Tækni

 *  Version **1.9.7**
 *  Last updated **1 mánuður síðan**
 *  Active installations **8.000+**
 *  WordPress version ** 4.0.1 or higher **
 *  Tested up to **6.9.4**
 *  Languages
 * [English (US)](https://wordpress.org/plugins/if-so/), [Portuguese (Brazil)](https://br.wordpress.org/plugins/if-so/)
   og [Russian](https://ru.wordpress.org/plugins/if-so/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/if-so)
 * Tags
 * [conditional](https://is.wordpress.org/plugins/tags/conditional/)[dynamic content](https://is.wordpress.org/plugins/tags/dynamic-content/)
   [location](https://is.wordpress.org/plugins/tags/location/)[personalization](https://is.wordpress.org/plugins/tags/personalization/)
 *  [Advanced View](https://is.wordpress.org/plugins/if-so/advanced/)

## Einkunnir

 4.7 out of 5 stars.

 *  [  84 5-star reviews     ](https://wordpress.org/support/plugin/if-so/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/if-so/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/if-so/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/if-so/reviews/?filter=2)
 *  [  6 1-star reviews     ](https://wordpress.org/support/plugin/if-so/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/if-so/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/if-so/reviews/)

## Höfundar

 *   [ If-So Dynamic Content ](https://profiles.wordpress.org/ifso/)

## Aðstoð

Eitthvað sem þú vilt segja? Þarftu hjálp?

 [Skoða hjálparspjallborð](https://wordpress.org/support/plugin/if-so/)

## Styrkja

Viltu styrkja áframhaldandi þróun á þessari viðbót?

 [ Styrkja þessa viðbót ](https://www.if-so.com/?utm_source=WordPress&utm_medium=Readme&utm_campaign=Donate%20link)