Existe-t-il un moyen d'attribuer des fonctionnalités personnalisées à l'utilisateur, je ne parle PAS du rôle de l'utilisateur.
J'exécute un blog à plusieurs auteurs où j'ai attribué le rôle d'utilisateur "Auteur" à tous mes auteurs. Mais j'ai besoin d'un plugin ou d'un fragment function.php qui supprime une capacité (pas le rôle) de USER-ID
Je ne souhaite pas attribuer/révoquer des fonctionnalités à un rôle (administrateur/auteur, etc.). Je souhaite les attribuer/révoquer à un utilisateur spécifique à l'aide de cet ID utilisateur.
J'ai un blog avec 50 auteurs supposés. Un auteur a des capacités pour publier, commenter, éditer, mettre à jour, envoyer des courriels, partager, etc., mais lorsqu'un utilisateur abuse de l'une de ces fonctionnalités, je souhaite révoquer cette fonctionnalité de cet utilisateur.
Mais si je décidais d'utiliser des rôles, je devrais créer autant de rôles d'utilisateur avec des fonctionnalités différentes, telles que
Existe-t-il un moyen de révoquer une capacité de l'utilisateur (et non de USER-ROLE)?
Enfin, j'ai trouvé un moyen de le faire en utilisant WP_user
Class.
Extrait pour ajouter/supprimer une fonctionnalité à/d'un utilisateur spécifique -
//to remove capability from user
$user = new WP_User( $user_id );
$user->remove_cap( 'can_email');
//to add capability to user
$user = new WP_User( $user_id );
$user->add_cap( 'can_email');
Il y a une fonction spéciale dans capacités.php dans la classe wp_user
pour attribuer/révoquer la capacité à/de l'utilisateur.
Si vous souhaitez attribuer des fonctionnalités à des rôles existants ou (des rôles personnalisés déjà créés), il existe des variables globales appelées $ wp_roles.
//suppose you have a custom role called 'architect' and you want to add a capability called `can access architect zone`
global $wp_roles;
$wp_roles->add_cap( 'architect', 'can_access_architect_zone' );
//add to default roles
$wp_roles->add_cap( 'administrator', 'monitor_architect' );
vous pouvez créer un nouveau rôle avec les fonctionnalités requises, puis lui attribuer l'utilisateur.
vous pouvez utiliser add_role () et transmettre les fonctionnalités nécessaires.