If-So Dynamic Content


Personalize any content! Add or replace content according to the visitor’s profile or interaction with the site. Works on pages, posts, menus, and widgets.

No coding required!
Select a condition >> Set a version of content to be displayed if it is met.

– See how it works

  • Watch a short video (1:36):

What is If-So? (Summary)

An easy way to improve conversions, engagement, sales, and bounce rates.

If-SO allows you to add or replace content on your website based on the visitors’ profile or interaction with the site. Using dynamic, personalized content your visitors will engage,
convert and buy more!


Add or replace content according to one or more of the following conditions:

  • User location (Geolocation) – Country, state, city, or continent
  • Timezone
  • User’s device type
  • Start & end date
  • Schedule – specific days and hours (pro)
  • Logged-in users
  • User IP
  • Referral source (pro)
  • User’s browser language (pro)
  • Custom URL / Query-string (pro)
  • Google Ads (pro)
  • Facebook Ads (pro)
  • First-time visitors (pro)
  • Returning visitors / Number of visits (pro)
  • Pages visited by the user (pro)
  • Page URL (pro)
  • UTM parameters (pro)
  • browser type & Operating system
  • Number of version views
  • WooCommerce – products in the shopping cart (extension)
  • WooCommerce – products purchased (extension)
  • WooCommerce – Customers details (extension)
  • WooCommerce Memberships plans (extension)
  • WooCommerce subscriptions plans (extension)
  • WP Job Manager – lisiting packege (extension)
  • WishList Member – membership level (extension)
  • Dynamic content from CSV (extension)

– Learn more about the conditions


Creating a dynamic trigger with If-So is very simple:
1. Select a condition
2. Set the content you want to display if the condition is met.
3. Set the content to be displayed if the condition is not met (optional).
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.


  • built-in analytics
  • Page caching compatibility
  • User selection – let the visitor select the content
  • Works with any theme and content editor
  • Replace titles, text, images, menu items, and even CSS files.
  • Simple to use
  • No coding skills required
  • Optional – display content only when multiple conditions are met simultaneously
  • Works on pages, posts, and widgets
  • Use as shortcodes generator
  • Recurrence (Show the same version when the visitor returns to the site)


Get clear insights into your content performance! See real-time results with a built-in analytics system.

No complicated setup is required – Data collection begins automatically when the dynamic content is created.


Set a condition for each Gutenberg block. The block will only be displayed if the condition is met.


The Geolocation condition lets you tailor your website content according to the visitor’s physical location: country, city, state, continent or timezone.


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

Immidiate improve in your website conversion rate! Download If-So now to see how it works on your website.


  • Create dynamic content in minutes
  • Schedule content changes between a range of dates
  • Set start and end date for selected content
  • Load different content on desktops, tablets, or mobiles
  • Display unique content to new visitors
  • Replace calls to action according to the number of visits a user visited in the site
  • Customize the content to visitors referred from a chosen domain or webpage
  • Attract attention and drive visitors into action with a message in their language
  • Generate a special link and show specific content only to visitors who arrive through it
  • Show tailored content to users arriving from specific Facebook or Adwords campaigns
  • Display different content to logged-in users
  • Select a condition > Set the content > Paste the shortcode


Este plugin proporciona 1 bloque.

  • If-So Dynamic Content


  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»

Preguntas frecuentes

What is If>So Dynamic Content?

If-So Dynamic Content is a WP Plugin allowing site administrators to personalize their website content according to a predefined set of conditions (rules).

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.

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

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 working with. If for any reason it doesn’t work with your theme, we will work with you to resolve the issue.


22 de noviembre de 2021
I am loving this plugin! It has helped me make my website so much more efficient. I no longer need to create multiple pages to display different content. I can just create one page, and modify the content displayed by setting different triggers. It's fantastic - it is going to streamline my work so much! At this stage I am mostly using the dynamic link and referral options, but I am planning to explore other options as well. The support is also excellent. When I needed assistance, their response was quick and they were incredibly helpful! Thank you so much for your wonderful work!
3 de noviembre de 2021
Requires a pro purchase - only a 14 day trial 🙁
27 de octubre de 2021
Slick plugin for conditionals, especially with marketing tools and parameters. Support is top notch, had a significant account issue and the responsive support team took very good care of me during the process.
27 de octubre de 2021
It doesn't happen often to find a plugin so flexible and comprehensive as IF-SO. For any need we found the right add-on and solution. But the best part is the support: Josef and team are excellent in providing solutions, or implementing features when needed. Fantastic plugin, highly recommended!
Leer todas las 48 reseñas

Colaboradores y desarrolladores

«If-So Dynamic Content» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


«If-So Dynamic Content» ha sido traducido a 1 idioma local. Gracias a los traductores por sus contribuciones.

Traduce «If-So Dynamic Content» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

  • Added shortcode that sets/deletes a cookie value Learn more.
  • 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»


  • 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
  • Security fix (Ajax vulnerability)

= =
* 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 – a new option to assign a value using a query string
* CSV extension – New conditions – Cookie ; geolocation ; IP
* WordPress 5.8 compatiblity

user details trigger – fix admin display bug

  • 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.
    *Various bug fixes and performance improvements

  • Hotfix- security vulnerability fixes

  • WordPress 5.6 compatibility fixes

  • WordPress 5.6 compatibility fixes

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

  • Bug fix – loading speed


  • 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


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

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

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


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


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


  • 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;)

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


  • 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


  • 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


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


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


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


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


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


  • 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


  • 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


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


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


  • 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



  • 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


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


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


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


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


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


  • New condition added- New / Returning visitors