Existe alguma etiqueta condicional que me permita exibir determinado conteúdo apenas se o usuário NÃO for um assinante?
fonte
Existe alguma etiqueta condicional que me permita exibir determinado conteúdo apenas se o usuário NÃO for um assinante?
<?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';
?>
Uma maneira ainda mais simples do que a @Brady mostrou é o uso current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Também há um equivalente para instalações de MU, chamado 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!";
Ao olhar a fonte das funções para instalações únicas ou de MU , você verá que ambas dependem basicamente wp_get_current_user()
e, em seguida, fazem uma verificação has_cap
. Agora, se você quiser ver de onde vem o limite, a WP_User
classe / objeto entra no jogo.
Então há também author_can( $GLOBALS['post'], 'capability' );
. Todas essas funções estão dentro ~/wp-includes/capabilities
logo abaixo uma da outra.
Agora, onde está a diferença entre current_user_can(_FOR_BLOG)
e user_can
?
user_can()
é o mais novo (desde 3.1), mas precisa do usuário como objeto. Portanto, você pode usá-lo em casos em que não deseja segmentar o usuário atual, mas alguns usuários.current_user_can_*()
é obvio.author_can()
permite verificar recursos em um objeto de postagem. Este objeto está disponível apenas para postagens que já estão no banco de dados. Portanto, é principalmente para permitir / negar o acesso a recursos específicos de postagem.
current_user_can()
página de codex AFAIK não mudou.É isto que você quer dizer?
Mais detalhes sobre os IDs para diferentes níveis: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Há também a função current_user_can (), que permite indicar recursos específicos para maior flexibilidade. http://codex.wordpress.org/Function_Reference/current_user_can
fonte
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.