Je viens de réaliser ce qui suit:
// Call the current user info
global $current_user;
// Add a capability
// and set the 2nd argument ($grant) to false
$current_user->add_cap( 'some_cap', false );
Maintenant, j'ai réussi à ajouter une fonctionnalité à l'utilisateur, mais je lui ai refusé l'accès à cette fonctionnalité.
Si je vérifie maintenant avec $current_user->has_cap( 'some_cap' );
, j'obtiendrai une true
en retour. Il en va de même pour current_user_can( 'some_cap' );
car il ne s'agit que d'un wrapper pour les arguments des fonctions has_cap.
Q: Où est utilisé le deuxième argument? Ai-je eu quelque chose de mal?
Je pense que vous l'utilisez correctement. Je pense que c'est en fait un bug dans WordPress.
Lorsque vous faites la même chose pour les rôles $somerole->add_cap( 'some_cap', false );
, cela fonctionne comme prévu.