Skip to content

Hooks and Filters Reference

All filters and actions exposed by BuddyPress Schedule Activity. Examples use your-textdomain as a placeholder - replace with your own.


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' );
} );

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.


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 minute
add_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';
} );

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


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' role
add_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 );

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


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


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 status
add_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 );

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


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 );

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-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.