Code: Select all
function asd_change_user_role_sitewide($user, $role) {
global $wpdb;
if ( is_multisite() ) {
$current_blog = $wpdb->blogid;
$blog_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" );
foreach ( $blog_ids as $blog_id ) {
switch_to_blog( $blog_id );
$roles = new WP_Roles();
$roles_names = $roles->get_names();
$wp_user = get_user_by('login', $user);
if (!empty($roles_names[$role]) && !empty($wp_user)) {
foreach ($roles_names as $slug => $name) {
$wp_user->remove_role( $slug );
}
$wp_user->add_role( $role );
}
restore_current_blog();
unset($roles, $wp_user);
}
}
}
function asd_change_user_role_sitewide_hook() {
asd_change_user_role_sitewide('USERNAME_to_MOD', 'ROL_to_SWITCH_to');
}
add_action('init','asd_change_user_role_sitewide_hook');