Skip to main content

Built-in Membership

Benecaster’s built-in membership system lets you sell Stripe-powered subscription tiers directly through your WordPress site — no separate membership plugin required. Subscribers sign up on your site, pay through Stripe, and receive a private RSS feed URL immediately. You manage everything from the Benecaster admin.

What’s Included

  • Subscription tiers — define as many tiers as you need (Gold, Silver, Founding Member, whatever fits your show), each with as many billing cadences as you want to offer.
  • Any billing cadence — monthly and annual are the common pair, but a tier can carry quarterly, six-monthly, weekly, or any interval Stripe supports. Add as many as you like; add only one if that is all you want to sell.
  • Automatic discount badge — price a longer cadence below the monthly equivalent and Benecaster computes and displays the saving automatically (“Save 27%” or “2 months free”).
  • Stripe integration — direct Stripe API keys; revenue goes straight from subscriber to your Stripe account with no Benecaster intermediary.
  • Test mode — test the entire purchase flow with Stripe’s test environment before going live. See Payment Test Mode.
  • Subscriber self-service — subscribers can update their payment method, view billing history, and cancel from the subscriber account page.
  • Billing emails — default templates for subscription receipt, upcoming renewal reminder, payment failure, and cancellation confirmation.
  • Feed token management — same token system used by all Benecaster bridges; billing-period changes preserve the subscriber’s feed URL.

Prerequisites

You can choose Built-in Membership at any time, including in the setup wizard before anything else is configured. It starts working once two things are in place:

  1. Stripe keys — enter test or live keys in Settings → Payments.
  2. At least one active tier — create a tier in Benecaster → Memberships → Tiers. The Public tier every built-in show has doesn’t count: it can’t be sold.

Built-in Membership is available on all paid Benecaster plans, including Launch. It is not available in the WordPress.org version of the plugin, which has no account or bridge infrastructure.

Until both are in place, nobody can subscribe. A Benecaster admin notice, and a line under the bridge picker in Settings → Subscription, name what is missing and link to Payments or Memberships.

Setting up Tiers

Go to Benecaster → Memberships → Tiers and click Add Tier.

Each tier has:

Field Notes
Name Displayed to subscribers (e.g., “Gold”, “Premium”, “Founding Member”)
Slug Auto-generated from the name; immutable after creation. Changing this would break existing feed URLs — Benecaster does not allow it.
Prices A repeating list of billing cadences. See below.
Free trial (days) Number of days before the first charge. Range 0–730 (Stripe’s maximum). Default 0 (no trial). Subscribers can add their payment method during trial and are not charged until the trial ends.
Description Optional. Shown on the subscription page next to the tier card.
Active Inactive tiers don’t appear to new subscribers but existing subscribers retain access.

The tier slug appears in feed URLs and is referenced in Benecaster’s analytics — choose a slug you’ll be comfortable with permanently.

The Public Tier

Every show on built-in membership has a Public tier, created for you when the show switches to built-in membership. It is listed first under Memberships → Tiers, with a grey Public feed chip and a short explanation where the prices would be.

The Public tier is your public feed. The episodes in it, and the episodes your website opens to visitors who aren’t signed in, are the ones you give a Public date on the episode’s Access tab (see Setting Tier Availability). Nothing becomes public by itself: no episode gets a Public date automatically, so a members-only show stays members-only until you date an episode for it.

  • Nobody can sign up for it or be put on it. It never appears in [benecaster_pricing_table] or [benecaster_subscribe], on the account page’s plan switch, in manual grants or in bulk enrolment.
  • It can’t be priced, made inactive or deleted. Its editor has only a name and a description, so you can rename it.
  • It doesn’t count as a tier to sell. Built-in membership still needs at least one real tier before it switches on.
  • You can’t create a second one. A new tier named Public, or given the slug public, is refused: “This show already has its public tier…”. If the show already had a tier with the slug public, that tier became the Public tier.

Prices

A tier is not one price. It is one product with a list of prices attached, one per billing cadence you want to sell.

The Prices repeater is where you build that list. Click Add price for each cadence. Each row has:

Field Notes
Label What subscribers see on the subscription page — “Monthly”, “Yearly”, “Every 3 months”, “Founding rate”. Yours to word.
Interval The billing unit — day, week, month, or year.
Interval count How many of that unit per charge. Month × 3 is quarterly; month × 1 is monthly; year × 1 is annual.
Amount What the subscriber is charged each cycle, typed in the currency’s own units: 9.99 for $9.99, 1500 for ¥1,500, 5.250 for KWD 5.250. A three-decimal currency is rounded so the last digit is 0 (5.125 is saved as 5.130). Ugandan shillings (UGX) and Icelandic krónur (ISK) take whole amounts (5000 for UGX 5,000), and a fraction is rounded to the nearest whole unit.
Currency Per row, so a tier can be priced differently across cadences if you need it.
Default One row per tier is the default — it is the cadence pre-selected on the subscription page.
Order Drag to control the order the cadences appear in.

A paid price must be at least Stripe’s minimum charge in that row’s currency, and the editor names it in that currency: USD 0.50, GBP 0.30, EUR 0.50, JPY 50, MXN 10, HUF 175, and so on through Stripe’s list. A currency Stripe lists no minimum for, such as KWD, BHD or the other three-decimal currencies, takes 0.50 of the currency (KWD 0.500), rounded to a whole unit for UGX and ISK (UGX 1, ISK 1). Stripe’s real floor follows the currency your Stripe account pays out in, which Benecaster cannot see, so if you price in a currency other than your payout currency, check Stripe’s minimums yourself. The same rule applies in the setup wizard’s first-tier step. A tier saved with a lower price is asked to raise it the next time it is saved.

The Tiers list shows each tier’s price in its own currency.

A tier with no prices is free. The editor says so (“No prices — this tier will be treated as free”). It appears on the subscription page with a Join free button, and signing up needs no payment step. A free tier needs no Stripe account. On a show that has not connected Stripe, the subscription page shows your free tiers and holds back the paid ones, rather than replacing everything with “Subscriptions are temporarily unavailable”; an administrator still sees a “Stripe is not connected” prompt beside them.

A tier is paid as soon as it has one price and free when it has none, and this is re-worked every time you save. To keep a tier out of sight while you set it up, leave its Active switch off.

Deleting every price does not take a tier off sale: it makes the tier free. So while anyone is paying on a tier, Benecaster will not let it become free. That includes anyone with a plan change scheduled onto the tier: a move down or a billing-period switch waiting for their next renewal, or an upgrade still waiting for them to confirm the payment with their bank. If you remove its last price, the save is refused and nothing changes. The editor tells you how many people are still paying and points you to the Active switch instead. See Stopping or Deleting a Tier.

Changing an amount opens a choice about what happens to subscribers already on that cadence — it no longer just grandfathers them automatically. Stripe prices cannot be edited once created, so changing an amount or currency always mints a fresh Stripe price behind the scenes and points new sign-ups at it. What happens to everyone already subscribed is now something you choose.

Saving a changed amount opens “What should happen to existing subscribers?” for that cadence, with one choice:

  • Keep — the default. Existing subscribers are grandfathered at the rate they signed up at; only new sign-ups get the new price.
  • Move — existing subscribers move to the new price. You set Days of notice (0 is valid, meaning the change applies at their very next renewal) and can turn on an optional reminder email before the change takes effect. Increases and decreases are worded separately in the notice.

Everyone a Move applies to is emailed at once. A renewal that falls inside the notice window still bills at the old price — the new price only takes effect starting with the first renewal after the notice period ends.

The tier editor lists price changes in progress. A pending Move can be undone with Cancel change any time before the notice period ends; cancelling emails everyone who was told about it.

A currency change can only be Kept, never moved — Stripe cannot move a subscriber’s existing billing item to a price in a different currency.

Before running a Move, read Price Change Considerations — the notice period you choose has legal implications this page does not cover.

This applies to Built-in Membership tiers and buy-ups only. MemberPress, WooCommerce Subscriptions, Paid Memberships Pro and Restrict Content Pro are unaffected — a price change on one of those plugins is between you and that plugin.

See How Billing Scenarios Work.

Removing a price stops that cadence being offered to new subscribers. Existing subscribers on that cadence are unaffected and keep renewing normally.

A price someone is about to switch onto can’t be removed yet. If a subscriber has a plan change scheduled onto that price, waiting for their renewal or for them to confirm an upgrade payment, the save is refused and nothing changes. The editor names the billing period and how many people are switching onto it. You can remove it once the switch has happened at their renewal.

For how the cadences are presented to subscribers, see Subscription Billing Cadence. Subscribers can also move themselves between a tier’s billing periods, at their next renewal — you don’t have to cancel and re-enroll anyone by hand for that.

Tax Category

If Stripe Tax is ready in your show’s Stripe account, the editor for a paid tier shows a Tax category box. It appears whether or not Calculate tax automatically is on in Benecaster, so you can set every category before you start collecting tax. A free tier is never asked, because it is never charged.

The box asks two questions:

  1. What kind of content is it? Audio (your podcast, a bonus feed), Video, Written, A course, or Something else: general digital services. If you already know the Stripe tax code you want, choose Enter a Stripe tax code and type it instead.
  2. How do subscribers get it? For audio, either Subscribers can download episodes and keep them or Streaming only: subscribers cannot keep the files. Video, written content and courses have their own pair of answers.

Beside an audio or video answer, the editor points out the one fact Benecaster can tell you: a private podcast feed is downloaded by the listener’s podcast app, and those episodes stay on their device after a subscription ends.

Nothing is selected for you, and Benecaster does not recommend a category: the category decides how every payment for the tier is taxed, so it is your call, or your accountant’s. While Stripe Tax is ready in the show’s Stripe account, a paid tier cannot be saved without one (“Choose a tax category for this tier before saving.”). The category is set on the tier’s Stripe product, and changing it later updates the product too.

See Setting Up Sales Tax and VAT for the full setup.

Stopping or Deleting a Tier

To stop selling a tier, untick Active. It disappears from your subscription page and takes no new sign-ups, while everyone already on it keeps their access and keeps paying their current rate.

A free tier someone is moving onto stays active until they arrive. When a paying subscriber chooses to move to your free plan, the move lands at their next renewal, and it can only land on an active tier. Until it has happened, unticking Active on that free tier is refused and nothing is saved; the editor tells you how many people are waiting to move. Members already on the free tier don’t hold it back, and a paid tier can always be made inactive.

Adding a price to that free tier is allowed, with a warning. A move to a free plan can only land on a tier with no prices. Once you add the first price, the editor shows an amber note under Prices saying how many people are waiting to move and that their memberships will end at renewal instead of landing on the tier. You can still save; the warning is there so it isn’t a surprise.

A tier can be deleted only once nobody is on it. Deleting is refused while anyone is on the tier, whether paying, on a free tier, comped, given access by hand, or cancelled but still inside the period they paid for. It is refused too while anyone has a plan change scheduled onto the tier. The delete dialog shows how many people that is and points you to Active instead, and nothing changes. On a free tier that someone is moving onto, it says instead that the tier can’t be made inactive yet either, and to untick Active once the scheduled moves have happened at their renewals. Deleting stays refused after that, because the people who moved are then on the tier. A tier nobody is on is deleted straight away, and deleting can’t be undone.

Connecting the Bridge

Once a tier exists and Stripe keys are configured, go to Benecaster → Shows → [your show] → Settings → Subscription and select Built-in Membership from the bridge picker. Benecaster begins managing subscriptions directly from this point.

If you previously used an external membership plugin, the bridge switch prompts you through the transition. See Subscription Plugin Overview for guidance on when to switch versus when to stay with your existing plugin.

Connecting Stripe

Built-in Membership uses Stripe directly. You configure your own Stripe account keys — Benecaster never touches the money. Two shows can use separate Stripe accounts and still sit on one page: each [benecaster_subscribe] form uses its own show’s key.

  1. Go to Settings → Payments.
  2. Enter your test publishable key and test secret key under the Test section.
  3. Enter your live publishable key and live secret key under the Live section.
  4. Use the Test Mode toggle to switch between environments. Both key sets are saved independently — switching never requires re-entering keys.

See Payment Test Mode for how to test the full purchase flow before going live.

The Subscriber Experience

When a subscriber clicks a sign-up link on your site:

  1. They choose a tier and a billing cadence from the subscription page (rendered by [benecaster_subscribe]). Tiers that offer only one cadence have nothing to choose — the price is shown inline on the card.
  2. If they are not logged in, they give an email address and choose a password. This is how they will get back into their account later, so it is asked for on both the free and the paid tier.
  3. On a paid tier they enter their card details inline on the same page and the subscription is created. If your show collects sales tax, they enter their billing address first (see below).
  4. Benecaster generates a feed token and sends the welcome email with their private RSS feed URL.
  5. The subscriber’s account page shows their active tier, billing period, next renewal date, and payment method — with options to update or cancel.

When your show collects sales tax (Calculate tax automatically is on, Stripe Tax is ready in the show’s Stripe account, and every active paid tier and buy-up has a tax category), the paid form shows Stripe’s billing-address form above the card details. Once the address is complete, the form shows Subtotal, Tax and Total for the billing period they chose, and it works the total out again if they switch billing period. It will not take payment until that total has been shown (“Please enter your full billing address.”). If Stripe cannot work out where an address is, the form says “We could not work out the tax for that address. Please check it and try again.” The address goes to Stripe only; Benecaster does not store it. Subscribers who joined before you started collecting tax keep renewing as they were unless you choose to apply tax to them. See Setting Up Sales Tax and VAT.

If a subscriber comes back to the subscription page while logged in, they see which plan they’re on instead of an offer to buy it again. A paid subscriber is pointed to their account page to change plans. A member on a free plan, or someone following the show, still sees the paid tiers, since that is how they upgrade.

Subscribers can change plan themselves. From their account page they can move to another of your tiers, or to another billing period of their own tier. An upgrade takes effect straight away: they pay the difference for the rest of the current billing period, prorated, and get the new tier as soon as the payment goes through. Everything else lands at their next renewal — a move down, to a tier at the same price, or to another billing period — and nothing is charged when they ask. Their feed URL stays the same either way. They can have one change pending at a time. A tier is offered only if it sells the billing period they’re already on. See The Subscriber Account Page.

Your free tier works in both directions. A paying subscriber can move to your free plan instead of cancelling. The move lands at their next renewal: they keep everything they’ve paid for until then, aren’t charged again, and afterwards stay a member with the same account and the same feed URL. Buy-ups they pay for end with the paid plan, and they’re told so before they confirm. A member on your free plan can take out a paid plan from their account page too; that starts straight away and is charged today, through your normal signup form. A member you comped can’t do either, so change their plan for them. See The Subscriber Account Page.

Changing a subscriber’s plan in the Stripe dashboard works, but prefer theirs. If you move a subscription onto another tier’s price directly in Stripe, Benecaster recognises the new price when Stripe tells it about the change and moves their tier, feed access and badges to match. It doesn’t do what the account page does: there’s no confirmation of the price, no handling of their buy-ups, and no scheduling to their renewal date, and it depends on the webhook arriving. Their feed URL is unchanged either way.

They can log in straight away. Because they chose the password themselves, there is no set-password email and no round trip through their inbox before they can reach their account page. Anything on your site telling new subscribers to watch for a “set your password” message is out of date — that email is now only sent to people whose accounts you create for them.

If the email address already has an account on your site, signup stops and asks them to log in first, before any card details or password are looked at. This is deliberate: the signup form is public, so accepting a password for an address that already belongs to someone would let anybody take over an existing account by guessing an email address.

If payment fails, the subscriber sees a persistent notice on their account page and receives a payment failure email. Benecaster does not revoke feed access during Stripe’s retry window — access continues until all retries are exhausted and Stripe cancels the subscription or marks it as unpaid. See How Benecaster Handles Subscriber Billing.

Subscriber Billing Emails

Five billing email types are active by default. You can enable or disable each per show, and configure how many days before renewal the reminder is sent.

Settings location: Benecaster → Shows → [Your Show] → Subscription → Subscriber Billing Emails

Toggle Default Description
Payment receipt On Sent after every successful payment
Renewal reminder On Sent N days before the billing period ends
Payment failed On Sent once when payment first fails (not on every retry)
Cancellation confirmation On Sent immediately when a subscriber requests cancellation
Subscription cancelled On Sent when access is revoked at the end of the billing period

Days before renewal (default 7): Controls when the renewal reminder is sent. Range is 1–30. The input is greyed out when the renewal reminder toggle is off.

Subscribers on external bridges (MemberPress, WooCommerce Subscriptions, etc.) do not receive these emails — they receive billing emails from their membership plugin.

See Built-in Membership Billing Emails for full details on each email type, and Customizing Email Templates for the PHP override path.

For Developers

Built-in membership specific hooks — these only fire when Built-in Membership is the active bridge:

Bridge-agnostic subscriber hooks — these fire regardless of which bridge is active (Built-in Membership, MemberPress, WooCommerce Subscriptions, or any other):

See the hook reference for full parameter specs and the complete list of subscriber lifecycle hooks.

See Also

Need this built rather than just documented? See our services →