WordPress

WordPress – Redirecionando usuários para uma página específica

Rate this post

No WordPress existem níveis ou privilégios de usuários, como Administrador, Editor, Autor, etc. Isso é muito útil para definir responsabilidades e permissões distintas ao usuário.

Ao utilizamos os níveis de acesso do WordPress, muitas vezes queremos criar algo personalizado para cada nível e redirecionar para essas páginas específicas quando for logar no WordPress.

Podemos realizar essa tarefa de uma forma bem simples.

Suponhamos que você tenha criado uma página para os tipos de usuários inscritos e autores.

No arquivo functions.php do tema vamos adicionar o nosso código que será uma função. Vamos adicioná-lo no add_filter para substituir o valor padrão dele, que será para onde será redirecionado quando o usuário realizar o login.

Update – 02/10/2017

Para realizar a verificação, utilizaremos a função current_user_can do WordPress, com o qual testaremos se ele pertence a algum nível de acesso ou não.

/**
function custom_redirect_level_user() {
    if (current_user_can('subscriber')) {
        return home_url('/inscrito');
    }
    if (current_user_can('author')) {
       return home_url('/autor');
    }
}
add_filter('login_redirect', 'custom_redirect_level_user');
**/

Explicação do código acima.

  1. Definimos uma função com nome de custom_redirect_level_user;
  2. Com if, utilizamos a função current_user_can e passamos o nível de usuário, que no caso é do assinante (subscriber);
  3. Se for verdade (o usuário é do nível assinante), ele retorna a url para uma página criada no exemplo a página inscrito;
  4. Fecha o primeiro if;
  5. Abre um novo if para realizar o mesmo teste apenas passando um outro nível, no caso do autor (author);
  6. Retorna a url para página autor do nosso exemplo;
  7. Fecha o segundo if;
  8. Fecha a função custom_redirect_level_user;
  9. Adiciona função que criamos no filtro login_redirect;
function custom_redirect_level_user( $redirect_to, $requested_redirect_to, $user) {
	if ( isset( $user->roles ) && is_array( $user->roles ) ) {
		if ( in_array( 'subscriber', $user->roles ) ) {
			$redirect_to = home_url('/inscrito');
		}
		if ( in_array( 'author', $user->roles ) ) {
			$redirect_to = home_url('/autor');
		}
	}
   return  $redirect_to;
}
add_filter('login_redirect', 'custom_redirect_level_user', 10,3);
  1. Define a função custom_redirect_level_user, que recebe 3 parâmetros: o primeiro do redirecionamento, segundo o redirecionamento passado por parâmetro, e terceiro o objeto WP_User ou WP_Error
  2. Verifica se existe as permissões desse usuário, porque pode retornar o WP_Error;
  3. Verifica se tem permissão subscriber;
  4. Se tiver, define a variável $redirect_to para redirecionar para uma área especifica;
  5. Fecha o if da condição da permissão subscriber;
  6. Verifica se tem permissão de author;
  7. Se tiver, define a variável $redirect_to para redirecionar para uma área especifica;
  8. Fecha o if da condição da permissão author;
  9. Fechar o if para verificar se existem permissões;
  10. Retorna a variável $redirect_to;
  11. Fecha if da função custom_redirect_level_user;
  12. Adicione ao add_filter, o gancho login_redirect, a função que criamos, o nível de prioridade de execução, e quantidade de parâmetros que a função que criarmos irá receber.

Dessa forma, quando o usuário logar em nossa página, será redirecionado para a página que informamos de acordo com o nível do usuário.

Gostou do artigo? Deixe seu comentário e compartilhe.

Um abraço.

David CHC

Trabalha com desenvolvimento web há 10 anos, atuou como programador líder do MX Cursos por mais de 8 anos e hoje dedica-se exclusivamente à criação de cursos para a plataforma. Possui vasto conhecimento em PHP, Javascript, HTML5, CSS3, Gulp.js, GIT, MySQL

Ver comentários

  • Boa tarde! Qual a forma mais fácil para implementar uma área de clientes onde cada um terá informações exclusivas? Seria para acompanhamento de processos jurídicos.

    • Paulo, todos podem ser de um grupo de usuário, e os dados serão específicos para cada cliente, se você associar essas informações a o cliente especifico. E quando o cliente logar, só irá visualizar algo relacionado a ele.

  • Deveria funcionar, mas o código não funciona. Fiz vários teste no meu tema.
    Na minha opinião acho que esses códigos deveriam ser testado antes.

    • Oi Carlos. Ele pode ter ficado defasado nas novas versões do WordPress. Qual sua versão? Vou comunicar ao David para que ele possa ver isso e caso tenha mudanças nas versões recentes, atualizar este artigo.

      Abraços.

    • Bom dia Carlos.

      Esse tutorial já tem um tempo, foi alterado a forma que função current_user_can se comportar. Irei atualizar o tutorial pra realizar a função.

      Abraços

    • Thales, você fazer o redirecionamento fazendo alteração do filter registration_redirect, da mesma forma que no tutorial

Posts recentes

O Futuro da Criação de Sites: Integração de IA e Design Gráfico

Nos últimos anos, testemunhamos uma revolução na forma como os sites são criados, impulsionada pelo…

1 mês atrás

Como a IA Está Revolucionando a Animação 3D

A animação 3D tem sido uma forma poderosa de contar histórias e criar experiências visuais…

1 mês atrás

Lista das 20 Melhores Inteligências Artificiais em 2024 para Criação de Imagens (Todas Gratuitas)

Nos últimos anos, a inteligência artificial (IA) tem revolucionado a forma como criamos e editamos…

1 mês atrás

O Papel da Inteligência Artificial na Criação de Sites com WordPress

Nos últimos anos, a integração da inteligência artificial (IA) na criação de sites tem revolucionado…

1 mês atrás

5 Tendências em Edição de Vídeo Impulsionadas pela Inteligência Artificial

Nos últimos anos, a edição de vídeo evoluiu rapidamente com o avanço da tecnologia, e…

1 mês atrás

O Papel Revolucionário da Inteligência Artificial na Dublagem de Filmes

A dublagem de filmes desempenha um papel fundamental na indústria cinematográfica, permitindo que obras de…

1 mês atrás

This website uses cookies.