Appearance
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.
| Tag | Returns |
|---|---|
@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.
| Tag | Returns |
|---|---|
@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.
| Rule | Shows the element when |
|---|---|
| Viewer has a membership | The viewer holds any plan |
| Viewer has room to post | The viewer can add one more of the chosen post type right now |
| Author has a membership | The post's author holds any plan |
| Post is featured by its plan | The post has the Featured perk |
| Post is verified by its plan | The 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.
| Notification | When it sends |
|---|---|
| Plan started | A member starts a plan, buys one again after it ended, or is granted one. Paused posts come back first. |
| Plan renewed | A subscription renews. Off by default, since FluentCart sends its own receipt. |
| Payment failed | A renewal payment fails. The member keeps the plan while FluentCart retries. |
| Plan canceled | A member cancels. They keep the plan until the period they paid for ends. |
| Plan ending soon | Three days before a canceled plan, or a granted plan with an end date, runs out. |
| Plan ended | A plan runs out. Says how many posts moved to another plan and how many were paused. |
| Plan switched | A member moves to another plan through FluentCart Pro. Sent instead of "Plan started" and "Plan ended." |
| Paused posts restored | An admin brings a member's paused posts back from the Members tab. |
| Post expired | A post reaches the end of the days its plan gives it and moves to Expired. |
| Allowance used up | A 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).

