Skip to content

Tags, rules, and emails ​

@membership(...) — the viewer's membership ​

Reads the signed-in viewer. Every tag here is also in the VX picker, under a Membership folder.

TagReturns
@membership(has_plan)1 if they hold any plan, 0 if not
@membership(plans)Their plans' names, comma-separated: Agent, Featured Add-on
@membership(plan_keys)The same as keys, for comparisons: agent,featured_addon
@membership(status)One word: active, canceled, payment_trouble, or none
@membership(renews_on)The soonest renewal or end date, MM/DD/YYYY
@membership(paused_count)How many of their posts are paused because a plan ended
@membership(manage_url)FluentCart's customer portal, where they manage billing
@membership(allowance.property.text)3 of 5, or Unlimited
@membership(allowance.property.used)3
@membership(allowance.property.limit)5; -1 for unlimited
@membership(allowance.property.remaining)2; -1 for unlimited

Swap property for the post type's key. The picker lists the allowance tags for every post type a plan covers.

status picks the most urgent: payment trouble on any plan outranks a cancellation, which outranks plain active.

@post_plan(...) — a post's plan ​

Reads the post in context: the current post, or the post in a loop.

TagReturns
@post_plan(plan)The name of the plan the post counts against
@post_plan(featured)1 or 0
@post_plan(verified)1 or 0
@post_plan(priority)0 to 100
@post_plan(listed_on)When the post was first listed, MM/DD/YYYY
@post_plan(expires_on)When it expires, MM/DD/YYYY; empty if it never does
@post_plan(status)The status in words: Live, Waiting for review, Draft, Scheduled, Private, Paused: plan ended, Expired

@post_plan(status) is the one for a member's dashboard. VX's own @post(status) gives the raw slug, which reads as vxm_paused to a member.

Visibility rules ​

Five rules join VX's rule engine, so they work wherever VX visibility rules do — including on Elementor elements through the Elementor module.

RuleShows the element when
Viewer has a membershipThe viewer holds any plan
Viewer has room to postThe viewer can add one more of the chosen post type right now
Author has a membershipThe post's author holds any plan
Post is featured by its planThe post has the Featured perk
Post is verified by its planThe post has the Verified perk

Viewer has room to post is the one to put on an "Add a listing" button, so someone at their limit is not offered a form that will refuse them.

VX's rule screen has no plan picker, so "viewer is on plan X" is a dynamic-tag comparison: @membership(plan_keys) contains agent_pro.

Notifications ​

Ten membership notifications join VX Modules → Notifications, in a Memberships group. Each can go to the admin, the member, or both, and each is switched on or off on its own.

NotificationWhen it sends
Plan startedA member starts a plan, buys one again after it ended, or is granted one. Paused posts come back first.
Plan renewedA subscription renews. Off by default, since FluentCart sends its own receipt.
Payment failedA renewal payment fails. The member keeps the plan while FluentCart retries.
Plan canceledA member cancels. They keep the plan until the period they paid for ends.
Plan ending soonThree days before a canceled plan, or a granted plan with an end date, runs out.
Plan endedA plan runs out. Says how many posts moved to another plan and how many were paused.
Plan switchedA member moves to another plan through FluentCart Pro. Sent instead of "Plan started" and "Plan ended."
Paused posts restoredAn admin brings a member's paused posts back from the Members tab.
Post expiredA post reaches the end of the days its plan gives it and moves to Expired.
Allowance used upA member tries to post past their allowance. Off by default — they already see why on screen — but useful as a nudge to upgrade.

Besides VX's own tags, each message can use the plan's name, the date it ends or renews, and the link to manage the subscription, plus the counts that event knows (posts restored, paused, or moved).

Built by Code Wattz.