Soporte » Plugins y Hacks » Añadir enlace login logout en cabecera

Viendo 8 respuestas - 1 de 8 (de 8 total)
  • Moderador LGrusin

    (@lgrusin)

    Muchas gracias por responder tan rápido.

    Adaptando el ejemplo a mis necesidades he probado lo siguiente, pero sin éxito.

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$loginout = '<li class="menu-item"><a href="'. wp_logout_url(get_permalink()) .'">Salir</a></li>';
    		$menu .= $loginout;
    		} 
    	else {
    		echo 'No registrado';
    	}
    	return $menu;
    }

    Cuando no estás registrado si te muestra el “No registrado” pero cuando detecta que si, no hace nada y en el html no se ve creado el <li>

    • Esta respuesta fue modificada hace 2 meses, 4 semanas por  J.Parra.
    • Esta respuesta fue modificada hace 2 meses, 4 semanas por  almendron.

    Quiero aclarar que mi intención es tener el “if” para poder meter una u otra clase al texto “Entrar” y “Salir” porque así después les daré estilos diferentes con CSS.

    Moderador almendron

    (@almendron)

    Eso te funcionaría solo si tuvieras un menú.

    Prueba

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$loginout = '<li class="menu-item"><a href="'. wp_logout_url(get_permalink()) .'">Salir</a></li>';
    		echo $loginout;
    		} 
    	else {
    		echo 'No registrado';
    	}
    }
    • Esta respuesta fue modificada hace 2 meses, 4 semanas por  almendron.
    Moderador almendron

    (@almendron)

    Estoy viendo que wp_logout_url( get_permalink() ) es para cuando estás dentro del “loop” que no es el caso.

    Prueba a cambiarlo por wp_logout_url( home_url() ) o simplemente wp_logout_url() y no redireccionas.

    Y haz la prueba con el $menu .= $loginout; y con echo $loginout;

    • Esta respuesta fue modificada hace 2 meses, 4 semanas por  almendron.
    • Esta respuesta fue modificada hace 2 meses, 4 semanas por  almendron.

    Perfecto almendrón, se ve que el problema lo tenia al querer redireccionar a la misma página que estaba, algo no funcionaba y al limpiar un poco me ha funcionado.

    Muchas gracias.

    Dejo el código aquí por si le interesa a alguien, aunque ahora voy a por la “Fase 2” que al lado del Salir aparezca el nombre del usuario conectado y un icono de color para que sea fácil identificar si estas “on o off”.

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$loginout = '<li class="menu-item btn-menu btn-logout"><a href="'. wp_logout_url() .'">Salir</a></li>';
    		echo $loginout;
    		} 
    	else {
    		$loginout = '<li class="menu-item btn-menu btn-login"><a href="'. wp_login_url() .'">Entrar</a></li>';
    		echo $loginout;
    	}
    }
    • Esta respuesta fue modificada hace 2 meses, 4 semanas por  J.Parra.

    Bueno pues ya lo tengo como yo quería. Muchas gracias por vuestra ayuda.

    Os dejo esta imagen de como queda tanto logueado como no.

    Ejemplo del resultado

    Aquí podéis ver la web funcionando:

    Y aquí el código final:

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$cu = wp_get_current_user();
    		$enlace_salir = '<li class="menu-item btn-menu btn-logout"><a href="'. wp_logout_url() .'">Salir - '. $cu->user_login .'<i class="fa fa-power-off fa-jp-ver"></i></a></li>';
    		echo $enlace_salir;
    		} 
    	else {
    		$loginout = '<li class="menu-item btn-menu btn-login"><a href="'. wp_login_url() .'">Entrar<i class="fa fa-power-off fa-jp-roj"></i></a></li>';
    		echo $loginout;
    	}
    }

    Gracias de nuevo. Saludos.

    Moderador almendron

    (@almendron)

    De nada. Un saludo.

Viendo 8 respuestas - 1 de 8 (de 8 total)
  • Debes estar registrado para responder a este tema.