Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia galera! Meu sistema é o seguinte, tem três tipos de usuários, Clientes(subscriber), técnicos(contributor) e obviamente Administrador. Quando qualquer usuário logar, será redirecionado para a página principal INDEX.PHP, porquê lá tem uns vídeos para eles assistirem primeiro. Já logado e no INDEX.PHP, terá um LINK de LOGIN no MENU, se estiver logado como cliente, irá redirecionar para página dos clientes, e se estiver logado como técnico, será redirecionado para pagina dos técnicos, e se caso não estiver logado, irá redirecionar para página de login mesmo wp-login.php.
Tentei algo assim, mas não deu certo:
/ mudar url do login /
if(!is_user_logged_in()){
update_option('login','http://localhost/wordpress/wp-login.php');
}
elseif(current_user_can('subscriber')){
update_option('login','http://localhost/wordpress/?page_id=305');
}
elseif(current_user_can('contributor')){
update_option('login','http://localhost/wordpress/?page_id=301');
}
Usei DEFINE tbm, mas sem sucesso.
Agradeço desde já.
Eu tentei isso também, mas não funcionou. Mas a minha lógica é mais ou menos assim:
if ( !is_user_logged_in() ) {
wp_update_nav_menu_item($menu_id, 0, array(
'menu-item-title' => __('LOGIN'),
'menu-item-url' => site_url('[http://localhost/wordpress/wp-login.php'),](http://localhost/wordpress/wp-login.php%27),%C2%A0)
'menu-item-status' => 'publish'));
} 'menu-item-title' => __('LOGIN'),
'menu-item-url' => site_url('[http://localhost/wordpress/login-cliente'),](http://localhost/wordpress/login-cliente%27),%C2%A0)
'menu-item-status' => 'publish'));
} 'menu-item-title' => __('LOGIN'),
'menu-item-url' => site_url('[http://localhost/wordpress/login-tecnico'),](http://localhost/wordpress/login-tecnico%27),%C2%A0)
'menu-item-status' => 'publish'));
}Consegui resolver. Como a maioria dos temas, o menu fica no header.php, o tema que eu uso, o menu fica no header-home.php, mesmo local do header.php.
Resolvi da seguinte maneira.
No ficheiro header-home.php, localizei o código abaixo:
if ( has_nav_menu( "home_menu" ) ) {
wp_nav_menu(array('theme_location'=>'home_menu','depth'=>0,'fallback_cb' =>false,'container'=>'','container_class'=>'main-menu','menu_id'=>'menu-main','menu_class'=>'main-nav','link_before' => '<span>', 'link_after' => '</span>','items_wrap'=> '<ul id="%1$s" class="%2$s">'.$onepage_menu.'%3$s</ul>'));
}echo '<ul>'.$onepage_menu.'</ul>';
}
E substitui por esse aqui:
<ul>
<li><a href="#home">HOME<br><span style="font-size:13px;">Início da página</span></a></li>
<li><a href="#about-us">SOBRE NÓS<br><span style="font-size:13px;">Quem Somos</span></a></li>
<li><a href="#services">FISCAL DIGITAL<br><span style="font-size:13px;">Nossos serviços</span></a></li>
<li><a href="#contact">CONTATO<br><span style="font-size:13px;">Contato</span></a></li>
<?php
if(!is_user_logged_in()){
echo '
<li><a href="wp-login.php">LOGIN<br><span style="font-size:13px;">Entrar no Sistema</span></a></li>'; }
if(current_user_can('subscriber')){
echo '
<li><a href="?page_id=305">LOGIN<br><span style="font-size:13px;">Entrar no Sistema</span></a></li>'; }
if(current_user_can('contributor')){
echo '
<li><a href="?page_id=301">LOGIN<br><span style="font-size:13px;">Entrar no Sistema</span></a></li>'; }
if(current_user_can('diretor')){
echo '
<li><a href="wp-admin">LOGIN<br><span style="font-size:13px;">Entrar no Sistema</span></a></li>'; }
?>
</ul>
Eu tentei fazer com função própria do wordpress, mas como não obtive êxito, tive que fazer com html e php padrão mesmo.
Caro,
Sua condição está errada.
Você pode usar função: http://stackoverflow.com/questions/13404284/wordpress-capabilities-and-current-user-can-in-functions-php
[ ] 's