Suporte » Plugins » wp_redirect não funciona na pagina de login

  • Resolvido Allan da Silva

    (@allanweb019)


    estou tentando fazer uma área restrita e fiz uma pagina de login personalizada mas assim q efetuo o login queria mandar o usuário para outra pagina mas não acontece bada a pagina fica em branco e não da nem erro

    <?php
    /*
    Template Name: Login
    */
    ?>
    <?php if (!is_user_logged_in()) : ?>
    <?php get_header(); ?>
    	<?php
    	get_template_part( 'topo', 'page' );
    
    				/*
    				 Só exibe o formulário se o usuário não estiver logado
    				*/
    
    				?>
    				<div class="wrap960">
    
    				<div class="txt-pet">
    					Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere sapien vitae erat feugiat dignissim. Sed a lectus lacus.
    					Suspendisse bibendum, odio vel ullamcorper lacinia, neque mauris mattis magna, ut ullamcorper arcu nisi ornare nibh.
    				</div>
    				<?php /* Form nativo do WP, aí só muda o CSS */ wp_login_form(); ?>
    				<form method="post" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" id="registerform" name="registerform">
    			        <p>
    			            <label>Username<br />
    			            <input type="text" tabindex="10" size="20" value="" class="input" id="user_login" name="user_login" />
    			            </label>
    			        </p>
    		        <p>
    			            <label>E-mail<br />
    			            <input type="text" tabindex="20" size="25" value="" class="input" id="user_email" name="user_email" />
    			            </label>
    			        </p>
    			        <p id="reg_passmail">A password will be e-mailed to you.</p>
    			        <br class="clear">
    			        <p class="submit">
    			            <?php do_action('login_form', 'register'); ?>
    			            <input type="submit" tabindex="100" value="Register" class="button-primary" id="wp-submit" name="wp-submit"                                           />
    			            <input type="hidden" name="redirect_to" value="/" />
    			            <input type="hidden" name="cookie" value="1" />
    			        </p>
    			    </form>
    				</div>
    
    <?php get_footer(); ?>
    <?php
    				else : // Se estiver logado
    				?>
    				 <?php  wp_redirect( home_url() ); exit; ?>
    
    				<?php
    				endif;
    				?>

    segue o código se alguém puder me ajudar

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Allan primeiro acho que vc pode usar a função wp_login_form() para gerar o formulário de login; https://codex.wordpress.org/Function_Reference/wp_login_form

    E para fazer o redirect após o login use um hook para isso no seu functions.php, veja abaixo:

    add_action( 'admin_init', 'redireciona_non_admin_users' );
    function redireciona_non_admin_users() {
    	if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
    		wp_redirect( home_url() );
    		exit;
    	}
    }

    No exemplo acima ele direciona para a home todos usuários que não sejam administradores. Mas você pode fazer outra regra para o redirecionamento.

    Criador do tópico Allan da Silva

    (@allanweb019)

    Já resolvido dessa maneira mesmos obrigado Everaldo

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘wp_redirect não funciona na pagina de login’ está fechado para novas respostas.