Definition:
function wp_delete_user( $id, $reassign = 'novalue' ) {}
Remove user and optionally reassign posts and links to another user.
If the $reassign parameter is not assigned to an User ID, then all posts will be deleted of that user. The action ‘delete_user’ that is passed the User ID being deleted will be run after the posts are either reassigned or deleted. The user meta will also be deleted that are for that User ID.
Parameters
- int $id: User ID.
- int $reassign: Optional. Reassign posts and links to new User ID.
Return values
returns:True when finished.
Defined actions
- delete_user
do_action('delete_user', $id);
Source code
function wp_delete_user( $id, $reassign = 'novalue' ) { global $wpdb; $id = (int) $id; // allow for transaction statement do_action('delete_user', $id); if ( 'novalue' === $reassign || null === $reassign ) { $post_ids = $wpdb->get_col( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_author = %d", $id) ); if ( $post_ids ) { foreach ( $post_ids as $post_id ) wp_delete_post($post_id); } // Clean links $link_ids = $wpdb->get_col( $wpdb->prepare("SELECT link_id FROM $wpdb->links WHERE link_owner = %d", $id) ); if ( $link_ids ) { foreach ( $link_ids as $link_id ) wp_delete_link($link_id); } } else { $reassign = (int) $reassign; $wpdb->update( $wpdb->posts, array('post_author' => $reassign), array('post_author' => $id) ); $wpdb->update( $wpdb->links, array('link_owner' => $reassign), array('link_owner' => $id) ); } clean_user_cache($id); // FINALLY, delete user if ( !is_multisite() ) { $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id = %d", $id) ); $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->users WHERE ID = %d", $id) ); } else { $level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = $id AND meta_key = '{$level_key}'"); }
3601
No comments yet... Be the first to leave a reply!