Existe-t-il une balise conditionnelle qui me permettra d'afficher certains contenus uniquement si l'utilisateur n'est PAS abonné?
la source
Existe-t-il une balise conditionnelle qui me permettra d'afficher certains contenus uniquement si l'utilisateur n'est PAS abonné?
<?php
global $current_user; // Use global
get_currentuserinfo(); // Make sure global is set, if not set it.
if ( ! user_can( $current_user, "subscriber" ) ) // Check user object has not got subscriber role
echo 'User is a not Subscriber';
else
echo 'User is a Subscriber';
?>
Un moyen encore plus simple que @Brady ne vous l'a montré est l'utilisation current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Il existe également un équivalent pour les installations MU, nommé current_user_can_for_blog
:
global $blog_id;
if ( current_user_can_for_blog( $blog_id 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again on this blog!";
Lorsque vous regardez la source des fonctions pour les installations simples ou MU , vous verrez que les deux s'appuient essentiellement sur wp_get_current_user()
, puis vérifient has_cap
. Maintenant, si vous voulez voir d'où vient la casquette, alors la WP_User
classe / l'objet entre en jeu.
Et puis il y a aussi author_can( $GLOBALS['post'], 'capability' );
. Toutes ces fonctions sont à l'intérieur ~/wp-includes/capabilities
juste en dessous les unes des autres.
Maintenant, où est la différence entre current_user_can(_FOR_BLOG)
et user_can
?
user_can()
est le plus récent (depuis 3.1), mais a besoin de l'utilisateur comme objet. Vous pouvez donc l'utiliser dans les cas où vous ne souhaitez pas cibler l'utilisateur actuel, mais certains utilisateurs.current_user_can_*()
est évident.author_can()
vous permet de vérifier les capacités par rapport à un objet de publication. Cet objet n'est disponible que pour les publications déjà présentes dans la base de données. C'est donc principalement pour permettre / refuser l'accès à des fonctionnalités de publication spécifiques.
current_user_can()
page du codex AFAIK n'a pas changé.C'est ce que tu veux dire?
Plus de détails sur les ID pour différents niveaux: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Il existe également la fonction current_user_can (), qui vous permet de désigner des capacités spécifiques pour plus de flexibilité. http://codex.wordpress.org/Function_Reference/current_user_can
la source
To maintain backwards compatibility with plugins that still use the user levels system (although this is very much discouraged), the default Roles in WordPress also include Capabilities that correspond to these levels. User Levels were finally deprecated in version 3.0.