Droits de modification la politique de confidentialité multisite WordPress
Tout le monde connaît WordPress et la plupart des utilisateurs n’utilisent qu’un très faible pourcentage de ses capacités. L’une d’entre elles est l’option multisite.
Dans cet article, je vais vous expliquer ce qu’est le multisite et comment régler le problème de l’impossibilité de modifier la page de politique de confidentialité sur un site WordPress en utilisant la fonctionnalité multisite, pour les administrateurs ou éditeurs.
Qu’est-ce que le multisite de WordPress ?
Un “multisite” sous WordPress, ou “réseau multisite“, est une fonctionnalité qui permet à une seule installation de WordPress de gérer plusieurs sites distincts. Chacun de ces sites aura son propre contenu, ses propres paramètres et ses propres utilisateurs.
Les thèmes et extensions sont autorisés sur le réseau par le super administrateur et peuvent être activés ou non sur chaque sous-site.
Cette fonction peut être pratique pour les organisations, les entreprises, les établissements qui souhaitent gérer plusieurs sites à partir d’un même tableau de bord.
Prenons par exemple une agence immobilière nationale. Chaque identité locale pourra avoir son propre site et interagir de manière indépendante. Les sites seront donc accessibles avec des sous-domaines, par exemple : nom-de-la-ville.monagenceimmo.com.
Les rôles utilisateurs du multisite de WordPress
J’ai précédemment écrit un article sur les différents rôles et capacités de WordPress.
Dans un site multisite, nous retrouvons les mêmes rôles qu’un site WordPress basique.
Cependant, le rôle du super administrateur vient s’ajouter et il modifie quelques éléments, notamment les droits de modification de votre politique de confidentialité en multisite WordPress.
Qu’est-ce que le super administrateur ?
Le super administrateur est celui qui va gérer votre “portail” et tous les sous-sites. C’est lui qui aura la responsabilité de votre réseau. Il ne peut y en avoir qu’un seul.
Ainsi, le super administrateur pourra :
- Créer des sous-sites
- Paramétrer les sous-sites
- Ajouter les plugins et thèmes autorisés sur le réseau
- Éditer et modifier la politique de confidentialité du portail (du réseau)
- Nommer des administrateurs
Et l’administrateur dans tout ça ?
- L’administrateur n’aura accès qu’au site du réseau où le super administrateur lui aura donné accès.
- Un réseau pourra avoir plusieurs administrateurs.
Illustrons cela avec un petit schéma :
- Alex est notre super administrateur. Il aura accès à tous les sites du réseau
- Il nommera les administrateurs Julie, Paul, Simon et Émilie comme administrateurs sur un ou plusieurs sites du réseau WordPress.
- Chacun aura accès uniquement au site où son profil aura été rattaché.
Modifier politique de confidentialité en multisite WordPress
L’avantage d’un multisite, c’est que votre politique de confidentialité peut être identique pour tous les sous-sites. C’est celle du portail qu’il faudra donc utiliser.
Cependant, il existe une petite subtilité. Si les politiques de confidentialité d’un site WordPress sont administrables et modifiables par les administrateurs ou les éditeurs, dans le cas d’un multisite, la politique ne sera modifiable que par le super administrateur.
Il nous faudra donc passer par un ajout de capacité dans le fichier functions.php.
add_action('map_meta_cap', 'politique_confidentialite_multisite_inumedia', 1, 4);
function politique_confidentialite_multisite_inumedia($caps, $cap, $user_id, $args)
{
if (!is_user_logged_in()) return $caps; //si l'utilisateur n'est pas connecté,on ne fait rien
if ('manage_privacy_options' === $cap) {
$manage_name = is_multisite() ? 'manage_network' : 'manage_options';
$caps = array_diff($caps, [ $manage_name ]);
}
return $caps;
}
Quelques explications :
- On utilise le hook map_meta_cap qui permettra d’ajuster les capacités des utilisateurs avant qu’elles ne soient vérifiées.
- Dans ma fonction, je vais utiliser 4 paramètres : $caps qui correspond à un tableau des capacités, $cap qui correspond à la capacité spécifique qui est vérifiée, l’$user_id qui correspond à l’identifiant de l’utilisateur dont on va vérifier les capacités et les arguments supplémentaires $args.
- On vérifie si l’utilisateur actuel est connecté
- On s’assure qu’il a la capacité manage_privacy_options (gestion des options de confidentialité).
- S’il a cette capacité, on vérifie que l’on est sur un multisite
- Si nous sommes sur un multisite, on définit $manage_name à manage_network. Sinon, pour une installation monosite, on définit $manage_name à manage_options.
- On modifie le tableau
$caps
. “array_diff ” permet de supprimer la capacité représentée par $manage_name du tableau $caps.
En conclusion
Le multisite est une fonctionnalité puissante d’un site WordPress. Cependant, des petites subtilités persistent par rapport à un monosite. Subtilités qu’il vous faudra connaitre.
Demandez votre devis pour le développement de nouvelles fonctionnalités