Dacă utilizatorul este autentificat afișează/ascunde ceva

27 iul. 2015, 11:45:25
Vizualizări: 50.2K
Voturi: 0

Vreau să verific la încărcarea paginii dacă utilizatorul este autentificat sau nu și să ascund masca de autentificare pe care am programat-o în consecință. Există un motiv pentru care folosesc această mască de autentificare în loc să redirecționez către pagina standard de autentificare WordPress.

Ideea era să folosesc functions.php:

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

Acest cod funcționează, dar pagina mea se oprește din încărcare după aceea. Iar dacă împachetez totul într-o funcție primesc o eroare - Eroarea de parsare a fost rezolvată de Answer01 de Brad Dalton.

Pe scurt: Cum pot afișa/ascunde anumite elemente în funcție de autentificarea unui utilizator?

edit01: Iată părțile dinaintea codului postat mai sus:

<?php

function modify_user_contact_methods($user_contact) {
    // Adaugă câmpuri noi
    $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">';
 }
?>

edit02: Am încercat să folosesc codul furnizat mai jos cu 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">';
 }
}

Totuși acum pagina arată astfel: - rezolvat în edit03

edit03: Am folosit o soluție temporară prin schimbarea loop_start cu loop_end. Cu toate acestea, așa cum am spus mai devreme, secțiunea pe care vreau să o ascund este încă afișată.

edit04: WP_DEBUG.. să vedem.. - nicio constatare relevantă legată de problemă

edit05: Iată rezumatul situației actuale:

  • Pagina se încarcă, toate elementele sunt afișate, verificat.
  • jQuery deschide și închide Login-Box-ul dacă utilizatorul nu este autentificat, verificat.
  • Conținutul este ascuns când utilizatorul este autentificat pentru a preveni confuzia, NEREZOLVAT.

Deci, în esență, doar funcția nu face ceea ce ar trebui să facă.

Iată un link către website: easy2work.at

Ceea ce vreau este să ascund "Firmen-Login | Anmelden" odată ce utilizatorul este autentificat și să afișez altceva acolo care este pregătit pentru implementare.

6
Comentarii

Citește mesajul de eroare de sintaxă, lipsește ceva înainte de apelul funcției tale, cum ar fi o virgulă, punct și virgulă, paranteză, punct etc.

Pieter Goosen Pieter Goosen
27 iul. 2015 11:50:32

Am încercat deja să folosesc add_action('init', loginCheck);. Aceeași eroare.

theHubi theHubi
27 iul. 2015 12:00:08

Fără a vedea codul, este imposibil de spus exact ce cauzează eroarea. Postează secțiunea afectată a codului într-un [edit] te rog. Nu posta cod în comentarii deoarece este ilizibil.

Pieter Goosen Pieter Goosen
27 iul. 2015 12:00:31

activează WP_DEBUG la true pentru a vedea care este problema internă care se află acolo ulterior.

Mayeenul Islam Mayeenul Islam
27 iul. 2015 12:31:24

Editarea este mult mai bună. Te rog să pui o singură întrebare specifică la un moment dat, aceasta este politica și nu va cauza confuzie.

Pieter Goosen Pieter Goosen
27 iul. 2015 13:36:14

Încă pun aceeași întrebare pe care am pus-o acum o oră. Doar că a fost adăugată atât de multă informație în jurul ei încât a început să devină confuză, chiar și pentru mine. Prin urmare, am scurtat întrebarea prin simpla eliminare a părților irelevante sau rezolvate prin indicarea soluției.

theHubi theHubi
27 iul. 2015 13:41:48
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 1
2

Codul tău nu va funcționa în fișierul de funcții al temei decât dacă include un hook.

Încearcă ceva de genul:

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 iul. 2015 12:01:35
Comentarii

Deci site-ul se încarcă din nou, însă nimic nu s-a schimbat în legătură cu problema menționată de mine. De asemenea, site-ul se oprește din încărcare după antet (vezi mai sus)

theHubi theHubi
27 iul. 2015 12:12:59

Deci iată situația actuală: Site-ul se încarcă, jQuery face ceea ce trebuie. Doar această funcție nu vrea să funcționeze. Voi adăuga edit05 și voi încerca să fiu cât mai exact posibil.

theHubi theHubi
27 iul. 2015 13:05:20