Skip to content

Choosing Which Member a Widget Shows

By default every member-facing widget shows the logged-in visitor their own data — their balance, their history, their level, their badges. Build a "My Points" page out of them and it works per-member with nothing to configure.

WidgetShows by default
Points Balancethe viewer's balance
Points Historythe viewer's ledger
Member Levelthe viewer's level and progress
Member Badgesthe viewer's badges
Rewards Storethe viewer's balance and what they can afford
Leaderboard Privacythe viewer's own setting
How to Earnyour enabled rules — the same for everyone, by design
Leaderboardeveryone, with the viewer's own row optionally pinned

Logged-out visitors see nothing at all — the Rewards Store shows its configurable login message instead — so you do not need to wrap any of this in a "user is logged in" condition.

Pointing a widget at someone else

Points Balance, Points History, Member Level and Member Badges each have a Member field. Leave it empty for the logged-in visitor, or set it to show a specific member:

  • a plain user ID, or
  • a dynamic tag — the field takes Voxel's tag picker like any other text control.

The one you will use most is on a member profile template:

@tags()@author(id)

…which means "the member whose profile this is". Without it, a Member Badges widget on Kaz's profile shows each visitor their own badges, which is rarely what a profile page is for.

If the tag resolves to nothing, the widget shows nothing

It deliberately does not fall back to the visitor. Falling back would put the wrong member's data on the page while looking perfectly fine — the exact problem the field exists to prevent.

Two widgets deliberately have no Member field: Leaderboard Privacy (a member's own setting) and Rewards Store (it leads to spending your own balance). Pointing either at someone else would be incoherent.

A note on privacy

Putting @tags()@author(id) on Points History or Points Balance publishes that member's balance, or their whole ledger, to anyone who can see the page. That is a perfectly reasonable thing to want — plenty of directories show "1,240 points earned" on a profile — but it is a decision to make on purpose. Level and badges are the safer pair for a public profile.

Weaving values into your own text

For a sentence rather than a widget, use dynamic tags directly. Every tag comes in two forms:

TagWhose
@user(vxp_level)the logged-in viewer — "my level"
@author(vxp_level)the post's author — "this profile's level"
@author(display_name) has earned @author(vxp_earned_total) points
and is currently @author(vxp_level).

Showing something only to certain members

Voxel's own Visibility tab appears on every Voxel Points widget, so you can gate any element without a plugin setting:

  • User role is — one Rewards Store for customers, another for businesses
  • User plan is — gate by membership plan
  • Dynamic tag — compare any tag, including ours

That last one is worth knowing about: because our values are dynamic tags, you can show or hide any element on the site based on a member's points standing — "show this offer only to members with 1,000 or more points", or "show this section only to Veterans" — with no code and no extra setting.

Built by Code Wattz.