benecaster_buyup_soldout_display
Filters the sold-out label text shown on a buy-up card when its subscriber cap has been reached. Return an empty string to remove the label entirely — the card will still be non-interactive, but no sold-out text renders.
This filter fires only when the buy-up’s cap has been reached and the current subscriber does not already hold a grant for it. Subscribers with an active grant see their own card state (Active badge) regardless of this filter.
⚠⚠ The returned value is echoed WITHOUT escaping. The contract here is raw HTML — the default is pre-escaped and the call carries an explicit phpcs:ignore saying so. Escape every dynamic part yourself with esc_html(); interpolating an unsanitised value makes this an XSS hole on a logged-in subscriber’s own account page. A non-string return is emitted as PHP casts it, with no warning.
Examples
Custom sold-out message for a specific buy-up
add_filter( 'benecaster_buyup_soldout_display', function (
string $label,
string $buyup_slug,
int $show_id
): string {
if ( $buyup_slug === 'transcript-archive' ) {
return 'Waitlist opening soon';
}
return $label;
}, 10, 3 );
Need this built rather than just documented? See our services →