Skip to content

Tag Visibility

Keap applications easily grow to tens of thousands of tags. Since iMember360 renders the full tag catalog in every tag select box – content protection, membership levels, WooCommerce product tags, page-builder conditions, widgets – those dropdowns become slow to render and practically impossible to search.

The Tag Visibility module solves this by scanning your site for the tags iMember360 actually uses or assigns, and reducing every tag picker to exactly that set. Tags that no part of your configuration references simply disappear from the dropdowns.

The module only changes what is offered in the admin interface. Tags already stored in your configuration keep working exactly as before, and runtime access control is not affected in any way.

The module lives on the iMember360 modules settings screen:

WordPress Admin → iMember360 → Modules → Tag Visibility

It is disabled by default – on a small Keap application there is nothing to gain from it.

Available since version 5.5.5

Turns the filtering on. When disabled, the complete tag catalog is shown everywhere, exactly as in previous versions.

Recommended for Keap applications with very many tags.

Optional, and only visible once the module is enabled.

In addition to the regular scan, this also searches your page and post content plus page-builder data for tag references that are stored inside content rather than in dedicated fields:

  • [i4w_sc_actionset tagid="…"] shortcodes
  • Gutenberg and Thrive Architect block attributes (mbr_pos_tags, mbr_neg_tags, i4w_tags)
  • Bricks, Cornerstone, Oxygen and Popup Maker display conditions

This scan is considerably heavier than the regular one, so it is disabled by default. Enable it if you gate content with page-builder conditions and notice tags missing from those pickers.

Comma-separated Keap tag IDs that should always be included, regardless of what the scan finds.

Use this for tags the scan cannot know about – for example tags that are applied only by a Keap campaign, or tags you are about to use in a configuration you have not saved yet.

Changing this field rebuilds the cache automatically.

Comma-separated Keap tag category IDs. Every tag in these categories is always included.

This is the robust, future-proof option: it keeps entire families of dynamically created tags visible – for example the WooCommerce SKU, Product-Tag, Category, Coupon and Order-Status categories – including tags created in the past and tags whose source product or coupon no longer exists.

Because Keap category names are not stored locally, the settings page renders a tag category reference below the preview, listing each category ID with its tag count and a few sample tag names so you can identify the right IDs at a glance.

Once enabled, the settings page shows how many tags are currently in the include set together with the full list of their names and IDs. Use it to sanity-check the result before relying on it.

Next to the count sits a Rebuild cache button that recomputes the set immediately.

The scan collects tag IDs from every place iMember360 stores them:

AreaSource
Content protectiontag_list and group_access on posts and pages
Action setsactionset_list tag tokens
MembershipsConfigured membership levels, the site-ban tag, and all membership tags including their PAYF / CANC / SUSP siblings and dynamically created PayFlow tags
ModulesRole / Tags Mapping, Conditionals
WidgetsWidget Control include/exclude tags, Lead Capture and Upsell widgets
WooCommerceProduct, variation and coupon tag settings, alternate-price tags, global integration settings, plus tags created by name (SKU, product tag, product category, coupon code, order-status child tags)
IntegrationsGamiPress, LearnDash, BuddyPress group access and registration tags
Customer PortalGeneral and per-product add/remove tags
ManualThe two settings fields described above
Deep scan (optional)Post content and page-builder meta

The include set is cached for 24 hours, so the scan does not run on every page load.

The cache carries a signature built from the manual tag IDs, the tag category IDs and the deep-scan setting. Changing any of them invalidates the cache automatically. The cache is also flushed whenever the module settings are saved, and on demand via the Rebuild cache button.

If you change your site configuration in a way the module cannot observe – adding a tag to a page builder condition, for example – rebuild the cache to pick it up immediately, or simply wait for the 24-hour refresh.

The module is deliberately fail-open. If it is disabled, or the scan produces an empty result, the complete tag catalog is passed through unchanged. It can never hide all of your tags by accident.

If a tag used somewhere in your configuration is not discovered, the only consequence is cosmetic: that picker shows the stored ID without its name. Access control, tag assignment and every other runtime behaviour read the stored values directly and are unaffected.

The module hooks the mbr/tags/visible filter, which iMember360 applies to the global tag catalog $I4WSITE['allGROUPS'] (a TagId => GroupName map). Any code that renders a tag picker should read that global rather than querying tags directly – it has already passed through the filter, so the restriction is inherited for free.

You can extend the include set from your own code with the same filter:

add_filter( 'mbr/tags/visible', function ( $groups ) {
// $groups is a [ TagId => GroupName ] map, already reduced by Tag Visibility.
return $groups;
}, 20 );