J'utilise une copie légèrement modifiée du plug-in Gestion des utilisateurs multisites pour que les utilisateurs restent synchronisés sur un réseau multisite, mais ils ont un problème. Lorsqu'un rôle d'utilisateur est mis à jour sur le site principal, le rôle n'est PAS mis à jour sur le sous-site. Pour que tout fonctionne correctement, les rôles d'utilisateur doivent rester synchronisés.
J'ai cherché sans succès, y a-t-il une action à exécuter lorsqu'un utilisateur est mis à jour? Je connais les fonctions/hooks profile_update et wp_update_user, mais aucune de ces méthodes ne fonctionne car le rôle de l'utilisateur est mis à jour via une fonction externe. J'ai donc besoin d'une nouvelle façon de toujours synchroniser les rôles d'utilisateur.
Des idées?
J'ai trouvé un moyen de contourner le problème. Ce n'est pas un "correctif", mais plutôt un moyen de résoudre le problème de la nécessité de rôles d'utilisateur synchronisés. Au lieu d'essayer de faire correspondre tous les rôles d'utilisateur, j'ai décidé de vérifier uniquement les rôles d'utilisateur pour le site principal. voir ma fonction ci-dessous pour savoir comment je l'ai fait:
/*
* Function to check a specified user from a subsite against
* the role of that same user on the main site
*
* @param int $site_to_check the id of the site to check the user's role from
* @param int $user_id the user's id to check
*/
function cgc_check_for_citizen($site_to_check = 1, $user_id = null) {
if(!isset($user_id)) {
return false;
}
$citizen = false;
global $blog_id;
if($blog_id == 1) { // we're on the main site
if(user_can($user_id, 'read_citizen')) {
$citizen = true;
}
} else {
switch_to_blog($site_to_check);
if(user_can($user_id, 'read_citizen')) {
$citizen = true;
}
restore_current_blog();
}
return $citizen;
}
Je pense que si vous ne pouvez pas comprendre, personne ne le peut. ; (
Quoi qu'il en soit, ce plugin met automatiquement à jour les rôles d'utilisateur pour les sous-sites basés sur le site principal. Alors peut-être que vous pouvez extraire le code:
Salut, je ne suis pas sûr si ce plugin va vous aider ou non. Mais essayez-le. Essayez le plugin de scribu approprié-réseau-activation