从网络中删除用户并从所有站点中删除。

原型

wpmu_delete_user( int $id )

参数

$id (int) (Required) 用户ID。

返回值

(bool)  如果用户被删除则为True,否则为false。

源文件

路径:wp-admin/includes/ms.php

<?php
...
function wpmu_delete_user( $id ) {
	global $wpdb;
	if ( ! is_numeric( $id ) ) {
		return false;
	}
	$id = (int) $id;
	$user = new WP_User( $id );
	if ( !$user->exists() )
		return false;
	// Global super-administrators are protected, and cannot be deleted.
	$_super_admins = get_super_admins();
	if ( in_array( $user->user_login, $_super_admins, true ) ) {
		return false;
	}
	/**
	 * Fires before a user is deleted from the network.
	 *
	 * @since MU (3.0.0)
	 *
	 * @param int $id ID of the user about to be deleted from the network.
	 */
	do_action( 'wpmu_delete_user', $id );
	$blogs = get_blogs_of_user( $id );
	if ( ! empty( $blogs ) ) {
		foreach ( $blogs as $blog ) {
			switch_to_blog( $blog->userblog_id );
			remove_user_from_blog( $id, $blog->userblog_id );
			$post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $id ) );
			foreach ( (array) $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 );
			}
			restore_current_blog();
		}
	}
	$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 );
	/** This action is documented in wp-admin/includes/user.php */
	do_action( 'deleted_user', $id, null );
	return true;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wpmu_delete_user/