Skip to main content

Subscriber Billing Portal

Built-in membership subscribers can manage their own subscriptions through a billing portal section on your podcast’s account page. The portal is embedded directly in the [benecaster_account] shortcode output — no redirect to Stripe’s hosted portal, no external page.

The portal is only visible to subscribers managed through Benecaster’s built-in membership. Subscribers on external bridges (MemberPress, WooCommerce Subscriptions, etc.) do not see this section — they manage their subscription through their membership plugin’s account page.


What Subscribers Can Do

Update Payment Method

Clicking “Update payment method” opens an inline card input form — your subscriber’s browser loads Stripe Elements without leaving your site. Card details go directly to Stripe; your site never handles the raw card number.

After entering new card details and clicking “Save,” the new card becomes the default for future renewals immediately.

Cancel Subscription

Clicking “Cancel subscription” shows a confirmation dialog before proceeding. Cancellation is always scheduled for the end of the current billing period — the subscriber retains feed access until then. The button changes to “Subscription ending on [date]” after cancellation is confirmed.

Resume Subscription

When a subscription is pending cancellation, a “Resume subscription” button appears. Clicking it un-cancels the subscription before the period ends and removes the “ending on” notice.

View Billing History

The last 24 invoices are listed with date, invoice number, amount, and status. Each row has links to view the full invoice on Stripe’s hosted invoice page and download the PDF.


Payment Failure Notice

When a subscription payment fails, a persistent amber notice appears at the top of the subscription section: “Your payment failed — Update your payment method to keep your subscription active.” The notice includes a direct link to the payment method update form.

The notice clears automatically when:

  • Stripe retries successfully and the subscription returns to active
  • The subscription is cancelled (terminal state)

No action is required from you — the notice state is computed at render time from the subscription status.


For External Bridge Subscribers

Subscribers on external bridges (MemberPress, WooCommerce Subscriptions, Restrict Content Pro, or Paid Memberships Pro) never see the built-in membership billing portal. The [benecaster_account] shortcode gates the portal section on a benecaster_subscriptions row being present for that user — external bridge subscribers have no such row. Their existing account page sections (feed URL, token reset, QR code) are unaffected.


Technical Notes

  • The billing portal uses Stripe Elements (embedded card form), not Stripe’s full-page Billing Portal redirect.
  • The subscribe shortcode JS and CSS only enqueue when at least one native subscription row is present for the page’s show context.
  • All portal REST endpoints (benecaster/v1/account/billing-portal*) use cookie authentication. No admin nonce required for subscriber-facing actions.

See Also