Si el usuario está conectado mostrar/ocultar elementos

27 jul 2015, 11:45:25
Vistas: 50.2K
Votos: 0

Quiero verificar al cargar la página si el usuario está conectado o no y ocultar la máscara de inicio de sesión que programé en consecuencia. Hay una razón por la que estoy usando dicha máscara de inicio de sesión en lugar de redirigir al inicio de sesión estándar de WordPress.

La idea era usar functions.php:

if ( is_user_logged_in() ) {
    echo '<li id="text-2" style="display:none;">';
} else {
    echo '<li id="text-2">'; }

Este código funciona, pero mi página deja de cargar después de eso. Y si empaqueto todo en una función obtengo un error - El error de análisis ha sido resuelto por Answer01 de Brad Dalton.

En resumen: ¿Cómo muestro/oculto ciertos elementos dependiendo de si un usuario está conectado o no?

edición01: Aquí están las partes antes del código que publiqué arriba:

<?php

function modify_user_contact_methods($user_contact) {
    // Agregar nuevos campos
    $user_contact['uidnumber'] = 'UID-Nummer';
    return $user_contact;
}

add_filter('user_contactmethods', 'modify_user_contact_methods');

?>
<?php
if ( is_user_logged_in() ) {
    echo '<li id="text-2" style="display:none;">';
} else {
    echo '<li id="text-2">';
 }
?>

edición02: He intentado usar el código proporcionado abajo con el action_hook:

add_action( 'loop_start', 'loginCheck' );
function loginCheck() {
if ( is_user_logged_in() ) {
    echo '<li id="text-2" class="hidden">';
} else {
    echo '<li id="text-2">';
 }
}

Sin embargo ahora la página se ve así: - resuelto en edición03

edición03: He usado una solución temporal cambiando loop_start por loop_end. Sin embargo, como dije antes, la sección que quiero ocultar todavía se está mostrando.

edición04: WP_DEBUG.. veamos.. - sin hallazgos relevantes relacionados con el problema

edición05: Aquí está el resumen de la situación actual:

  • La página está cargando, todos los elementos se muestran, verificado.
  • jQuery abre y cierra el Login-Box si el usuario no está conectado, verificado.
  • El contenido está oculto cuando el usuario está conectado para evitar confusiones, SIN RESOLVER.

Entonces esencialmente es solo la función que no hace lo que se supone que debe hacer.

Aquí hay un enlace al sitio web: easy2work.at

Lo que quiero es ocultar el "Firmen-Login | Anmelden" una vez que el usuario está conectado y mostrar algo más arriba que está listo para ser implementado.

6
Comentarios

Lee el mensaje de error de sintaxis, falta algo de sintaxis antes de la llamada a tu función, como una coma, punto y coma, paréntesis, punto, etc.

Pieter Goosen Pieter Goosen
27 jul 2015 11:50:32

Ya intenté usar add_action('init', loginCheck);. El mismo error.

theHubi theHubi
27 jul 2015 12:00:08

Sin ver el código, es imposible decir exactamente qué está causando el error. Publica la sección afectada del código en un [edit] por favor. No publiques código en los comentarios ya que no se puede leer.

Pieter Goosen Pieter Goosen
27 jul 2015 12:00:31

habilita WP_DEBUG a true para ver cuál es el problema interno que reside allí.

Mayeenul Islam Mayeenul Islam
27 jul 2015 12:31:24

La edición es mucho mejor. Por favor haz una pregunta específica a la vez, es la política y también evitará confusiones.

Pieter Goosen Pieter Goosen
27 jul 2015 13:36:14

Sigo haciendo la misma pregunta que hice hace una hora. Simplemente se había añadido tanta información alrededor que se estaba volviendo confuso, incluso para mí. Por lo tanto, he acortado la pregunta eliminando simplemente las partes irrelevantes o resueltas señalando la solución.

theHubi theHubi
27 jul 2015 13:41:48
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 1
2

Tu código no funcionará en el archivo de funciones del tema a menos que incluya un hook.

Prueba algo como:

add_action( 'loop_start', 'your_function' );
function your_function() {

if ( is_user_logged_in() ) {
    echo '<li id="text-2" class="hide">';
} else {
    echo '<li id="text-2">'; 
}}
27 jul 2015 12:01:35
Comentarios

Así que el sitio está cargando nuevamente, pero no ha cambiado nada respecto al problema que mencioné. Además, el sitio deja de cargar después del encabezado (ver arriba)

theHubi theHubi
27 jul 2015 12:12:59

Así que aquí está la situación actual: El sitio está cargando, jQuery hace lo que se supone que debe hacer. Solo que esta función no quiere funcionar. Agregaré edit05 e intentaré ser lo más preciso posible.

theHubi theHubi
27 jul 2015 13:05:20