Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_delete_user [ WordPress Function ]

wp_delete_user ( $id, $reassign = 'novalue' )
Parameters:
  • (int) $id User ID.
  • (int) $reassign Optional. Reassign posts and links to new User ID.
Returns:
  • (bool) True when finished.
Defined at:



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.

Source


<?php
function wp_delete_user$id$reassign 'novalue' ) {
    global 
$wpdb;

    
$id = (int) $id;
    
$user = new WP_User$id );

    
// allow for transaction statement
    
do_action('delete_user'$id);

    if ( 
'novalue' === $reassign || null === $reassign ) {
        
$post_types_to_delete = array();
        foreach ( 
get_post_types( array(), 'objects' ) as $post_type ) {
            if ( 
$post_type->delete_with_user ) {
                
$post_types_to_delete[] = $post_type->name;
            } elseif ( 
null === $post_type->delete_with_user && post_type_supports$post_type->name'author' ) ) {
                
$post_types_to_delete[] = $post_type->name;
            }
        }

        
$post_types_to_delete apply_filters'post_types_to_delete_with_user'$post_types_to_delete$id );
        
$post_types_to_delete implode"', '"$post_types_to_delete );
        
$post_ids $wpdb->get_col$wpdb->prepare"SELECT ID FROM $wpdb->posts WHERE post_author = %d AND post_type IN ('$post_types_to_delete')"$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) );
    }

    
// FINALLY, delete user
    
if ( is_multisite() ) {
        
remove_user_from_blog$idget_current_blog_id() );
    } else {
        
$meta $wpdb->get_col$wpdb->prepare"SELECT umeta_id FROM $wpdb->usermeta WHERE user_id = %d"$id ) );
        foreach ( 
$meta as $mid )
            
delete_metadata_by_mid'user'$mid );

        
$wpdb->delete$wpdb->users, array( 'ID' => $id ) );
    }

    
clean_user_cache$user );

    
// allow for commit transaction
    
do_action('deleted_user'$id);

    return 
true;
}
?>

Examples [ wp-snippets.com ]

Top Google Search Results

More ...

0 User Note(s)

None yet. Be the first!

Add New ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics