Customizing the Supporter Wall
The Supporter Wall has multiple developer-facing seams for customizing its appearance, behavior, and content moderation. This page is an index to the relevant hooks, classes, and patterns.
Output Hooks
benecaster_supporter_wall_output — Filter the complete rendered wall HTML after assembly. Use to wrap it in additional markup, suppress it entirely, or inject count headings.
benecaster_supporter_wall_empty_message — Filter the empty-state copy shown when no subscribers have opted in. Return an empty string to suppress the message entirely.
Message Moderation
benecaster_subscriber_wall_message — Action fired after every write to a subscriber’s “Why I support” message. Use to auto-moderate flagged content, mirror messages to an external CRM, or build an audit log. See the Moderate Supporter Wall Message recipe.
Important: Writing _benecaster_subscriber_wall_message user meta directly inside this action (via update_user_meta()) does not re-fire the action — only writes going through SupporterWallManager::set_subscriber_message() fire it. This prevents infinite loops but means bulk-clearing from a scheduled job should use the manager method if other listeners need to see the change.
Visibility Events
benecaster_supporter_wall_enabled / benecaster_supporter_wall_disabled — Actions fired on state transitions when a podcaster enables or disables the wall for a show. Use to flush page caches that include the [benecaster_supporter_wall] shortcode output.
benecaster_subscriber_wall_visible — Action fired after every write to a subscriber’s opt-in flag. Fires even on same-value re-saves. Use for consent logging or CRM sync.
Classes
| Class | Role |
|---|---|
SupporterWallManager |
Read/write supporter wall opt-in and “Why I support” message for a subscriber |
SupporterWallQuery |
Build the opted-in roster with avatar, tier, badges, and message fields |
SupporterWallController |
REST endpoint GET /shows/{id}/supporter-wall |
SupporterWallShortcode |
[benecaster_supporter_wall] shortcode renderer |