Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

greg_kaippert

Alterar link de LOGIN para cada tipo de usuário

Recommended Posts

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á.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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'),
'menu-item-status' => 'publish'));
}
if(current_user_can('subscriber')) {
wp_update_nav_menu_item($menu_id, 0, array(
'menu-item-title' => __('LOGIN'),
'menu-item-url' => site_url('http://localhost/wordpress/login-cliente'),
'menu-item-status' => 'publish'));
}
if(current_user_can('contributor')) {
wp_update_nav_menu_item($menu_id, 0, array(
'menu-item-title' => __('LOGIN'),
'menu-item-url' => site_url('http://localhost/wordpress/login-tecnico'),
'menu-item-status' => 'publish'));
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>'));
}
else{
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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Alessandro Bodão
      Boa noite irmandade!
       
      Ando reparando de alguns anos pra cá, uma forte tendência em que sites bem dinâmicos e interativos transitam de uma página pra outra sem que a outra página se quer passe por um processo de carregamento, você clica, simplesmente acontece algumas transições nos elementos da página, e de repente, você está em outra página, outro url. De forma suave, nada é carregado, apenas algo acontece e você já está em outra página.
       
      Gostaria de saber como isso é feito pra aplicar em um site que estou desenvolvendo, se é algum framework, alguma ferramenta além do JavaScript...
       
      Trouxe um belo exemplo: https://www.traffic.productions/
       
      Se você chegou até aqui, agradeço desde já!
    • Por eduardodsilvaq
      Erro retornado no console do navegador: 400 bad request
      Rastreei o erro ate essa parte no arquivo admin-ajax.php mudando o valor de resposta de 0 para 1:
      if ( is_user_logged_in() ) { // If no action is registered, return a Bad Request response. if ( ! has_action( "wp_ajax_{$action}" ) ) { wp_die( '0', 400 ); } Tentei de tudo, mas infelizmente nao entendi oq realmente significa esse login e como ele funciona.
      Vi algumas pessoas tendo problema com o host, no meu caso estou usando hostinger. (Nao creio que isso e relevante mas ta ai.)
       
      Código utilizado:
       
      Javascript
      function formValidation() { event.preventDefault(); var name = document.forms["contactForm"]["name"].value; var email = document.forms["contactForm"]["email"].value; var subject = document.forms["contactForm"]["subject"].value; var message = document.forms["contactForm"]["message"].value; document.getElementById('status').innerHTML = ''; var errorMessage="<span class='error'>All fields are required.</span>"; var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if (name.trim() == "" ||email.trim() == "" || subject.trim() == "" || message.trim() == "") { document.getElementById('status').innerHTML = errorMessage; return false; } if (!regEx.test(email)) { var errorMessage="<span class='error'>Invalid email.</span>"; document.getElementById('status').innerHTML = errorMessage; return false; } processContactSubmit(); return true; } function processContactSubmit() { var request = new XMLHttpRequest(); request.open("POST", "/wp-admin/admin-ajax.php?action=process_contact_form"); request.onreadystatechange = function() { if(this.readyState === 4 && this.status === 200) { document.getElementById("status").innerHTML = this.responseText; } }; var myForm = document.getElementById("contactForm"); var formData = new FormData(contactForm); request.send(formData); } functions.php
      add_action('wp_ajax_nopriv_process_contact_form', 'process_contact_form'); add_action('wp_ajax_process_contact_form', 'process_contact_form'); //Retirar essa parte para error no console, no contrario ira aparecer no navegador o numero 0. function process_contact_form() { $to = "Recipient Email Address"; $subject = $_POST["subject"]; $headers = "Testing"; $message = $_POST["message"]; $attachments = ""; $sent = wp_mail($to, $subject, $message, $headers, $attachments); if (! $sent) { echo "<span class='error'>Problem in sending mail.</span>"; } else { echo "<span class='success'>Hi, thank you for the message.</span>"; } wp_die(); } Html
      <form name="contactForm" id="contactForm" method="post" onsubmit="return formValidation()" action=""> <p class="comment-form-comment"><textarea id="message" name="message" required="" placeholder="" aria-required="true"></textarea></p> <p class="comment-form-author"><label for="author">Nome: </label> <input id="name" name="name" required="" size="30" type="text" value=" " /></p> <p class="comment-form-author about"><label for="author">Assunto: </label> <input id="subject" name="subject" required="" size="40" type="text" value=" " /></p> <p class="comment-form-email"><label for="email">Email: </label> <input id="email" name="email" required="" size="30" type="text" value="" /></p> <p class="form-submit"><input id="submit" class="submit" name="email_contato" type="submit" value="Enviar" /></p> </form>&nbsp; <h3><div id="status"></div></h3>  
    • Por Fernando Rafael
      Bom dia, estou baixando arquivos que estão em uma hospedagem própria para serem acessados por um aplicativo que estou desenvolvendo (consigo fazer normalmente utilizando os comandos citado mais a baixo), porém os arquivos ficam salvos na pasta padrão de DOWNLOADS do Android, minha intenção não é ficar acumulando estes arquivos no aparelho, ou esperar que o usuário exclua manualmente, gostaria em salva-los em uma pasta interna do aplicativo para que seja possível excluir automaticamente pelo próprio aplicativo, já tentei como alternativa excluir esses arquivos da pasta DOWNLOADS, mas não consegui...
       
      Segue o código que estou usando para baixar os arquivos, queria adaptar para baixar direto na pasta interna do aplicativo, ou como alternativa caso isso não seja possível, conseguir excluir esses arquivos da pasta DOWNLOADS do Android...
       
      String url = "https://www.site.com/arquivo.pdf"; //Arquivo que vou baixar DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setDescription("Alguma descrição"); request.setTitle("Algum titulo"); //A notificação de conslusão só esta disponível a partir da API 11 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); } //Salvando o arquivo no diretório de Downloads request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "arquivo.pdf"); DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); manager.enqueue(request);  
    • Por AlexandreHenrique
      Olá pessoal. preciso de uma ajuda com o meu projeto de upload.
      O projeto de upload roda no IIS + Php;
      Tenho um script que ta enviando  o arquivo para o diretório correto.
      O problema é que ao tentar acessar esse arquivo via URL, o anexo não abre  e exibe a mensagem abaixo.
       

      Notei que o arquivo ao cair no DIR, ele entra sem permissões (vi em propriedades), se eu editar o mesmo alterando as permissões, ele carrega pela url do meu site.
      Quero que o arquivo enviado pelo script caia no DIR correta com as devidas permissões pra eu poder ler no navegador via URL;
       
      Já tentei resolver de toda forma mas nao tive sucesso;.
      No Apache isso é mais simples, mas no IIS ta complicado;
       
       
       
      Alguem pode me dá uma dica?
    • Por belann
      Olá!
       
      Eu tentar logar no wordpress que instalei em minha máquina usando localhost e logando com wp-login.php, está dando uma mensagem que o banco de dados não pode ser acessado.
      Estou usando o xampp. O que pode estar errado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.