wp_delete_user()

wp_delete_user()という関数があって、これはインクルードしないと使えないのだが、
マルチサイトには対応していない。
なので、コードを引っ張って来て、修繕する

// 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 {
$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) );

$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}'”);
}

完全なバグ。赤い2行を加える。

コメント

タイトルとURLをコピーしました