bbp_buddypress_add_topic_notification( int $topic_id, int $forum_id )
Hooked into the new topic function, this notification action is responsible for notifying topic.
Description
Parameters
- $topic_id
-
(Required)
- $forum_id
-
(Required)
Source
File: bp-forums/notifications.php
function bbp_buddypress_add_topic_notification( $topic_id, $forum_id ) {
// If our temporary variable doesn't exist, stop now.
if ( empty( buddypress()->forums->mentioned_users ) ) {
return;
}
// Get some topic information
$args = array(
'item_id' => $topic_id,
'secondary_item_id' => get_current_user_id(),
'component_name' => bbp_get_component_name(),
'component_action' => 'bbp_new_at_mention',
);
// Grab our temporary variable from bbp_convert_mentions().
$usernames = buddypress()->forums->mentioned_users;
// Get rid of temporary variable.
unset( buddypress()->forums->mentioned_users );
// We have mentions!
if ( ! empty( $usernames ) ) {
// Send @mentions and setup BP notifications.
foreach ( (array) $usernames as $user_id => $username ) {
// Current user is the same user then do not send notification.
if ( $user_id === get_current_user_id() ) {
continue;
}
$args['user_id'] = $user_id;
// If forum is not accesible to user, do not send notification.
$can_access = bbp_user_can_view_forum( array( 'user_id' => $user_id, 'forum_id' => $forum_id, 'check_ancestors' => true ) );
/**
* Filters bbPress' ability to send notifications for @mentions.
*
* @param bool $value Whether or not BuddyPress should send a notification to the mentioned users.
* @param array $usernames Array of users potentially notified.
* @param int $user_id ID of the current user being notified.
* @param int $forum_id ID of forum.
*
* @since BuddyBoss 1.2.9
*
*/
if ( ! apply_filters( 'bbp_forums_at_name_do_notifications', $can_access, $usernames, $user_id, $forum_id ) ) {
continue;
}
bp_notifications_add_notification( $args );
}
}
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.2.8 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.