Como redirecionar o usuário se não estiver logado no WordPress » Redirecionamento de página
Publicados: 2022-01-02No último post, demonstrei como verificar se o usuário está logado no WordPress. Um motivo comum pelo qual você pode querer verificar se o usuário do WordPress está logado é mostrar páginas diferentes com base no status de login do usuário do WordPress. Se você deseja redirecionar os usuários se não estiverem logados no WordPress, você pode conseguir isso adicionando um trecho de código em seu arquivo functions.php como você verá neste tutorial rápido.
Por que redirecionar usuários no WordPress?
Redirecionar usuários é um requisito importante para a maioria dos sites WordPress. Há diferentes momentos em que você pode querer redirecionar os usuários de uma página para outra. Por exemplo, você pode redirecionar os usuários do WooCommerce após o checkout, ou pode redirecionar o usuário após o registro ou redirecionamento de login no site.
Redirecionar se não estiver logado no WordPress é um dos redirecionamentos mais comuns. Embora existam plugins que podem ajudar a gerenciar o redirecionamento no WordPress, adicionar um pequeno trecho que resolva esse problema é uma solução melhor do que confiar em um plugin de terceiros.
Neste tutorial, vou demonstrar como adicionar um trecho em seu tema ou plugin que cria o redirecionamento para usuários que não estão logados em uma página de sua escolha.
Etapas para redirecionar se não estiver logado no WordPress
Para implementar o redirecionamento se não estiver logado no WordPress, você deve seguir os seguintes passos:
- Faça login no seu site WordPress e navegue até o editor de temas no menu de aparência no menu principal do painel.
- Abra o arquivo functions.php do tema WordPress ativo. Você também pode usar o CPanel ou FTP para acessar o arquivo functions.php do tema ativo. Ele está localizado neste caminho -
wp-root-installation/wp-content/themes/active-theme/functions.php - Crie um gancho de ação que se enganche no gancho de inicialização do administrador –
admin_init
, por exemploadd_action('init', 'redirect_if_not_logged_in')
. Este gancho possui uma função de callback que terá a lógica de verificar se o usuário está logado no WordPress e caso não esteja logado ele é redirecionado para a página que desejamos. - Crie a função de retorno de chamada como mencionamos acima e adicione o código de acordo.
- Salve as alterações e acesse o frontend para testar se os usuários que não estão logados são redirecionados para a página que você adicionou no código.
Vamos demonstrar como você pode adicionar redirecionamento se o usuário não estiver logado no WordPress. Usarei o tema padrão do WordPress na instalação do host local, mas isso pode funcionar para todos os outros sites, independentemente do tema e do ambiente de hospedagem.
O código para adicionar redirecionamento também pode ter outra condição, como na maioria dos casos, quando você deseja restringir o conteúdo de usuários não logados, verifique duas condições:
- Se o usuário estiver logado
- Se o usuário estiver na página onde você tem o conteúdo restrito
Quando essas condições forem atendidas, você deve usar a função wp_redirect() para redirecionar o usuário para a página de sua escolha.
Função WP: wp_redirect()
Esta é uma função de redirecionamento do WordPress que pode ser usada em temas e plugins para redirecionar usuários. A expressão geral desta função é a seguinte:
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
Como você pode ver, a função tem três parâmetros que são os seguintes:
Parâmetro | Descrição |
$location | Este é o URL para onde você deseja redirecionar o usuário. Quando você usa esta função quando o usuário não está logado, você precisa fornecer a URL para a página que redirecionaremos o usuário como você verá no exemplo de código |
$status | Este é um parâmetro opcional e você pode não vê-lo usado com frequência, mas é o código de status de resposta HTTP a ser usado. Padrão '302' e você pode usar 301 para um redirecionamento permanente. Tenha cuidado ao usar esse parâmetro com a opção de redirecionamento 301. |
$x_redirect_by | Este é simplesmente o aplicativo que aplica o redirecionamento e isso raramente altera o valor padrão que é o WordPress |
Ação de redirecionamento de modelo se o usuário não estiver logado
Para redirecionar o usuário que não está logado no WordPress agora você pode usar a função wp_redirect com a verificação condicional se o usuário está logado da seguinte forma:
add_action( 'template_redirect', 'redirect_if_user_not_logged_in'); function redirect_if_user_not_logged_in() { if ( is_page('slug || ID') && ! is_user_logged_in() ) { //exemplo pode ser is_page(23) onde 23 é o ID da página wp_redirect( 'http://sua-página-de-redirecionamento-aqui'); exit;// nunca se esqueça desta saída pois é muito importante para o wp_redirect() ter a saída / morrer } }
Substitua o slug da verificação condicional pela sua respectiva página e também substitua a URL de redirecionamento no código acima e adicione-a ao functions.php para redirecionar os usuários que não estão logados na URL dessa página.
Ação de redirecionamento de inicialização do administrador se o usuário não estiver conectado
Como alternativa, você pode conectar o admin_init
em vez do template_redirect
para redirecionar o usuário se não estiver logado no WordPress.
O código deve ser o mesmo, exceto pelo ponto de adicionar o gancho de ação. O código deve ser o seguinte:
add_action( 'admin_init', 'redirect_if_user_not_logged_in'); function redirect_if_user_not_logged_in() { if ( !is_user_logged_in() && is_page('slug') ) { wp_redirect( 'http://sua-página-de-redirecionamento-aqui'); saída; } }
Quando adicionamos este código ao tema padrão do WordPress functions.php e adicionamos o slug para a página que queremos criar o redirecionamento e a URL para o destino, funciona perfeitamente como você pode ver:
Pensamentos finais
Quando você deseja criar um redirecionamento se o usuário não estiver logado no WordPress, primeiro você precisa verificar se o usuário está logado usando o código que compartilhei nesse post e, em seguida, use a função wp_redirect() para adicionar o novo destino onde os usuários devem ser redirecionado se acessar uma determinada página ou postagem.
Este código pode ser adicionado ao arquivo functions.php do seu tema ou você pode usá-lo como parte do seu plugin WordPress personalizado. É importante sempre lembrar que, ao usar a função wp_redirect , você NUNCA deve esquecer de adicionar a saída, pois essa função não sai automaticamente.
Como desenvolvedor de plug-ins do WordPress, você também pode considerar outro plug-in de redirecionamento do WordPress wp_safe_redirect() que fornece uma maneira melhor de redirecionamento, pois verifica se o host do parâmetro $location é permitido.
Artigos semelhantes
- Como remover ou desativar comentários no WooCommerce
- Como verificar se o plugin está ativo no WordPress [3 MANEIRAS]
- Como criar uma área de widget personalizada no WordPress passo a passo
- Como ocultar um produto no WooCommerce ou ocultar produtos por categoria ou funções
- Como alterar o link de retorno à loja no Woocommerce
- Como criar funções de usuário personalizadas do WordPress
- Como obter a função de usuário atual no WordPress e funções de exibição
- Como corrigir erro de tipo não capturado: wp.template não é uma função
- Guia completo para usar ganchos personalizados do WordPress do_action & apply_filters com exemplos
- Como redirecionar usuários após login bem-sucedido no WordPress sem usar um plug-in
- WooCommerce Logout sem confirmação: Como remover “Tem certeza de que deseja sair?”
- Como redirecionar para o carrinho após o login no WooCommerce
- Snippet PHP de logout do WooCommerce para criar botão de logout
- Como criar um aviso de administração do WooCommerce para o plug-in – Desenvolvimento WooCommerce
- Como remover foi adicionado ao seu carrinho Mensagem WooCommerce
- Como adicionar texto após o preço no WooCommerce » Adicionar sufixo de preço
- Como alterar o procedimento de check-out no WooCommerce