Skip to main content

Setting Up Listener Support (Stripe Mode)

Stripe mode lets listeners donate directly on your site via an embedded payment form — no redirecting to an external platform, no separate account required for them. Payments are processed through your connected Stripe account and recorded automatically after payment_intent.succeeded confirms.


1. Connect Stripe

Go to Benecaster → Settings → Listener Support and enter your Stripe publishable key, secret key, and webhook secret. Benecaster displays a read-only webhook endpoint URL — register this in your Stripe dashboard under Developers → Webhooks, listening for the payment_intent.succeeded event.

Use the Test connection button to verify your keys before going live. See Connecting Stripe for the full key and webhook setup walkthrough.


2. Enable Listener Support

On the same settings page, toggle Enable Listener Support on. This arms the feature — the prompt won’t appear until a show is also configured.


3. Configure Per Show

Open the show’s settings under Benecaster → Shows → [Your Show] → Listener Support.

Setting What it does
Suggested amounts Pre-set amounts shown to donors (e.g. 5, 10, 25). Listeners can also enter a custom amount if you enable it.
Donor name Whether to collect the donor’s name. Optional.
Donor email Whether to collect the donor’s email. When collected, a thank-you email is sent automatically after payment confirms.
Donor message Whether to show a free-text message field for the donor.
Thank-you message Text shown to the donor after a successful payment. Supports {amount_formatted}, {amount}, {currency}, and {donor_name}.
Redirect URL Instead of a thank-you message, redirect to a URL after payment. Benecaster appends ?donation=<intent_id> so the destination page can confirm success.
Donor mailing-list opt-in When enabled, a checkbox appears on the donation form between the Payment Element and the submit button. Off by default. See Donor Mailing-List Opt-In below.

4. Place the Shortcode

Add [benecaster_listener_support] to any page or episode template. Three display styles are available:

Style What it renders
form Stripe Payment Element embedded inline on the page
button A styled button that opens a modal with the Payment Element
icon An SVG icon (heart, star, mic, or custom URL) with a caption that opens a modal
<!-- Inline form -->
[benecaster_listener_support show_id="3" style="form"]

<!-- Button style in a sidebar -->
[benecaster_listener_support show_id="3" style="button" label="Support the show"]

<!-- Icon style with custom label -->
[benecaster_listener_support show_id="3" style="icon" icon="heart" label="Leave a tip"]

Always include show_id on standalone pages — outside a show or episode page context, the shortcode cannot resolve the show automatically and renders nothing.

The Blocks & Widgets Library add-on wraps this shortcode as a Gutenberg block and Elementor widget with a style picker in the sidebar.


5. Auto-Injection

If you prefer not to place the shortcode manually, Benecaster can inject the prompt automatically into episode pages and the subscriber account page. The default_stripe_style setting (per show) controls which style is used for auto-injection — default is button.


Donor Mailing-List Opt-In

When the Donor mailing-list opt-in toggle is enabled for a show, the donation form shows an unchecked checkbox between the Payment Element and the submit button:

☐ Add me to {Show Name}‘s mailing list

The checkbox is unchecked by default — donors must actively opt in. If the donor checks it and the payment succeeds, Benecaster creates a free follower account for that email address. This gives the donor access to your public follower feed and adds them to your subscriber list in Benecaster.

When accounts are created — and when they aren’t:

  • A new follower account is created only when no WordPress user already exists for the donor’s email address.
  • If a WP user already exists at that email — whether they are a paying subscriber, a cancelled subscriber, an existing follower, or any other status — the opt-in is silently skipped. Their existing account is not modified.

This means the feature is additive only: it brings in genuinely new contacts and does nothing to existing ones. Podcasters don’t need to worry about accidentally overwriting a paying subscriber’s account.

GDPR note: The checkbox is unchecked by default and the toggle is off by default. Podcasters must explicitly enable it per show. Donors must actively check the box before any account is created.

For developers: The benecaster_donor_enrolled_as_follower action fires after a new follower is provisioned. Use it to push the contact to an external newsletter platform or CRM. The action does not fire when an existing user is skipped.

add_action( 'benecaster_donor_enrolled_as_follower', function( $user_id, $show_id, $donation_reference ) {
    // $donation_reference is the Stripe PaymentIntent ID
}, 10, 3 );

See Listener Support Hooks for the full hook reference.


Thank-You Email

When a donor provides their email address, Benecaster queues a donation_thank_you email after payment_intent.succeeded confirms. The email template is editable in Benecaster → Emails → donation_thank_you. Available merge tags: {donor_name}, {donor_message}, {donation_date}, {show_name}, {donation_amount}, {donation_platform}. Tags for fields the donor left blank render as an empty string.


Health Check

If Listener Support is enabled but no Stripe keys are configured for a show, Benecaster surfaces a warning notice in the admin. The notice re-surfaces weekly until resolved. See Notifications for how notices work.


Donor Data Retention

In Settings → Listener Support, the Donor data retention field sets how long donor records are kept (in days). Set to 0 to retain records indefinitely.

See Also