Advanced controls

Visibility Conditions

Show/hide any element by user, page, schedule, device, URL/cookie, browser preferences, on-page engagement, or a custom field — server-side rules skip rendering entirely, client-side rules evaluate via JS.

5 min read Updated July 16, 2026

Overview

Tiger Visibility Conditions lets you show or hide any Elementor element — widget, column, section, or container — based on rich, combinable rules. It lives under the element’s Advanced tab in a section called Tiger Visibility Conditions, and is powered by a standalone conditions engine shared across Tiger products.

You can target by user, page, content, schedule, request, device, and even other Tiger plugins (WooCommerce, Membership, LMS) — and combine everything with AND/OR logic. Rules that can be answered on the server never render hidden markup at all; rules that depend on the browser are evaluated client‑side with an anti‑flicker guard.

Enabling conditions

  1. Select any element and open the Advanced tab.
  2. Expand Tiger Visibility Conditions and turn on Enable Conditions.
  3. Choose your Logic and add one or more Condition Rules.

Logic

  • Show when ALL rules match — the element is hidden by default and appears only when the rules are satisfied.
  • Hide when ALL rules match — the element is visible by default and disappears when the rules are satisfied.

When Hidden

  • Remove (collapse layout) — the hidden element is removed and its layout space collapses. This is the default.
  • Keep space (invisible) — the element is rendered but made invisible, reserving its layout space.

Condition Rules (AND / OR)

Each row in the Condition Rules repeater is one condition. The Match selector controls how rows combine:

  • AND (same group) — the row must match together with the rows above it.
  • OR (new group) — the row starts a fresh group. The element matches when any group fully matches.

In other words: rules are ANDed within a group and ORed across groups. For example, three rows set to AND, OR, AND form two groups: (rule 1) OR (rule 2 AND rule 3).

Each condition type shows its own operator (is / is not, is any of / is none of, contains, greater than, is set, …) and value field.

Condition types

User

  • Login Status — logged in / logged out.
  • User Role — is any of / is none of the selected roles.
  • User Capability — a WordPress capability slug (e.g. edit_posts).
  • User Field (meta) — compare a user‑meta key against a value.

Page

  • Page Type — front page, blog home, single, page, archive, category, tag, author, date, search, 404.
  • Post Type — the current post type.
  • Body Has Class — a CSS class on <body> (evaluated live in the browser).
  • Element Exists (#id) — an element with the given id is present on the page.

Content

  • Taxonomy Term — the current post has one of the selected terms.
  • Post Author — the current post’s author.
  • Custom Field (post meta) — compare a post‑meta key against a value.
  • Page Template and Parent Page ID.

Site & Schedule

  • Site Option — compare a WordPress option.
  • Site Language — locale prefix (e.g. en, fr).
  • Date Range — show between two dates/times.
  • Time of Day — a 24‑hour window; if To is earlier than From the window wraps past midnight (e.g. 22:00–02:00).
  • Day of Week — any of Monday–Sunday.

Request & Device

  • Referrer — the HTTP referrer contains / does not contain a string.
  • URL Parameter and Cookie — present, or equal to a value.
  • URL Hash — the #fragment equals or contains a value (re‑evaluated live on hash change).
  • Device (desktop / tablet / mobile, using your Elementor breakpoints), Browser, and Operating System.

Events / Triggers

Event conditions reveal or conceal an element in response to an interaction. They start unmatched and become matched once the event fires, so pairing an event with Show when ALL rules match gives you “reveal on interaction”.

  • On Click (selector) / On Hover (selector) — watch any CSS selector, e.g. #open-offer or .cta-button.
  • Scroll To (selector) — fires when the target scrolls into view.
  • After Inactivity (sec) — fires after the visitor is idle for N seconds.
  • On Exit Intent — fires when the pointer leaves toward the top of the window.

WooCommerce, Membership & LMS

When the matching plugin is active, extra condition types appear automatically:

  • Woo Cart — cart is empty / not empty.
  • Woo Purchased Product — the current customer has bought one of the selected products.
  • Membership Plan — the user has an active plan (leave empty to match any active membership).
  • LMS Course Access — the user can access one of the selected courses.

Server‑side vs client‑side, and caching

Conditions that WordPress can answer on the server (user, role, page, schedule, content, provider rules) are resolved before the page is sent — hidden elements are never rendered, which saves bytes and avoids flicker. Conditions that depend on the browser (device, cookie, URL hash, body class, events) are evaluated after load; to prevent a flash, “Show” elements are rendered hidden until confirmed.

Full‑page caching: server‑side rules such as login status, role, and schedule are baked into the cached HTML. If you use these on a page served from a full‑page cache, either exclude that page from caching or rely on client‑side conditions for per‑visitor logic.

Simple rules (legacy)

Below the Condition Rules repeater is a set of “simple rules” carried over from earlier versions. They still work and are combined (AND) with the repeater, so existing pages keep behaving exactly as before. New rules are best built in the Condition Rules repeater, which is more flexible.

Frequently asked questions

Depends on the rule: user/role/schedule/referrer rules skip rendering server-side (nothing sent); device/URL/cookie/browser-preference rules render then hide via JavaScript, which can briefly flicker.

Yes — under the User group, pick User Roles (or specific User IDs, or a capability).

Yes — use After Scroll Past (%) under the Engagement group.

Yes — use Visit Number under Engagement.

Still stuck?

We’re here to help

Can’t find what you’re looking for, or hit something that looks like a bug? Reach the support team or ask the community.