Skip to main content

benecaster_subscriber_wall_message

Action Free

Fires after a subscriber’s “Why I support” message is saved via SupporterWallManager::set_subscriber_message(). The action fires after every write — including same-value writes and explicit clears (empty string). This mirrors the always-fires semantics of benecaster_subscriber_wall_visible: if you want transition-only behavior, compare against SupporterWallManager::get_subscriber_message() before calling.

$message is the sanitized (sanitize_textarea_field()) and length-clamped (mb_substr(), max 240 characters) value that was actually persisted. An empty string means the subscriber explicitly cleared their message. The action fires regardless of whether the subscriber’s show has _benecaster_show_supporter_wall_show_why_field enabled — display gating is the shortcode’s responsibility.

Parameters

Name Type Default Description
$user_id int WordPress user ID of the subscriber whose message was saved
$message string The sanitized and length-clamped message that was persisted. Empty string = subscriber cleared their message. Maximum 240 characters (enforced by SupporterWallManager::MESSAGE_MAX_LENGTH).

Examples

Moderate messages and auto-moderate flagged content

add_action( 'benecaster_subscriber_wall_message', function ( int $user_id, string $message ): void {
    if ( empty( $message ) ) {
        return; // subscriber cleared their message — nothing to moderate
    }

    if ( my_profanity_filter( $message ) ) {
        // Blank the message and log for admin review.
        ( new \Benecaster\Membership\SupporterWallManager() )->set_subscriber_message( $user_id, '' );
        my_audit_log( 'wall_message_flagged', [ 'user_id' => $user_id, 'original' => $message ] );
    }
}, 10, 2 );

Need this built rather than just documented? See our services →