bp_activity_remove_user_favorite( int $activity_id, int $user_id )
Remove an activity feed item as a favorite for a user.
Description
Parameters
- $activity_id
-
(Required) ID of the activity item being unfavorited.
- $user_id
-
(Required) ID of the user unfavoriting the activity item.
Return
(bool) True on success, false on failure.
Source
File: bp-activity/bp-activity-functions.php
1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 | function bp_activity_remove_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 ); $my_favs = array_flip ( ( array ) $my_favs ); // Bail if the user has not previously favorited the item. if ( ! isset( $my_favs [ $activity_id ] ) ) { return false; } // Remove the fav from the user's favs. unset( $my_favs [ $activity_id ] ); $my_favs = array_unique ( array_flip ( $my_favs ) ); // Update the total number of users who have favorited this activity. $fav_count = bp_activity_get_meta( $activity_id , 'favorite_count' ); // 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 (); } if ( in_array( $user_id , $users ) ) { $pos = array_search ( $user_id , $users ); unset( $users [ $pos ] ); } // Update activity meta bp_activity_update_meta( $activity_id , 'bp_favorite_users' , array_unique ( $users ) ); if ( ! empty ( $fav_count ) ) { // Deduct from total favorites. if ( bp_activity_update_meta( $activity_id , 'favorite_count' , (int) $fav_count - 1 ) ) { // Update users favorites. if ( bp_update_user_meta( $user_id , 'bp_favorite_activities' , $my_favs ) ) { /** * Fires if bp_update_user_meta() 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 unfavorited. * @param int $user_id ID of the user doing the unfavoriting. */ do_action( 'bp_activity_remove_user_favorite' , $activity_id , $user_id ); // Success. return true; // Error updating. } else { return false; } // Error updating favorite count. } else { return false; } // Error getting favorite count. } else { 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.