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:
- Stripe keys — enter test or live keys in Settings → Membership → Payments.
- At least one active tier — create a tier in Benecaster → Memberships → Tiers.
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.
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. |
| 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 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.
Changing an amount does not change what existing subscribers pay. Stripe prices cannot be edited once created, so when you change an amount or currency Benecaster mints a fresh Stripe price and points new sign-ups at it. Everyone already subscribed stays on the rate they signed up at. 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.
For how the cadences are presented to subscribers, see Subscription Billing Cadence.
Connecting the Bridge
Once a tier exists and Stripe keys are configured, go to Benecaster → 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.
- Go to Settings → Membership → Payments.
- Enter your test publishable key and test secret key under the Test section.
- Enter your live publishable key and live secret key under the Live section.
- 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:
- 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. - 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.
- On a paid tier they enter their card details inline on the same page and the subscription is created.
- Benecaster generates a feed token and sends the welcome email with their private RSS feed URL.
- The subscriber’s account page shows their active tier, billing period, next renewal date, and payment method — with options to update or cancel.
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.
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:
benecaster_membership_tier_created,benecaster_membership_tier_updated,benecaster_membership_tier_deleted— fire after tier CRUD operations. Use to sync tiers to external systems.benecaster_membership_price_created,benecaster_membership_price_deleted— fire when a cadence is added to or removed from a tier. These are what drive Stripe price minting and archival, so hook them rather than watching for tier updates if you care about individual cadences.benecaster_stripe_membership_subscription_deleted,_updated,_invoice_payment_failed,_invoice_paid— routing actions fired byMembershipWebhookHandlerswhen Stripe events arrive. Hook here rather than on raw Stripe event strings.PodcastPaymentGatewayinterface — implement this to add a custom payment gateway (e.g., PayPal, regional processors). Seeclass-podcast-payment-gateway.
Bridge-agnostic subscriber hooks — these fire regardless of which bridge is active (Built-in Membership, MemberPress, WooCommerce Subscriptions, or any other):
benecaster_token_generated— fires after a new subscriber token is created and active. Use for welcome sequences, CRM sync, or logging new subscribers.benecaster_token_revoked— fires when a token is explicitly revoked and feed access removed.benecaster_token_reset— fires after a subscriber’s token is reset and a new one is active.
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 →