Se l'utente ha effettuato l'accesso mostra/nascondi elementi
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.
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">';
}}

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)
