web-dev-qa-db-fra.com

PAS au rôle d'utilisateur

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

REMARQUE -

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.

MISE À JOUR - 08/01/2012

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

  • ne peut pas être envoyé
  • ne peut pas envoyer et commenter
  • ne peut pas envoyer et commenter & poster etc.

Existe-t-il un moyen de révoquer une capacité de l'utilisateur (et non de USER-ROLE)?

1
amit

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.

1
amit

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' );
0
Dipesh KC

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.

0
pcarvalho