[benecaster_member_since]
Outputs a subscriber’s membership tenure label or date for standalone placement in emails, page content, and theme templates. Complements the tenure chip Benecaster appends automatically to supporter wall cards — use this shortcode when you want the tenure information in a custom position without the full badge chip markup.
Returns an empty string — no output, no wrapper — in any of three cases: tenure badges are switched off for the site, no user resolves (the user_id attribute is absent and nobody is logged in), or the resolved user has no token to measure tenure from.
Tenure badges are off by default, so this shortcode renders nothing on a fresh install until they are switched on. If the shortcode appears to do nothing, check that first.
Show resolution on multi-show installs: when show_id is omitted, the shortcode falls back to the earliest-token-across-all-shows snapshot (the same calculation used on the subscriber account page). Specify show_id to anchor tenure to a particular show.
A follower reads “Following since June 2024” — they follow the show, they are not a member of it. This applies only to the long format, and only when a show is in context (an explicit show_id, or the sole show on a single-show install): in per-user mode (no show in context) the snapshot comes from whichever token is oldest, and one person can follow one show and pay for another, so that mode keeps “Member since”. short, raw, and custom formats are unchanged.
Parameters
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
user_id |
int |
(current user)
|
No | WordPress user ID. Defaults to the currently logged-in user. Renders nothing if no user resolves. |
show_id |
int |
— | No | Show ID to anchor the tenure calculation to. Optional on single-show installs — the sole show is used. When omitted on multi-show installs, falls back to the earliest-token-across-all-shows snapshot. |
format |
string |
long
|
No | Output format. Options: long (e.g. 'Member since June 2024', formatted via date_i18n()), short (the milestone label, e.g. '1-Year Member'), raw (ISO 8601 date string, e.g. '2024-06-01'), or any other PHP date format string (e.g. d/m/Y), passed to date_i18n(). long/short/raw are case-insensitive; a custom format string is not. An invalid or malformed custom format string renders literally through date_i18n() — there is no fallback to long. Literal text mixed into a custom format needs backslash-escaping (e.g. \M\e\m\b\e\r). See the WordPress Formatting Date and Time reference for the full character set. |
Example
<!-- Full date label — "Member since June 2024" -->
[benecaster_member_since]
<!-- Milestone label — "1-Year Member" -->
[benecaster_member_since format="short"]
<!-- Machine-readable ISO date -->
[benecaster_member_since format="raw"]
<!-- Custom PHP date format — "01/06/2024" -->
[benecaster_member_since format="d/m/Y"]
<!-- Specific user and show -->
[benecaster_member_since user_id="42" show_id="3" format="long"]