Skip to main content

[benecaster_subscribe]

Plugin Since v1.0.0

Renders a subscription call-to-action with tier options. Pulls tier names and prices live from the active subscription bridge so they stay in sync automatically. Displays subscribe buttons linked to the bridge’s checkout flow.

Tiers are the access levels defined in Benecaster’s tier mapping (Settings → Subscription → Tier Mapping), where each membership plugin level is assigned a slug. Pass those slugs to the tiers attribute to control which tiers appear. Omit the attribute to show all mapped tiers automatically.

Style options:

  • cards (default) — a grid of cards, one per tier, each showing the tier name, price
    pulled from the bridge, and a subscribe button. Best for full-width landing pages and pricing sections.
  • list — a compact single-column list with tier name, price, and button on each row.
    Suited for sidebars or narrow contexts where a card grid would be too wide.
  • minimal — tier names and subscribe buttons only, no price or description. Use when
    price is already shown elsewhere on the page or when embedding inside a styled wrapper.

All rendered elements carry BEM CSS classes (benecaster-subscribe, benecaster-subscribe__tier, benecaster-subscribe__price, benecaster-subscribe__button, etc.) for full visual customization via CSS without modifying plugin files.

This shortcode never blocks a signup, on any plan. Tier cards render and checkout completes regardless of the podcaster’s paying-subscriber count. Limit enforcement happens on the feed side — an over-limit token serves the public feed — and never at the point of sale.

⚠ Changed 2026-08-24 (feature/launch-plan-limit-alignment, OQ-103). This shortcode
previously replaced paid tier cards with a “Plan limit reached” upgrade notice once a
Launch-plan site hit 10 paying subscribers, with a manage_options admin-override branch.
All of it is gone, and Launch now behaves identically to every paid plan at its own limit.

Removed and no longer available to theme or add-on code: the FREE_PLAN_PAYING_CAP and
UPGRADE_URL constants, the resolve_free_plan_cap_state() method, the
benecaster-subscribe__tier--cap-reached CSS class, and the [data-cap-notice],
[data-cap-warning] and [data-admin-override] markup hooks. CSS or JS selecting on any
of those will silently match nothing
— check custom styling that targeted the cap state.

The constructor signature also narrowed: LicenseManager and TokenRepository are no
longer dependencies, since nothing in the render path consults the license any more.

Parameters

Name Type Default Required Description
show_id int No ID of the show to subscribe to. Optional on single-show installs — auto-resolved via benecaster_get_sole_show_id(). Required on multi-show installs; renders an inline error comment and short-circuits when omitted on zero-show or multi-show installs. **Where to find it:** every show shows a click-to-copy `#{id}` chip in its admin header (on every sub-tab) and on its card in Benecaster → Shows, including archived shows.
tiers string all tiers No Comma-separated tier slugs to display, e.g. tiers="free,premium". Slugs must match those defined in Settings → Subscription → Tier Mapping. Omit to show all available tiers.
style string cards No Layout style: - `cards` (default) — grid of tier cards, each showing tier name, live price, and a subscribe button; best for full-width landing pages and pricing sections - `list` — compact single-column list with name, price, and button on each row; suited for sidebars or narrow contexts - `minimal` — tier names and subscribe buttons only, no price; use when price is shown elsewhere on the page
highlight_tier string No Tier slug to visually highlight as the recommended option. Adds a visual badge or border to that tier's card or row.

Example

<!-- Two-tier call-to-action with 'premium' highlighted -->
[benecaster_subscribe show_id="3" tiers="free,premium" highlight_tier="premium"]

<!-- All tiers, list style -->
[benecaster_subscribe show_id="3" style="list"]