Comment obtenir le rôle d'utilisateur d'un site spécifique sur un réseau multisite?
Supposons que l'utilisateur est un abonné du site parent et qu'il administre son propre sous-domaine. Existe-t-il un moyen de renvoyer uniquement le rôle sur le site parent ou par un identifiant de blog spécifique?
Ex: get_wpmu_user_role($user_id, $blog_id);
Vous pouvez utiliser soit WP_User
:
$wp_user_obj = new WP_User(
// $user_id
get_current_user_id(),
// $name | login, ignored if $user_id is set
'',
// $blog_id
get_current_blog_id()
);
Ou get_users()
:
$get_users_obj = get_users(
array(
'blog_id' => get_current_blog_id(),
'search' => get_current_user_id()
)
);
Comme ils sont tous les deux blog_id
perceptif, si vous le fournissez.
Le premier retournera un objet WP_User
, les rôles sont accessibles comme ceci:
// array of roles
$wp_user_obj->roles
// access the first or only
$wp_user_obj->roles[0]
Ce dernier retournera un tableau d'objets WP_User
, en réalité un seul objet, car la recherche d'un user_id
ne peut renvoyer qu'un seul objet, les rôles sont accessibles comme suit:
// array of roles
$get_users_obj[0]->roles
// access the first or only
$get_users_obj[0]->roles[0]
Une autre idée, je ne l’ai jamais fait moi-même, mais si vous avez un identifiant de connexion partagé et que vous souhaitez obtenir les informations de l’utilisateur actuel, cela pourrait également fonctionner:
switch_to_blog( $blog_id );
$current_user_at_different_blog = wp_get_current_user();
restore_current_blog();
wp_get_current_user()
renvoie un objet WP_User
, donc les informations sont accessibles comme:
// array of roles
$current_user_at_different_blog->roles
// access the first or only
$current_user_at_different_blog->roles[0]
Dernier point, mais non le moindre, il y a current_user_can_for_blog()
qui peut être utilisé comme ceci:
current_user_can_for_blog( $blog_id, $capability );
La page du codex dit:
Si l'utilisateur actuel a une capacité ou un rôle pour un blog donné.
Mais je fortement suspect comme current_user_can()
it ne devrait pas être utilisé pour les rôles , mais les vérifications des capacités sont utiles et utiles.