bp_activity_add_user_favorite( int $activity_id, int $user_id )
Add an activity feed item as a favorite for a user.
Description
Parameters
- $activity_id
-
(Required) ID of the activity item being favorited.
- $user_id
-
(Required) ID of the user favoriting the activity item.
Return
(bool) True on success, false on failure.
Source
File: bp-activity/bp-activity-functions.php
function bp_activity_add_user_favorite( $activity_id, $user_id = 0 ) { // Fallback to logged in user if no user_id is passed. if ( empty( $user_id ) ) { $user_id = bp_loggedin_user_id(); } $my_favs = bp_get_user_meta( $user_id, 'bp_favorite_activities', true ); if ( empty( $my_favs ) || ! is_array( $my_favs ) ) { $my_favs = array(); } // Bail if the user has already favorited this activity item. if ( in_array( $activity_id, $my_favs ) ) { return false; } // Add to user's favorites. $my_favs[] = $activity_id; // Update the total number of users who have favorited this activity. $fav_count = bp_activity_get_meta( $activity_id, 'favorite_count' ); $fav_count = !empty( $fav_count ) ? (int) $fav_count + 1 : 1; // Update the users who have favorited this activity. $users = bp_activity_get_meta( $activity_id, 'bp_favorite_users', true ); if ( empty( $users ) || ! is_array( $users ) ) { $users = array(); } // Add to activity's favorited users. $users[] = $user_id; // Update user meta. bp_update_user_meta( $user_id, 'bp_favorite_activities', array_unique( $my_favs ) ); // Update activity meta bp_activity_update_meta( $activity_id, 'bp_favorite_users', array_unique( $users ) ); // Update activity meta counts. if ( bp_activity_update_meta( $activity_id, 'favorite_count', $fav_count ) ) { /** * Fires if bp_activity_update_meta() for favorite_count is successful and before returning a true value for success. * * @since BuddyPress 1.2.1 * * @param int $activity_id ID of the activity item being favorited. * @param int $user_id ID of the user doing the favoriting. */ do_action( 'bp_activity_add_user_favorite', $activity_id, $user_id ); // Success. return true; // Saving meta was unsuccessful for an unknown reason. } else { /** * Fires if bp_activity_update_meta() for favorite_count is unsuccessful and before returning a false value for failure. * * @since BuddyPress 1.5.0 * * @param int $activity_id ID of the activity item being favorited. * @param int $user_id ID of the user doing the favoriting. */ do_action( 'bp_activity_add_user_favorite_fail', $activity_id, $user_id ); return false; } }
Changelog
Version | Description |
---|---|
BuddyPress 1.2.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.