Recipes
Recipes are written for developers. Each one is a complete, working code example that combines one or more hooks or filters to solve a specific customization — the common ones you are likely to want, and the less common ones that are hard to work out from the hook reference alone. They are examples to adapt, not features to configure. Browse by area below, or use the search box to find recipes by keyword.
Recipes marked advanced assume you are building a custom bridge, add-on, or deeply custom integration. Some recipes require an add-on to be installed — the add-on requirement is noted on each recipe’s page.
- Feeds
- Episodes
- Subscribers and Access
- Analytics and Monitoring
- Migration and Import
- Add-on Development
- Search
- Templates and UI
Feeds
Change what goes into your RSS feeds and how they are served: tracking prefixes on audio URLs, extra tags and fields, redirects, and timing or post-processing the finished feed.
- Count feed downloads with Podtrac, OP3 or Podscribe
- Redirect feed URLs to pretty permalink format
- Post-process a multi-tier assembled feed as a whole
- Suppress or override the feed redirect tag without changing stored settings
- Add a custom field to the RSS feed
- Keep web-only markup out of the RSS feed
- Measure and log feed render time
- Add Podlove chapter markers to RSS
- Inject chapter markers from an external source
- Inject Podlove Simple Chapters inline into the feed
- Add transcript metadata from a transcription service (Transcription add-on)
- Detect and log invalid feed token attempts
- Ping a Slack channel when a cancelled subscriber’s app polls a revoked token
- Trigger a feed cache clear from external code
- Swap the audio enclosure URL per subscriber tier at feed compile time
- Register a fully custom XML namespace handler from an add-on (advanced)
- React when a show’s redirect tag is automatically removed
- Inject additional Podcasting 2.0 channel tags from an add-on
- Inject Podcasting 2.0 episode tags from an add-on
- Embed a show QR code on a marketing page
- Replace or suppress the RSS link output
Episodes
React to episodes being published, scheduled or unlocked, and change what a listener sees on an episode they can’t hear yet.
- Let visitors who can’t hear an episode play a preview clip
- Override the locked content message per tier
- Replace the locked episode prompt with an inline tier comparison
- Trigger push notifications when scheduled episodes unlock
- Send episode notifications via custom webhook on publish
- Invalidate an external cache or CDN when an episode is unpublished
- Trigger a workflow when a new episode is first created
- Sync changed episode fields to an external system
- Clean up external records when an episode is permanently deleted
- React to episode meta changes (audio URL, type, description)
- Assign episode numbers based on a custom sequence
- Map a custom episode type to a canonical iTunes type
- React to episode custom field changes from an add-on
- Inject a dynamically generated field group
- Transform a stored field value before display
- Sync a custom field value to an external system on save
- Add a tab to the episode editor via PHP filter
- Inject a React component into a named slot (advanced)
- Add an add-on tab to one show’s settings (advanced)
- Inject a synthetic reference group from an add-on
- Annotate episode references with tracked redirect URLs
- Suppress or reorder episode page blocks for a specific episode
- Redirect episode navigation links
- Register a custom related-episodes query strategy (advanced)
- Override the related-episodes list per-episode
- Inject or reorder social links programmatically
- Replace the social links HTML entirely
- Replace or suppress the platform links output
- Override teaser content with a chapter preview
- Check episode access in a shortcode or widget
- Replace the episode share links with a custom share card
- Inject a “Listen now” CTA button into every archive episode card
- Hide the sort controls on the episode archive
- Override a single episode template part from a child theme
- Load a custom template part from an add-on
- Auto-select a credit template based on episode type
- Inject external sponsor data into a credit at stamp time
- Log credit applications to an external system
- Programmatically stamp a credit on episode save (advanced)
- Auto-populate feed credits from Guest Manager
- Show or hide a show’s public episode pages from add-on code
Subscribers and Access
Decide who gets access and react when that changes: granting access from other purchases, syncing subscribers to outside tools, and responding to sign-ups, plan changes, lapses and revocations.
- Grant access based on WooCommerce product purchase
- Tell a locked visitor which plan opens an episode
- Log or alert when a subscriber’s membership lapses while their token is still active
- Trigger a re-engagement automation when a subscriber goes silent
- Show the podcaster’s inactivity threshold in your add-on, read-only, with a link to change it
- Retag a subscriber in your email platform whenever their tier changes — whatever handles billing
- Tag a lost listener by why they left — and a follower as a follower
- Ask for marketing consent on Benecaster’s own forms, and sync only confirmed yeses
- Confirm subscriber app setup and fire a first-listen celebration
- Display subscriber feed URL on WooCommerce My Account page (Blocks & Widgets add-on)
- Add a subscriber to Mailchimp without the built-in integration
- React to subscription events from any bridge
- Override subscriber count from an external analytics source
- Log admin-initiated revocations to an external audit service
- Send a Slack DM when an admin resets a subscriber’s token
- Send a Slack alert when an admin changes a subscriber’s tier and notifies them
- Send a Slack alert when an admin revokes a subscriber’s access and notifies them
- Integrate with a membership plugin not in the built-in bridge set (advanced)
- Implement a custom bridge that returns multiple active tiers per user (advanced)
- Read or override the active bridge for a show from an add-on
- Integrate a community platform not in the Benecaster set (advanced)
- Perform a community action on episode publish
- Build a custom subscriber dashboard with template functions (Blocks & Widgets add-on)
- Customize [benecaster_current_tier\] output
- Which subscriber count is the paying one
- React to a free follower signup
- Enumerate WP User IDs eligible for a broadcast audience, with follower support
- Redirect the account page URL to a custom path
- Fetch a subscriber’s active subscriptions from a headless or native client
- Add a “Need help?” support link above the feed URL section on the account page
- Register a custom Member Thanks query type (advanced)
- Mirror built-in tier CRUD into an external CRM or reporting pipeline
- React to a completed donation — log it, send a follow-up, or update a list
- Keep a capped-cohort tier purchasable via direct link while hiding it from the subscribe picker
- Automatically enroll Gravity Forms submissions as Benecaster subscribers
- Register an add-on handler on the shared Stripe webhook endpoint
- React to subscription lifecycle events from the built-in membership system
- Clean up external records when a donor requests data erasure
- React to subscriber-initiated lifecycle events from the native billing portal
- Hook a subscriber’s buy-up purchase/cancellation to grant extra benefits or send an email
- Exempt founding members from a price change, and react when one takes effect
- Show or hide content based on whether a subscriber owns a buy-up
- Hook into the three buy-up lifecycle actions to drive integrations
- Purchase a buy-up from custom code, safely
- Show the taxed total in your own signup form
- Create a tier or buy-up on a show that collects tax
- Substitute the default “Sold out” button on a capped buy-up with a custom waitlist
- Tag manual grants with user role
- Add manual membership support to a custom bridge (advanced)
- Mutate or block outgoing webhook payloads per event
- Receive Benecaster webhooks safely — verify the signature and ignore retries you already handled
- Push promote-grace expiry events into a CRM or analytics pipeline
- Run custom logic after the Promote-to-Bridge wizard finishes
- Opt a custom bridge into the Promote-to-Bridge migration wizard (advanced)
- Add a custom icon to the per-tier badge picker
- React to a badge definition being deleted
- Append, hide, or reorder a subscriber’s badges per show
- Drop a user’s badge chips into a custom theme template
- Render an initials-based avatar when site-wide Gravatar is disabled
- Mirror Supporter Wall opt-in changes to an external CRM or audit log
- Flush full-page caches when a per-show Supporter Wall is enabled or disabled
- Override the empty-state copy inside the supporter wall shortcode
- Replace or wrap the assembled Supporter Wall HTML
- Invalidate caches or sync to external systems when a subscriber removes their avatar
- Moderate or audit-log every Supporter Wall message
- Clear spam and abuse from the Supporter Wall automatically
- Redefine tenure badge milestones with custom thresholds and labels
Customize the emails Benecaster sends: replace or suppress individual emails, add merge tags, send through an outside provider, and keep opt-outs in sync.
- Suppress the welcome email and send a custom version via SendGrid
- Add custom merge tags to all emails (Email Editor add-on)
- Sync email opt-outs to Mailchimp (Email Editor add-on)
- Replace the auto-generated plain text email with a custom version (Email Editor add-on)
- Add SendGrid category tracking to all emails
- Add SendGrid category tracking in API delivery mode
- Rate-limit the unsubscribe endpoint to prevent abuse
- Register a custom email type with the Email Editor (Email Editor add-on)
- Mark add-on email types as transactional so they bypass broadcast opt-out
- List an email job’s failed recipients, and retry one safely
- Send locale-aware email templates to subscribers in their own language
- Suppress or customize the built-in tier change email per tier pair
- Replace the built-in unsubscribe URL with a branded opt-out center
- Push donation-enrolled followers to an external newsletter
- Override the donation mailing-list opt-in checkbox label
- Customize email header branding per show
- Send your own design for one Benecaster email, per show
- Give the podcaster “Preview” and “Send me a test” for any email
- Send one message to two tiers of a show
Analytics and Monitoring
Send Benecaster’s subscription and download data to outside analytics and alerting tools, and adjust how that data is recorded and kept.
- Push subscription lifecycle events to an external analytics service
- Stream every authenticated 302-proxy download event to an external webhook
- Append custom columns or short-circuit the write for download log rows
- Map an additional user-agent substring to a display label in the Top apps breakdown
- Force the platform benchmark cache to refresh outside the daily cron tick
- Pause or monitor scheduled analytics data pruning
- Add a custom section to the Analytics Digest (Analytics Dashboard add-on)
- Register a custom export sheet from an add-on (advanced)
- Trigger a downstream aggregation job when the nightly rollup completes
- Alert on the feed request log emergency row-cap guardrail
- Read Benecaster’s analytics numbers instead of copying its SQL (Analytics Dashboard add-on)
- Chart built-in membership revenue from what was actually charged (Analytics Dashboard add-on)
Migration and Import
Shape episodes as they come in from an existing feed or another podcast plugin, and react when a feed sync finds something new.
- Auto-populate custom fields from imported RSS data (Migration Wizard add-on)
- Skip importing trailer episodes during feed sync (Migration Wizard add-on)
- Notify production team on Slack when new episodes found during feed sync (Migration Wizard add-on)
- Parse a custom RSS namespace and map to a Benecaster custom field (Migration Wizard add-on)
- Post a webhook to an external monitoring service after every sync with full result data
- Customize imported episode post data during SSP/PowerPress import
- Send a Slack notification when an SSP or PowerPress import finishes and new drafts were created
Add-on Development
Building blocks for your own add-on: registering it, adding settings, REST endpoints, custom post types and setup-wizard steps, and fitting into Benecaster’s screens.
- Register an add-on CPT with the custom field system
- Add a custom REST endpoint from your add-on
- Inject a step into the setup wizard from an add-on
- Add a custom bridge card to the wizard Subscription step
- Run post-setup initialization when the wizard completes
- Tell the Add-ons screen that this add-on plugin is loaded
- Fire add-on side effects the moment an OAuth site-linking exchange succeeds for a specific show
- Keep a provider API key encrypted, and never show it back
- Open your own panel beside every Benecaster screen with a shortcut
- Detect and respond to per-show token revocation so add-ons can pause outbound work before the operator reconnects
- Register a guided product tour from an add-on JS bundle
- Stop Benecaster offering updated tours again
- Point a tour step at your tab in the episode editor, on a real episode
- Act on the episodes a podcaster ticks — and badge each row with your status
- Point the podcaster at a companion add-on the right way — buy, install or open it
- Send your add-on’s own events through Benecaster’s webhook
- Let Zapier, Make or a CRM call your add-on
- Populate a block or widget picker without needing an administrator
- Load Benecaster’s front-end styles into the block editor
- Fire add-on side effects when a show is archived or restored
- Remove your add-on’s rows when a show is deleted
- Render the active theme’s header/footer from a Benecaster template override without deprecation on block themes
- Stop showing a Benecaster price after it changes
- Bridge the catalog/entitlement slug split when cross-referencing the two systems
- Keep staging test data out of your production CRM and email lists
- Mirror right-to-erasure/retention purges to external systems
- Toggle an add-on’s verbose logging in lock-step with Benecaster Support Mode
- Include more debug-log history in the Support Mode diagnostic snapshot
- Tune or bypass the per-IP REST rate limiter
- Surface the customer’s pending referral credit in an add-on dashboard widget
- Register a custom admin notice health check (advanced)
- Run a health check on the daily license cron in addition to the once-per-admin-session sweep
- Modify or suppress an admin notice per display context immediately before it reaches the React app
- Programmatically install and activate a design template
- Track the payment-failed license grace lifecycle
- Alert PagerDuty when feeds go dark at day 30
- Resolve the outage alert when access is restored
- Add or remove languages offered in Settings and the setup wizard
- Invalidate locale-keyed caches when the operator changes supported languages
- Sync show creation to external CRM
- React when an admin connects a subscription bridge
- React when a new membership tier is detected without a Benecaster mapping
Search
Change how episode search finds and presents results, or replace it with your own search.
- Bypass the standard FULLTEXT search with a custom implementation (advanced)
- Exclude an episode from all search results
- Augment search result excerpts
- Search a secondary data source and inject episode IDs into the Benecaster result set
- Show AI Search to subscribers at or above a required tier (AI Search add-on)
Templates and UI
Add your own sections to the pages Benecaster renders, and change the prompts listeners see.
- Customize the upgrade prompt for a specific show
- Describe each tier on a membership-plugin show’s subscribe cards
- Add a custom section to the show page
- Add a custom section below the QR code on the subscriber account page
- Turn off, or restyle, Benecaster’s base styles for its shortcodes
- Use your own icon set for social, platform and share links
- Replace the episode player’s video with your own player
- Follow along with an episode as it plays — highlight the current line, jump on click
See Also
Need this built rather than just documented? See our services →