Skip to main content

Buy-up Content Gating

Once you have defined one or more buy-ups, you can restrict individual episodes so that only subscribers who hold an active grant for that buy-up can access them. This is separate from tier-level access — an episode can require a specific buy-up regardless of which tier the subscriber is on.


Setting up Per-Episode Access

In the episode editor, open the Availability panel. You will see an Add-on access section below the existing tier controls. Use the multi-select to choose which buy-ups grant access to this episode. Leave the field empty to apply normal tier-based access rules with no buy-up requirement.


Access Logic

The access check uses OR logic across the selected buy-ups: if the subscriber holds an active grant for any one of the selected buy-ups, access is granted. There is no way to require multiple buy-ups simultaneously on a single episode.

Tier access and buy-up access are checked independently. A subscriber with a tier that already satisfies normal episode availability does not need a buy-up grant — buy-up access is an additional path to access, not a replacement.

Episode config Subscriber state Result
Buy-up required, no tier requirement Subscriber holds a valid buy-up grant Access granted
Buy-up required, no tier requirement Subscriber does not hold the buy-up Access denied
Buy-up required, tier also grants access Subscriber qualifies by tier (no buy-up) Access granted
Buy-up required, tier also grants access Subscriber holds buy-up but wrong tier Access granted

Feed Access

When a subscriber gains or loses a buy-up grant, Benecaster appends the corresponding token type to the subscriber’s feed token so it can resolve access at request time. No token regeneration is required — access changes take effect the next time the feed is fetched.


For Developers

The episode _benecaster_required_buyups meta key holds a comma-separated list of buy-up slugs. The access resolution function checks this list via benecaster_episode_is_accessible, which fires for all episodes — use it to inspect or override buy-up access in custom code.

See benecaster_user_has_buyup() for checking buy-up status from PHP.

See Also