BP_Friends_Friendship::delete_all_for_user( int $user_id )
Delete all friendships and friend notifications related to a user.
Description
Parameters
- $user_id
-
(Required) ID of the user being expunged.
Source
File: bp-friends/classes/class-bp-friends-friendship.php
public static function delete_all_for_user( $user_id ) { global $wpdb; $bp = buddypress(); // Get all friendships, of any status, for the user. $friendships = self::get_friendships( $user_id ); $friend_ids = array(); $friendship_ids = array(); foreach ( $friendships as $friendship ) { $friendship_ids[] = $friendship->id; if ( $friendship->is_confirmed ) { $friend_ids[] = ( $friendship->friend_user_id == $user_id ) ? $friendship->initiator_user_id : $friendship->friend_user_id; } } // Delete the friendships from the database. if ( $friendship_ids ) { $friendship_ids_sql = implode( ',', wp_parse_id_list( $friendship_ids ) ); $wpdb->query( "DELETE FROM {$bp->friends->table_name} WHERE id IN ({$friendship_ids_sql})" ); } // Delete friend request notifications for members who have a // notification from this user. if ( bp_is_active( 'notifications' ) ) { $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->notifications->table_name} WHERE component_name = 'friends' AND ( component_action = 'friendship_request' OR component_action = 'friendship_accepted' ) AND item_id = %d", $user_id ) ); } // Clean up the friendships cache. foreach ( $friendship_ids as $friendship_id ) { wp_cache_delete( $friendship_id, 'bp_friends_friendships' ); } // Loop through friend_ids to scrub user caches and update total count metas. foreach ( (array) $friend_ids as $friend_id ) { // Delete cached friendships. wp_cache_delete( $friend_id, 'bp_friends_friendships_for_user' ); BP_Friends_Friendship::total_friend_count( $friend_id ); } // Delete cached friendships. wp_cache_delete( $user_id, 'bp_friends_friendships_for_user' ); }
Changelog
Version | Description |
---|---|
BuddyPress 1.0.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.