Soporte » WordPress Avanzado » Error en código que permite loguearte o ver tu cuenta si te haz logeado

  • Resuelto pentyfive

    (@pentyfive)


    Estoy creando un shortcode para colocarlo en el menú (barra superior de mi pagina) para que cuando no hallas iniciado sesión o si no tienes cuenta al dar click en el texto te lleve a la pagina de login (Pagina de inicio de sesión) y diga iniciar sesión, pero si ya haz iniciado sesión te diga Hola #nombre# ! y cuando des click te lleve a una pagina distinta donde puedes ver tu cuenta.
    El código que e creado es este pero tiene fallas y no se como lograr que me de el resultado deseado:(No se mucho de código)

    function Kraze_mostrar_conectado( $atts ) {
     global $current_user, $user_login;
           wp_get_current_user();
     add_filter('widget_text', 'apply_shortcodes');
     if ($user_login)
      return  '<a href="https://pentyfive.com/mi-cuenta/">'¡Hola ' . $current_user->display_name</a>';
     else
      return  '<a href="https://pentyfive.com/iniciar-sesion/">Acceder</a>';
    }
    add_shortcode( 'mostrar_conectado', 'Kraze_mostrar_conectado' );

    Imagen de mi short code puesto que no funciona

    RESULTADO DESEADO:
    Cuando no haz iniciado sesion o no te haz registrado:
    Imagen
    Cuando ya haz iniciado sesión:
    Imagen 2

    • Este debate fue modificado hace 1 mes, 3 semanas por pentyfive.
    • Este debate fue modificado hace 1 mes, 3 semanas por pentyfive.

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Moderador Jose Luis

    (@jose64)

    Hola.

    Aquí tienes el código corregido:

    function Kraze_mostrar_conectado( $atts ) {
    	global $current_user, $user_login;
    	wp_get_current_user();
    	add_filter('widget_text', 'apply_shortcodes');
    	
    	if ($user_login) {
    		return  ('<a href="https://pentyfive.com/mi-cuenta/">¡Hola ' . $current_user->display_name . '!</a>');
    	} else {
    		return  ('<a href="https://pentyfive.com/iniciar-sesion/">Acceder</a>');
    	}
    }
    	
    add_shortcode( 'mostrar_conectado', 'Kraze_mostrar_conectado' );

    Tienes que revisar la sintaxis de los condicionales, ese era uno de los problemas. Te dejo información al respecto:

    Manual de PHP > Referencia del lenguaje > Estructuras de Control

    Recuerda marcar como resueltos los debates cuando así sea, de esta forma nos ayudas a mantener el foro al día.

    Iniciador del debate pentyfive

    (@pentyfive)

    ¡Gracias Jose Luis! Aun falla algo, si pudieras ayudarme a pulir el código seria genial, ocurre que al estar logeado el texto toma el color global que es el morado pero cuando la condición de ‘acceder’ se activa(cuando no haz iniciado sesión) entonces por alguna razón se ve de color negro y como la barra es negra no se ve nada, como le podría cambiar de color aumentándole algo en el shortcode? Algo parecido podría ser: <h1 style="color: #3a3a3a ;">Esto es un titulo</h1>
    Imagen de lo que se desea corregir:
    Imagen sin logear 1
    Imagen 2 (Ya logeado)

    • Esta respuesta fue modificada hace 1 mes, 3 semanas por pentyfive.
    Iniciador del debate pentyfive

    (@pentyfive)

    Okey, ya se resolvió el problema, Gracias por la ayuda 😉

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.