Se l'utente ha effettuato l'accesso mostra/nascondi elementi

27 lug 2015, 11:45:25
Visualizzazioni: 50.2K
Voti: 0

Voglio controllare al caricamento della pagina se l'utente ha effettuato l'accesso o meno e nascondere di conseguenza la maschera di login che ho programmato. C'è un motivo per cui sto usando questa maschera di login invece di reindirizzare al login standard di WordPress.

L'idea era di utilizzare functions.php:

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

Questo codice funziona, ma la mia pagina smette di caricarsi dopo quello. E se inserisco il tutto in una funzione ottengo un errore - L'errore di parsing è stato risolto da Answer01 di Brad Dalton.

In breve: Come posso mostrare/nascondere determinati elementi a seconda che un utente abbia effettuato l'accesso o meno?

modifica01: Ecco le parti prima del codice che ho postato sopra:

<?php

function modify_user_contact_methods($user_contact) {
    // Aggiungi nuovi campi
    $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">';
 }
?>

modifica02: Ho provato ad utilizzare il codice fornito sotto con l'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">';
 }
}

Ma ora la pagina appare così: - risolto in modifica03

modifica03: Ho utilizzato una soluzione temporanea sostituendo loop_start con loop_end. Tuttavia come ho detto prima, la sezione che voglio nascondere viene ancora visualizzata.

modifica04: WP_DEBUG.. vediamo.. - nessun risultato rilevante relativo al problema

modifica05: Ecco il riepilogo della situazione attuale:

  • La pagina si carica, tutti gli elementi vengono visualizzati, ok.
  • jQuery apre e chiude la Login-Box se l'utente non ha effettuato l'accesso, ok.
  • Il contenuto è nascosto quando l'utente ha effettuato l'accesso per evitare confusione, NON RISOLTO.

Quindi essenzialmente è solo la funzione che non fa quello che dovrebbe fare.

Ecco un link al sito web: easy2work.at

Quello che voglio è nascondere il "Login Aziendale | Accedi" una volta che l'utente ha effettuato l'accesso e visualizzare qualcos'altro lì sopra che è pronto per essere implementato.

6
Commenti

Leggi il messaggio di errore di sintassi, manca qualcosa prima della chiamata alla tua funzione, come una virgola, punto e virgola, parentesi, punto, ecc.

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

Ho già provato a usare add_action('init', loginCheck); stesso errore.

theHubi theHubi
27 lug 2015 12:00:08

Senza vedere il codice, è impossibile dire cosa sta causando esattamente l'errore. Pubblica la sezione di codice interessata in un [modifica] per favore. Non postare codice nei commenti perché è illeggibile

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

abilita WP_DEBUG a true per vedere qual è il problema interno che si trova lì dopo.

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

La modifica è molto migliore. Per favore fai una domanda specifica alla volta, è la regola e eviterà anche confusione

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

Sto ancora facendo la stessa domanda che ho fatto un'ora fa. È solo che è stata aggiunta così tanta informazione intorno che stava diventando confuso, persino per me. Perciò ho abbreviato la domanda semplicemente rimuovendo le parti irrilevanti o risolte indicando la soluzione.

theHubi theHubi
27 lug 2015 13:41:48
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 1
2

Il tuo codice non funzionerà nel file functions del tema a meno che non includa un hook.

Prova qualcosa come:

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 lug 2015 12:01:35
Commenti

Quindi il sito si sta caricando di nuovo, ma nulla è cambiato riguardo al problema che ho menzionato. Inoltre, il sito si ferma al caricamento dopo l'header (vedi sopra)

theHubi theHubi
27 lug 2015 12:12:59

Ecco la situazione attuale: il sito si carica, jQuery fa quello che dovrebbe. Solo questa funzione non vuole funzionare. Aggiungerò edit05 e cercherò di essere il più preciso possibile.

theHubi theHubi
27 lug 2015 13:05:20