Hooks and Filters Reference
All filters and actions exposed by BuddyPress Schedule Activity. Examples use your-textdomain as a placeholder - replace with your own.
Filters
Section titled “Filters”buddypress_schedule_activity_label
Section titled “buddypress_schedule_activity_label”Changes the text label for the “Scheduled Posts” navigation tab on member profiles.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$label |
string | Default label. On BuddyPress Nouveau includes a <span class="count">N</span> badge. On BuddyBoss plain text only. |
Return: string
add_filter( 'buddypress_schedule_activity_label', function( $label ) { return __( 'My Queue', 'your-textdomain' );} );buddypress_schedule_activity_slug
Section titled “buddypress_schedule_activity_slug”Changes the URL slug for the Scheduled Posts profile tab.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
$slug |
string | schedule-activity |
The BuddyPress nav slug |
Return: string
add_filter( 'buddypress_schedule_activity_slug', function( $slug ) { return 'my-scheduled';} );Warning: Changing this slug changes the URL of the Scheduled Posts page. Existing links (e.g., from the clock icon dropdown) will break. Change this only at initial setup.
buddypress_schedule_activity_frequency
Section titled “buddypress_schedule_activity_frequency”Changes the WordPress cron interval used to check for and publish scheduled activities.
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
$frequency |
string | bp_every_min |
A registered cron schedule key |
Return: string - must be a key registered in cron_schedules
// Use every 5 minutes instead of every minuteadd_filter( 'bp_core_cron_schedules', function( $schedules ) { $schedules['bp_every_five_min'] = array( 'interval' => 300, 'display' => __( 'Every 5 Minutes', 'your-textdomain' ), ); return $schedules;} );
add_filter( 'buddypress_schedule_activity_frequency', function( $frequency ) { return 'bp_every_five_min';} );bp_core_cron_schedules
Section titled “bp_core_cron_schedules”Extend the cron schedule list used by the plugin. The plugin filters this to register bp_every_min. You can add your own intervals here.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$schedules |
array | Array of [ 'interval' => int, 'display' => string ] keyed by schedule name |
Return: array
bp_nouveau_current_user_can
Section titled “bp_nouveau_current_user_can”Controls whether the scheduling UI renders for the current user. The plugin calls apply_filters( 'bp_nouveau_current_user_can', is_user_logged_in(), $capability, $user_id ) to decide whether to load scheduling assets and render the clock icon.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$can |
bool | Whether the user can perform the action. Default: is_user_logged_in(). |
$capability |
string | Capability string being checked |
$user_id |
int | Current logged-in user ID |
Return: bool
// Only show scheduling UI for users with a custom 'premium_member' roleadd_filter( 'bp_nouveau_current_user_can', function( $can, $capability, $user_id ) { $user = get_userdata( $user_id ); if ( $user && in_array( 'premium_member', (array) $user->roles, true ) ) { return true; } return false;}, 10, 3 );bp_activity_time_since
Section titled “bp_activity_time_since”Used by the plugin to replace the “time ago” display on scheduled activities with a “Scheduled for: [date]” string. You can use this filter to customize the display further.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$time_since |
string | The formatted time-since string |
$activity |
object | BuddyPress activity object |
Return: string
bp_core_time_since
Section titled “bp_core_time_since”Used on BuddyBoss Platform and Reign Theme to display the scheduled time instead of a relative “time ago”. Similar to bp_activity_time_since but fires with three parameters.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$output |
string | Formatted time string |
$older_date |
mixed | The activity’s date_recorded value |
$newer_date |
mixed | The current time |
Return: string
Actions
Section titled “Actions”bp_activity_posted_update
Section titled “bp_activity_posted_update”Standard BuddyPress action. The plugin hooks here at priority 9999 to intercept post submissions and apply scheduling logic.
Hook before (priority < 9999) to run before scheduling is applied. Hook after (priority > 9999) to run after:
// Runs after scheduling is applied - check meta to detect scheduled statusadd_action( 'bp_activity_posted_update', function( $content, $user_id, $activity_id ) { $status = bp_activity_get_meta( $activity_id, '_bp_activity_status', true ); if ( 'scheduled' === $status ) { // Do something for newly scheduled activities }}, 10000, 3 );bp_groups_posted_update
Section titled “bp_groups_posted_update”Standard BuddyPress action for group activity posts. The plugin hooks here at priority 10 to handle group scheduling.
Parameters: $content, $user_id, $group_id, $activity_id
buddypress_schedule_activity_publish
Section titled “buddypress_schedule_activity_publish”The plugin’s own cron action, fired every minute. The plugin’s handler runs at priority 10. Hook at a lower priority to run before publishing, or higher priority to run after:
// Run after the plugin publishes activities (priority > 10)add_action( 'buddypress_schedule_activity_publish', function() { // Triggered every minute after scheduled posts are published}, 20 );bp_activity_before_delete
Section titled “bp_activity_before_delete”Standard BuddyPress action. The plugin hooks here to clean up _bp_activity_status and _bp_schedule_activity_title_for_youzify meta when an activity is deleted.
Parameters: $args (array with id key)
youzify_after_adding_wall_post
Section titled “youzify_after_adding_wall_post”Youzify-specific action. The plugin fires this after a post is successfully scheduled when Youzify is active, to trigger Youzify’s wall post handling.
Parameters: $activity_id (int)
This action is only fired when Youzify is active.

