bp_activity_format_notifications( string $action, int $item_id, int $secondary_item_id, int $total_items, string $format = 'string', int $id )
Format notifications related to activity.
Description
Parameters
- $action
-
(Required) The type of activity item. Just 'new_at_mention' for now.
- $item_id
-
(Required) The activity ID.
- $secondary_item_id
-
(Required) In the case of at-mentions, this is the mentioner's ID.
- $total_items
-
(Required) The total number of notifications to format.
- $format
-
(Optional) 'string' to get a BuddyBar-compatible notification, 'array' otherwise.
Default value: 'string'
- $id
-
(Optional) The notification ID.
Return
(string) $return Formatted @mention notification.
Source
File: bp-activity/bp-activity-notifications.php
function bp_activity_format_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string', $id = 0 ) { $action_filter = $action; $return = false; $activity_id = $item_id; $user_id = $secondary_item_id; $user_fullname = bp_core_get_user_displayname( $user_id ); switch ( $action ) { case 'new_at_mention': $action_filter = 'at_mentions'; $link = bp_activity_get_permalink($item_id); $title = sprintf( __( '@%s Mentions', 'buddyboss' ), bp_get_loggedin_user_username() ); $amount = 'single'; if ( (int) $total_items > 1 ) { $text = sprintf( __( 'You have %1$d new mentions', 'buddyboss' ), (int) $total_items ); $amount = 'multiple'; } else { $text = sprintf( __( '%1$s mentioned you', 'buddyboss' ), $user_fullname ); } break; case 'update_reply': $link = bp_get_notifications_permalink(); $title = __( 'New Activity reply', 'buddyboss' ); $amount = 'single'; if ( (int) $total_items > 1 ) { $link = add_query_arg( 'type', $action, $link ); $text = sprintf( __( 'You have %1$d new replies', 'buddyboss' ), (int) $total_items ); $amount = 'multiple'; } else { $link = add_query_arg( 'rid', (int) $id, bp_activity_get_permalink( $activity_id ) ); $text = sprintf( __( '%1$s commented on one of your updates', 'buddyboss' ), $user_fullname ); } break; case 'comment_reply': $link = bp_get_notifications_permalink(); $title = __( 'New Activity comment reply', 'buddyboss' ); $amount = 'single'; if ( (int) $total_items > 1 ) { $link = add_query_arg( 'type', $action, $link ); $text = sprintf( __( 'You have %1$d new comment replies', 'buddyboss' ), (int) $total_items ); $amount = 'multiple'; } else { $link = add_query_arg( 'crid', (int) $id, bp_activity_get_permalink( $activity_id ) ); $text = sprintf( __( '%1$s replied to one of your activity comments', 'buddyboss' ), $user_fullname ); } break; } if ( 'string' == $format ) { /** * Filters the activity notification for the string format. * * This is a variable filter that is dependent on how many items * need notified about. The two possible hooks are bp_activity_single_at_mentions_notification * or bp_activity_multiple_at_mentions_notification. * * @since BuddyPress 1.5.0 * @since BuddyPress 2.6.0 use the $action_filter as a new dynamic portion of the filter name. * * @param string $string HTML anchor tag for the interaction. * @param string $link The permalink for the interaction. * @param int $total_items How many items being notified about. * @param int $activity_id ID of the activity item being formatted. * @param int $user_id ID of the user who inited the interaction. */ $return = apply_filters( 'bp_activity_' . $amount . '_' . $action_filter . '_notification', '<a href="' . esc_url( $link ) . '">' . esc_html( $text ) . '</a>', $link, (int) $total_items, $activity_id, $user_id ); } else { /** * Filters the activity notification for any non-string format. * * This is a variable filter that is dependent on how many items need notified about. * The two possible hooks are bp_activity_single_at_mentions_notification * or bp_activity_multiple_at_mentions_notification. * * @since BuddyPress 1.5.0 * @since BuddyPress 2.6.0 use the $action_filter as a new dynamic portion of the filter name. * * @param array $array Array holding the content and permalink for the interaction notification. * @param string $link The permalink for the interaction. * @param int $total_items How many items being notified about. * @param int $activity_id ID of the activity item being formatted. * @param int $user_id ID of the user who inited the interaction. */ $return = apply_filters( 'bp_activity_' . $amount . '_' . $action_filter . '_notification', array( 'text' => $text, 'link' => $link ), $link, (int) $total_items, $activity_id, $user_id ); } /** * Fires right before returning the formatted activity notifications. * * @since BuddyPress 1.2.0 * * @param string $action The type of activity item. * @param int $item_id The activity ID. * @param int $secondary_item_id The user ID who inited the interaction. * @param int $total_items Total amount of items to format. */ do_action( 'activity_format_notifications', $action, $item_id, $secondary_item_id, $total_items ); return $return; }
Changelog
Version | Description |
---|---|
BuddyPress 1.5.0 | 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.