Skip to main content

[benecaster_member_thanks]

Plugin Since v1.0.0

Displays a list of members to thank on-air. Place it on an episode page or in show notes — it runs a live query each time the page loads and returns a formatted list of subscriber names based on the query type you choose.

Episode Credits add-on: When this shortcode is embedded in an episode’s credits block, the Episode Credits add-on stamps the output at publish time. The query runs once at publish, and the result is baked into the episode record — subsequent page loads serve the stamped list without re-querying. To re-query (e.g. after a new subscriber joins), republish the episode.

Four built-in query types are available:

  • new_since_last_episode — subscribers who joined since the last published episode.
    Deterministic: the same names appear on every page load until a new episode is published.
  • random — a purely random draw from active subscribers on every render. No cycling,
    no history — the same subscriber can appear on consecutive renders. Use when random-with-repeats is the intent; if you want random-without-repeats-until-pool-resets, use random_cycling instead.
  • random_cycling — draws randomly from active subscribers and rotates through the full list
    before any subscriber repeats. Requires the Podcast Workflow add-on to track the cycling pool; without the add-on, falls back to the same behavior as random (a pure random draw each render).
  • milestone — subscribers whose 3-month, 6-month, or 1-year anniversary falls since
    the last episode.

Additional query types can be registered via the benecaster_member_thanks_query_types filter. Output is filterable via benecaster_member_thanks_output.

What name is displayed

The shortcode resolves each subscriber’s display name through a three-step priority chain (implemented in benecaster_resolve_wall_display_name()):

  1. Wall display name (_benecaster_wall_display_name) — the name the subscriber set
    on the Benecaster account page. This is the primary lever subscribers use to control how their name appears publicly. If set, it always wins.
  2. WordPress first and last name (first_name + last_name user meta) — used when
    both fields are non-empty and no wall display name is set. Subscribers update their name from the Benecaster account dashboard; podcasters can also update subscriber profile fields from the plugin admin. No WordPress admin access is required.
  3. WordPress display name (wp_users.display_name) — last-resort fallback only. Set
    at account creation; the exact format depends on how your membership plugin registers users.

With the Podcast Workflow add-on, the episode_id attribute locks the list to the accepted members for that episode rather than running a live query. Without the add-on, episode_id is ignored and a live query runs as normal.

Parameters

Name Type Default Required Description
show_id int current show No ID of the show to query members for. Defaults to the current show context.
query_type string random_cycling No Query strategy key. Built-in options: new_since_last_episode, random, random_cycling, milestone. Use random for random-with-repeats; random_cycling for random-without-repeats-until-pool-resets (requires Podcast Workflow add-on, falls back to random without it). Additional types via benecaster_member_thanks_query_types filter.
count int 5 No Number of members to return. Pass 0 for all results the query produces.
tier string No Filter results to a specific tier slug. Leave empty to include all tiers.
format string list No Output format. Options: - `list` — unordered HTML list (``) of display names - `prose` — comma-separated with natural grammar: "John, Sarah, and Mike" - `names` — plain comma-separated with no grammar: "John, Sarah, Mike"
episode_id int No Podcast Workflow add-on only. When provided, outputs the accepted member list for this episode instead of running a live query. Silently ignored without the add-on.

Example

<!-- Newest members since last episode, prose format for show notes page -->
[benecaster_member_thanks show_id="1" query_type="new_since_last_episode" format="prose"]

<!-- Random cycling pool, 10 names, list format -->
[benecaster_member_thanks show_id="1" count="10" format="list"]

<!-- Founding tier members only -->
[benecaster_member_thanks show_id="1" query_type="random_cycling" tier="founding" count="5"]

<!-- Accepted list for a specific episode (Podcast Workflow add-on required) -->
[benecaster_member_thanks show_id="1" episode_id="456"]