Hooks and Filters
All hook and filter names in this page are taken verbatim from the plugin source. Only hooks that exist in the code are listed here.
Filters
Section titled “Filters”buddypress_status_theme_support
Section titled “buddypress_status_theme_support”Controls which themes receive extra compatibility code. The default value is array( 'reign-theme', 'buddyx-pro' ).
add_filter( 'buddypress_status_theme_support', function( $themes ) { $themes[] = 'my-custom-theme'; return $themes;} );Parameters: $themes (array) — Indexed array of theme slugs.
Returns: array
buddypress_status_get_mood_feeling_emojis
Section titled “buddypress_status_get_mood_feeling_emojis”Filters the list of mood emojis available in the feeling picker. The default list contains roughly 60 entries keyed by emoji slug (e.g. 'slightly-smiling-face') with translated display names as values.
add_filter( 'buddypress_status_get_mood_feeling_emojis', function( $emojis ) { $emojis['partying-face'] = __( 'Partying', 'my-plugin' ); return $emojis;} );Parameters: $emojis (array) — Associative array of slug => display_name.
Returns: array
buddypress_status_mood_categories
Section titled “buddypress_status_mood_categories”Filters the built-in activity categories (Celebrating, Watching, Eating, etc.). This filter is applied by buddypress_status_mood_categories() and used as the fallback when no custom activities are saved in options.
add_filter( 'buddypress_status_mood_categories', function( $categories ) { $categories['coding'] = array( 'title' => __( 'Coding', 'my-plugin' ), 'question' => __( 'What are you building?', 'my-plugin' ), ); return $categories;} );Parameters: $categories (array) — Associative array. Each key is a slug; each value is array( 'title' => string, 'question' => string ).
Returns: array
bpsts_global_statuses
Section titled “bpsts_global_statuses”Filters the list of global status suggestions returned to the frontend. Applied after reading get_option( 'bpsts_global_statuses' ) and after falling back to the default set.
add_filter( 'bpsts_global_statuses', function( $statuses ) { array_unshift( $statuses, 'Open for collaborations' ); return $statuses;} );Parameters: $statuses (array) — Indexed array of status strings.
Returns: array
bpsts_default_global_statuses
Section titled “bpsts_default_global_statuses”Filters the built-in fallback list of 20 default status suggestions. Applied only when the bpsts_global_statuses option is empty.
add_filter( 'bpsts_default_global_statuses', function( $statuses ) { return array( 'Available', 'In a meeting', 'Focused' );} );Parameters: $statuses (array) — Indexed array of status strings.
Returns: array
bpsts_feeling_activities
Section titled “bpsts_feeling_activities”Filters the final list of feeling activities shown in the UI. Applied by buddypress_status_get_feeling_activities() after loading from options (or falling back to buddypress_status_mood_categories()). Each activity must have title and question; icon (a Font Awesome class) is optional.
add_filter( 'bpsts_feeling_activities', function( $activities ) { $activities['reading'] = array( 'title' => 'Reading', 'question' => 'What are you reading?', 'icon' => 'fa-solid fa-book', ); return $activities;} );Parameters: $activities (array) — Associative array of activity config arrays.
Returns: array
bpsts_clean_status_display
Section titled “bpsts_clean_status_display”Filters the cleaned status text immediately before it is used for display. Applied by buddypress_status_clean_status_text(), which strips HTML tags and removes image URL patterns first.
add_filter( 'bpsts_clean_status_display', function( $clean_status, $user_id, $status_id ) { return mb_strtoupper( $clean_status );}, 10, 3 );Parameters:
$clean_status(string) — Already-stripped status text.$user_id(int) — User ID providing context.$status_id(string) — Thestatus-{timestamp}key.
Returns: string
bpsts_override_user_profile_status_template
Section titled “bpsts_override_user_profile_status_template”Filters the template file path used for the status form on the profile Status sub-page. The default is 'inc/bpsts-add-status.php' (relative to the public/ directory).
add_filter( 'bpsts_override_user_profile_status_template', function( $template ) { return 'inc/my-custom-status-template.php';} );Parameters: $template (string) — Relative template path.
Returns: string
bpsts_directory_status_max_length
Section titled “bpsts_directory_status_max_length”Filters the maximum character length of the status string shown in the members directory before it is truncated. Default: 30.
add_filter( 'bpsts_directory_status_max_length', function( $length ) { return 50;} );Parameters: $length (int) — Truncation limit in characters.
Returns: int
buddypress_status_modify_status_string
Section titled “buddypress_status_modify_status_string”Filters the status text string at the point where it is output in the profile header and members directory. Applied independently to each display context.
add_filter( 'buddypress_status_modify_status_string', function( $status ) { return wp_emoji_replace_smilies( $status );} );Parameters: $status (string) — The current status text.
Returns: string
buddypress_status_unicode_emoji_data
Section titled “buddypress_status_unicode_emoji_data”Filters the full Unicode emoji dataset used by the emoji picker. Applied at the end of buddypress-status-emoji-data.php.
add_filter( 'buddypress_status_unicode_emoji_data', function( $emoji_data ) { // Modify or extend the emoji dataset. return $emoji_data;} );Parameters: $emoji_data (array) — The full emoji data structure.
Returns: array
bp_activity_new_status_action
Section titled “bp_activity_new_status_action”Filters the activity action string (the sentence shown in the activity stream) for activity_status type entries. Applied when building the action string for BuddyPress activity items created by this plugin.
add_filter( 'bp_activity_new_status_action', function( $action, $activity ) { return sprintf( '%s shared a status update.', bp_core_get_userlink( $activity->user_id ) );}, 10, 2 );Parameters: $action (string), $activity (object — BuddyPress activity object).
Returns: string
bp_activity_allowed_tags / bp_activity_action_allowed_tags
Section titled “bp_activity_allowed_tags / bp_activity_action_allowed_tags”The plugin hooks buddypress_status_alter_activity_allowed_tags onto both of these BuddyPress filters (at priority 10) to allow the <i> tag (for Font Awesome icons) inside activity content. You can hook after priority 10 to further modify the tag allowlist.
Action Hooks (Template)
Section titled “Action Hooks (Template)”These actions fire from template partials and give themes or extensions a place to inject HTML.
bpsts_user_profile_status_table_header
Section titled “bpsts_user_profile_status_table_header”Fires inside the <thead> row of the saved-statuses table on the profile Status tab, before the default column headers.
add_action( 'bpsts_user_profile_status_table_header', function() { echo '<th>' . esc_html__( 'Mood', 'my-plugin' ) . '</th>';} );bpsts_user_profile_status_table_footer
Section titled “bpsts_user_profile_status_table_footer”Fires after the last row inside the <tbody> of the saved-statuses table.
add_action( 'bpsts_user_profile_status_table_footer', function() { // Append a summary row.} );bpsts_user_profile_status_table_data
Section titled “bpsts_user_profile_status_table_data”Fires inside each status <tr>, after the default <td> cells, allowing extra columns to be added.
add_action( 'bpsts_user_profile_status_table_data', function( $user_id, $status_text, $status_id ) { echo '<td>' . esc_html( $status_id ) . '</td>';}, 10, 3 );Parameters: $user_id (int), $status_text (string — already cleaned), $status_id (string).
bpsts_after_profile_status_form_btn
Section titled “bpsts_after_profile_status_form_btn”Fires directly after the Add Status button in the status form (public/inc/bpsts-add-status.php). Use this to inject additional UI controls into the form toolbar.
add_action( 'bpsts_after_profile_status_form_btn', function() { echo '<button class="my-extra-btn">Custom Action</button>';} );BuddyPress Integration Hooks
Section titled “BuddyPress Integration Hooks”The plugin registers itself on several BuddyPress hooks. These are standard BuddyPress hooks, not custom to this plugin, but knowing which ones are used helps avoid conflicts.
| WordPress/BP Hook | Method | Notes |
|---|---|---|
bp_include |
buddypress_status_begin_execution |
Plugin bootstrap |
wp |
buddypress_status_add_profile_status_menu |
Registers the Profile Status sub-nav |
bp_before_member_header_meta |
buddypress_status_render_member_status |
Profile header status (non-BuddyBoss) |
bp_before_member_in_header_meta |
buddypress_status_render_member_status |
Profile header status (BuddyBoss Theme only) |
bp_directory_members_item_meta |
buddypress_status_render_directory_status |
Members directory |
bp_member_item_meta |
buddypress_status_render_directory_status |
Members directory (alternate) |
bp_nouveau_members_loop_item |
buddypress_status_render_directory_status |
Nouveau template |
bp_member_members_list_item |
buddypress_status_render_directory_status |
Legacy template |
bp_member_last_active |
buddypress_status_append_to_last_active |
Appends status to “last active” text |
bp_activity_post_form_options |
buddypress_status_update_html (priority 10) |
Status field in activity post form |
bp_activity_post_form_options |
buddypress_status_options_container (priority 60) |
Feeling/activity container |
bp_activity_before_save |
buddypress_status_update_status_type_activity |
Sets activity type |
bp_activity_posted_update |
buddypress_status_update_activity_meta |
Saves mood meta to activity |
bp_groups_posted_update |
buddypress_status_update_activity_meta |
Saves mood meta to group activity |
bp_register_activity_actions |
buddypress_status_register_activity_actions |
Registers activity_status type |
youzify_after_header_cover_head_content |
buddypress_status_render_member_status |
Youzify profile header |

