Redirecionamento após registro de usuário
-
Olá,
Após o novo usuário fazer o registro no site, eu quero que ele seja redirecionado para a pagina home. Mas somente após o registro, pois já tenho redirecinamento após o login/logout através do tema.
Como posso fazer isto? Via plugin? Código?
Agradeço qualquer ajuda.
kklo- Este tópico foi modificado 7 anos, 6 meses atrás por Mário Valney.
-
Olá, tudo bem?
Basta usar o filtro registration_redirect, como na documentação.
add_filter( 'registration_redirect', 'my_redirect_home' ); function my_redirect_home( $registration_redirect ) { return home_url(); }
Oi, Mário
Fiz exatamente isto, colei este código no functions.php do tema-childtheme, mas não funcionou
Talvez tenha algo sobrescrevendo.
Primeiro tenta aumentar a prioridade do filtro:add_filter( 'registration_redirect', 'my_redirect_home', 99 );
Abraços
Nada ainda.
o arquivo vazio e coloquei assim:
<?php add_filter( 'registration_redirect', 'my_redirect_home', 99 ); add_filter( 'registration_redirect', 'my_redirect_home' ); function my_redirect_home( $registration_redirect ) { return home_url(); }
Continua sem funcionar
Mario,
Existe algum plugin que envia um email para o usuário após o registro e também faça o redirecionamento para a página home?
O tema já existe um redirecionamento após login/logout, mas não para após registro.
Você r egistrou o filtro duas vezes. Testa só com o:
add_filter( 'registration_redirect', 'my_redirect_home', 99 );
(remove o que não tem 99)Além disso, verifica se já não tem um redirecionamento forçado.
Tem o link do registro para eu dar uma olhada?Existe algum plugin que envia um email para o usuário após o registro e também faça o redirecionamento para a página home?
Não sei… só procurando e testando.
Mas para quê plugin se estamos usando o filtro?A menos que seu site faça o registro de outras formas(por isso pedi o link ali em cima) e aí teria que modificar seu tema/plugin.
Abraços
O link do registro é http://www.cctur.com.br/funcao-registro-usuario/
Mas só atraves deste link tu consegue verificar?
Pronto. O que está acontecendo é que o seu tema/site possui um formulário de registro próprio e então não passa pelo filtro do WordPress.
Se der uma olhada no formulário, ele submete para a própria página, então provavelmente a função de registro está lá.
Minha sugestão seria: junto com o código PHP que imprime o alerta “Sucesso!.Registro bem-sucedido” você colocar um javascript para redirecionar. Algo assim:
<script> setTimeout(function() { window.location.replace("<?php echo home_url(); ?>"); }, 3000); </script>
Assim ele volta para essa página, mas redireciona após 3 segundos (para dar tempo de ler o alerta).
Obrigado Mario,
Agora dá erro. Já coloquei este script em vários lugares e não deu certo. Desculpe, mas não sou programador, só copio e colo 🙁
Não abusando da tua boa vontade, tomei a liberdade de colocar o codigo aqui que
consta a mensagem e onde está o erro.static function _update_info_user($register_user,$echo = true){ $html = ''; $register_as = STInput::request('register_as'); switch($register_as){ case "normal": $html = '<div class="alert alert-success"><button data-dismiss="alert" type="button" class="close"><span aria-hidden="true">×</span></button>'; $html .= "<strong>".__( 'Success!.' , ST_TEXTDOMAIN )."</strong>".__( 'Registration successful...' , ST_TEXTDOMAIN ); $html .= '</div>'; STUser::_send_admin_new_register_user($register_user); break; case "partner": $data_certificates = array(); $validate = true; update_user_meta($register_user,'st_pending_partner','1'); update_user_meta($register_user,'st_certificates',$data_certificates); STUser::_send_admin_new_register_partner($register_user); STUser::_send_customer_register_partner($register_user); $html = '<div class="alert alert-success"><button data-dismiss="alert" type="button" class="close"><span aria-hidden="true">×</span></button>'; $html .= "<strong>".__( 'Success!.' , ST_TEXTDOMAIN )."</strong>".__( 'Registration successful! Please wait for administrator\'s approval' , ST_TEXTDOMAIN ); $html .= '</div>'; break; } if($echo) echo $html; else return $html; } <script> setTimeout(function() { window.location.replace("<?php echo home_url(); ?>"); }, 3000); </script>
Agradeço
Você não tem que se desculpar por não ter conhecimento técnico. O que você precisa fazer é perguntar para tirarmos a dúvida.
Voltando ao seu problema, parece que existem dois casos de registro: partner e normal. Se o redirecionamento for válido para todos, basta acrescentar o código na variável $html.
Ou seja, retira o que acrescentou agora e adiciona antes de
if($echo)
o seguinte código:$html .= '<script>'; $html .= 'setTimeout(function() { window.location.replace("' . home_url() . '"); }, 3000);'; $html .= '</script>';
Acho que isso deve resolver.
Funcionou,
Muito obrigado mesmo.
Só falta um plugin para confirmação de email no ato do registro, tens alguma indicação?Não. Mas talvez não consiga um que funcione, pois o seu tema é quem registra o usuário, então ele pode ter feito de alguma forma que não dê suporte.
Agora mudando um pouco de assunto: essas modificações foram feitas diretamente no Tema, né? É um tema próprio ou baixado/comprado? Pergunto isso pois ao receber atualizações do Tema (nunca devemos deixar de receber atualizações) você perderá essas alterações.
Se for o caso, recomendo dar uma olhada nos Temas Filhos:
– https://codex.wordpress.org/pt-br:Temas_Filhos
– https://mariovalney.com/como-criar-um-tema-filho-child-theme-para-wordpress/Abraços
coloquei no tema filho, para evitar perda, inclusive das traduções. O tema é comprado do Forestheme
Obrigado, te devo umas cervasEntendi. Bem… se o tema é comprado entre em contato com o suporte deles, afinal você pagou por ele.
Não damos suporte a nada comprado aqui, por favor leia as Regras do Fórum.
Abraços
- O tópico ‘Redirecionamento após registro de usuário’ está fechado para novas respostas.