Redirecționare WooCommerce după deconectare [Ghid final]

Publicat: 2022-01-10

Redirecționare WooCommerce după deconectare Redirecționarea WooCommerce după deconectare poate fi creată folosind codul din această postare pentru a redirecționa clienții WooCommerce către o anumită pagină sau postare sau o adresă URL externă după deconectare. În acest articol, vreau să demonstrez cum să creez această redirecționare cu cod. Dacă ați ratat tutorialul meu anterior, am ilustrat cum să creați codul scurt pentru pagina de deconectare WooCommerce, care poate fi un loc bun pentru a începe înainte de a crea redirecționarea de deconectare WooCommerce.

Există plugin-uri care pot fi folosite pentru a crea redirecționări de deconectare WooCommerce, dar nu sunt atât de bune pe cât ar trebui; Lucrez la o soluție mai bună care vă va ajuta să gestionați redirecționarea WooCommerce după deconectare, la fel ca pluginul pe care l-am creat pentru deconectarea WooCommerce după finalizare.

Dacă doriți să fiți un early adopter, vă rugăm să luați legătura cu mine, astfel încât să vă pot adăuga pe listă, deoarece pluginul va fi gata în 2 săptămâni de astăzi.

Pentru această postare, vreau să împărtășesc abordarea codului pe care o puteți utiliza pentru a crea o redirecționare eficientă a deconectarii WooCommerce, dar pluginul va avea mai multe opțiuni condiționate care extind opțiunile implicite de redirecționare așa cum am realizat în pluginul WooCommerce Redirect după finalizare.

Secțiuni de redirecționare a deconectarii WooCommerce - Skim și treceți la secțiune

În cele mai multe dintre proiectele mele clienți, mi-a fost greu să obțin redirecționarea de deconectare pentru a funcționa pe un site WooCommerce. Din acest motiv, am decis să alcătuiesc acest ghid final de creare a redirecționării WooCommerce după ghidul de deconectare.

Sper că poate fi un loc grozav atât pentru utilizatorii cunoscători de tehnologie, cât și pentru cei care nu au cunoștință de tehnologie, pentru a găsi soluții pentru a crea cea mai bună opțiune de redirecționare a deconectarii WooCommerce pentru proiectele lor.

Deoarece aceasta nu este o postare obișnuită pe blog, este lungă și poate dura mai mult timp pentru a citi și înțelege fiecare detaliu. Aș dori să vă ajut să parcurgeți diferitele secțiuni, astfel încât să puteți alege rapid soluția de care aveți nevoie pentru proiectul dvs.

Cuprins

  1. Redirecționare către pagina de pornire – După deconectare, redirecționare către pagina de pornire în Woocommerce
  2. Redirecționarea paginii curente – Butonul de deconectare Woocommerce și redirecționarea către pagina curentă
  3. Pagină specifică după ID Redirecționare – Pagina de redirecționare Woocommerce Deconectare
  4. Redirecționarea rolului clientului – Redirecționare de deconectare a clienților Woocommerce
  5. Redirecționarea paginii anterioare - Woocommerce Login Redirecționare la pagina anterioară
  6. Redirecționare pagina contului meu – Woocommerce Redirecționare de deconectare a contului meu
  7. Redirecționare URL externă – Funcția de redirecționare pentru deconectare Woocommerce Fragment PHP
  8. Remediați eroarea de redirecționare de deconectare - Redirecționarea de deconectare Woocommerce nu funcționează
  9. Adresa URL de redirecționare WP Logout – Adresa URL de deconectare Woocommerce
  10. Plugin de redirecționare pentru deconectare Woocommerce
  11. Crearea redirecționării de deconectare în WordPress – Funcții de bază
  12. Redirecționare de conectare WooCommerce: woocommerce_login_redirect Hook
  13. Funcția de deconectare WordPress – wp_logout_url()
  14. Filtrul WordPress logout_redirect
  15. Cârlig de filtru WordPress login_redirect
  16. Redirecționare multisite WooCommerce după deconectare
  17. Filter Hook: allow_redirect_hosts
  18. Funcția de redirecționare WordPress: wp_ Redirecționare
  19. Funcția de redirecționare WordPress: wp_safe_redirect()
  20. Concluzie

Redirecționare WooCommerce după deconectare

redirecționare pentru deconectare woocommerce În mod implicit, WooCommerce după deconectare, înregistrare și conectare redirecționează utilizatorii către „contul meu”. Acest comportament nu este de dorit mai ales pe site-urile care sunt orientate spre creșterea vânzărilor.

Cele mai comune trei acțiuni de gestionare a utilizatorilor pe site-ul dvs. WooCommerce includ:

  • Înregistrare utilizator
  • Logare utilizator
  • Înregistrare utilizator
  • Editare profil utilizator
  • Deconectare utilizator

Fiecare dintre aceste acțiuni poate fi îmbunătățită nu numai pentru a facilita navigarea fără probleme pentru utilizator, dar și pentru a crește perspectiva de vânzări atât pentru clienții noi, cât și pentru cei existenți. Adresa URL sau linkul de deconectare WooCommerce se află în mod implicit pe pagina Contul meu și majoritatea proprietarilor de magazine WooCommerce doresc să modifice redirecționarea de deconectare pe pagina Contului meu pentru a redirecționa către o anumită pagină sau către o pâlnie de vânzări WooCommerce.

Cum să redirecționez deconectarea de la pagina Contul meu?

Una dintre cele mai frecvente întrebări despre deconectarea WooCommerce este cum să creați o deconectare automată din pagina Contul meu și să redirecționați către un alt site web sau către o pagină internă.

Aceasta este întrebarea care va fi abordată și rezolvată în această postare, până la sfârșitul acestui tutorial, ar trebui să creați o redirecționare personalizată de deconectare WooCommerce chiar și cu puține sau deloc cunoștințe anterioare de codare.

redirecționare woocommerce după deconectare din Pagina Contului meu

De ce să creați redirecționare pentru deconectare WooCommerce

Un site bun de comerț electronic ar trebui să exploateze toate oportunitățile de a redirecționa utilizatorii către paginile care pot crește vânzările și conversiile după fiecare acțiune - autentificare, deconectare, coș, finalizare, înregistrare etc.

Este vorba despre crearea unui canal de vânzări WooCommerce bun pentru a promova alte produse vânzări încrucișate, reduceri și alte produse conexe sau cele mai bine vândute produse.

Redirecționările de deconectare WooCommerce vă permit să creșteți rata de conversie a vânzărilor redirecționând clienții după deconectare către o pagină de destinație de vânzări sau o pagină strategică de redirecționare a pâlniei WooCommerce - în loc să redirecționați clientul către pagina implicită „contul meu”.

Acest tutorial vă va arăta cum să schimbați setarea implicită a redirecționării WooCommerce după deconectare și să redirecționați utilizatorii către adrese URL personalizate, cum ar fi „pâlnii de vânzări”, „oferte speciale”, „catalog”, pagina anterioară, pagina de destinație specială sau orice link extern care este potrivit pentru creșterea vânzărilor și conversiilor.

În această postare, vă voi împărtăși un sfat rapid despre cum să creați redirecționare personalizată după deconectarea WooCommerce, așa cum am împărtășit anterior cum să creați redirecționarea WooCommerce după finalizarea plății. În mod ideal, deconectarea WooCommerce implicită nu este atât de lină pe cât ar trebui să fie. Afișează un mesaj de confirmare care este o pacoste pentru un număr de utilizatori.

Am discutat mai devreme despre cum să eliminați mesajul de confirmare a deconectarii WooCommerce, ceea ce facilitează deconectarea automată a site-ului dvs. WooCommerce fără ca mesajul de conformare să apară.

De asemenea, am împărtășit fragmentul de cod de deconectare WooCommerce pe care îl puteți extinde în acest tutorial pentru a-l face mai eficient prin adăugarea opțiunii de redirecționare, la fel cum am făcut în pluginul WooCommerce redirecționare după finalizare, care oferă opțiuni de redirecționare condiționată.

Schimbați redirecționarea de deconectare WooCommerce modificați redirecționarea de deconectare woocommerce

Pentru a schimba redirecționarea de deconectare WooCommerce este o altă îmbunătățire importantă a experienței de deconectare a clientului pe care ar trebui să o luați în considerare, la fel cum am ilustrat cum să adăugați linkul de deconectare WooCommerce în meniu.

Deci, permiteți-ne acum să ne adâncim în crearea celei mai bune opțiuni de redirecționare a deconectarii WooCommerce pe care o puteți implementa imediat în magazinul dvs. pentru a îmbunătăți experiența utilizatorului.

Această opțiune este simplă, deoarece trebuie să folosim un filtru pentru a verifica evenimentul de deconectare atunci când are loc.

Când are loc deconectarea WooCommerce, putem conecta acest cârlig – woocommerce_login_redirect , apoi transmitem o funcție de apel invers cu logica noastră de redirecționare către pagina în care dorim să redirecționăm utilizatorul după deconectare.

Dacă nu sunteți familiarizat cu cârligele de acțiune și filtrule WooCommerce sau WordPress, acest tutorial despre apply_filters și do_action hooks poate fi un loc bun pentru a începe să vă obișnuiți cu filtrele și cârligele.

Este întotdeauna o practică bună înainte de a începe să creați funcția de redirecționare a deconectarii WooCommerce, ar trebui să verificați dacă utilizatorul este autentificat. Acum, permiteți-ne să descriem diferitele opțiuni pe care le puteți utiliza pentru a crea redirecționarea de deconectare WooCommerce.

Fiecare dintre aceste funcții utilizează cârlige și funcții implicite WooCommerce și WordPress, care sunt discutate în detaliu în celelalte secțiuni ale acestui tutorial.

Redirecționare către pagina de pornire – După deconectare, redirecționare către pagina de pornire în Woocommerce

Una dintre cele mai comune redirecționări WooCommerce după deconectare este către pagina de pornire. În mod implicit, WooCommerce redirecționează către pagina Contul meu după finalizarea deconectarii.

Dacă doriți să redirecționați utilizatorul către pagina de pornire, ar trebui să luați în considerare adăugarea acestui cod în fișierul functions.php al temei active WooCommerce.

Doar copiați acest cod în fișierul functions.php tema și testați pentru a vedea dacă utilizatorul WooCommerce este redirecționat către pagina de pornire după deconectare.

Redirecționați către pagina de pornire după fragmentul de deconectare

De asemenea, puteți adăuga acest fragment de cod în fișierul de pluginuri și va funcționa fără probleme.

 add_action('wp_logout','njengah_homepage_logout_redirect');

funcția njengah_homepage_logout_redirect(){

    wp_redirect( home_url() );

    Ieșire;

}

Cum funcționează codul de redirecționare

Există două funcții și un cârlig de acțiune utilizate în acest cod pentru a crea redirecționarea WooCommerce după deconectare, ca în codul de mai sus. Să ne uităm cu atenție la rolul fiecăreia dintre aceste funcții și să agățăm:

Cârlig: wp_logout

Acest cod folosește cârligul de acțiune wp_logout care a fost discutat în detaliu în acest articol în secțiunea – Hook WordPress – wp_logout. În mod ideal, acesta este un cârlig implicit de deconectare WordPress care este declanșat după ce deconectarea a fost executată.

Funcție: wp_redirect()

În acest caz, dacă te uiți la funcția de apel invers dacă folosește funcția wp_redirect() , care a fost explicată și în detaliu în secțiunea secțiunea Funcție WordPress wp_redirect.

Funcție: home_url()

Funcția finală folosită în funcția de apel invers este home_url() , aceasta este o funcție WordPress care returnează adresa URL a paginii de pornire a site-ului curent.

home_url( string $path = '', string|null $scheme = null )

De exemplu, puteți afișa adresa URL a paginii de pornire a site-ului curent folosind funcția home_url() după cum urmează:

 $url = home_url();

echo $url;

Deci, în acest caz al redirecționării WooCommerce după deconectare, va returna adresa URL a site-ului curent și o va adăuga ca șir la funcția wp_redirect() .

Pentru ca noi să înțelegem cum funcționează cârligul de redirecționare pentru deconectare WooCommerce pe măsură ce îl aplicăm în codul dvs., trebuie să ne uităm la fiecare dintre aceste funcții implicite WordPress și rolul pe care îl joacă în crearea redirecționărilor.

Redirecționarea paginii curente – Butonul de deconectare Woocommerce și redirecționarea către pagina curentă

A doua cea mai frecventă redirecționare WooCommerce după deconectare este redirecționarea către pagina curentă după ce un utilizator se deconectează. Acest lucru este important atunci când doriți ca utilizatorul să rămână pe aceeași pagină în care era când s-a deconectat.

În acest caz, trebuie să cunoaștem pagina utilizatorului actual și să o aplicăm logicii de redirecționare a deconectarii WooCommerce.

Pentru a crea redirecționarea WooCommerce către pagina curentă după evenimentul de deconectare, trebuie să folosim funcția get_permalink() pentru a ne anunța pagina curentă și apoi să o aplicăm funcției de apel invers de deconectare.

În acest caz, ar trebui să adăugați următorul fragment de cod la functions.php sau fișierele plugin pentru a executa redirecționarea WooCommerce după deconectarea de la pagina curentă.

 funcția njengah_redirect_current_page_after_logout( $logout_url, $redirect ){

       returnează $logout_url . „&redirect_to=” . get_permalink();

}

add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );

Cum funcționează codul

Acest cod constă dintr-un cârlig de filtru logout_url , iar funcția de apel invers are funcția get_permalink() WordPress care stabilește pagina curentă pentru utilizatorii de front-end și o folosește pentru a returna adresa URL de deconectare.

Filtru: logout_url()

În acest caz, am folosit logout_url , care este un alt filtru de deconectare WordPress și WooCommerce, care a fost discutat în detaliu în secțiunea de mai jos, funcția WordPress logout_url .

Este posibil ca acest cod să nu funcționeze pentru toți utilizatorii și este posibil să eșueze pentru utilizatorii din backend-ul administrativ. Aceasta este o redirecționare adecvată după deconectare pentru clienții din pagina Contul meu, dar nu și pentru alte roluri.

Pentru ca acesta să funcționeze și pentru utilizatorii din backend, trebuie să înlocuim funcția get_permalink() cu valoarea de interogare HTTP care reprezintă pagina curentă.

PHP Super Global $_SERVER['HTTP_HOST']

Deci, în acest caz, trebuie să adăugăm acest $_SERVER['HTTP_HOST'] super global ca alternativă la funcția get_permalink() . $_SERVER este o variabilă super globală PHP care conține informații despre anteturi, căi și locații de script.

$_SERVER['HTTP_HOST'] super global returnează antetul gazdei din cererea curentă. Prin urmare, ne ajută să obținem pagina curentă, astfel încât să o putem aplica la adresa URL de redirecționare WooCommerce după deconectare. Noul cod care funcționează pentru toți utilizatorii ar trebui să fie după cum urmează:

 funcția njengah_redirect_current_page_after_logout( $logout_url, $redirect ){

      returnează $logout_url . „&redirect_to=http://” . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

}

add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );

Acum puteți crea un buton pentru a încheia linkul de redirecționare urmând tutorialul pe care l-am împărtășit anterior despre cum să creați butonul de deconectare WooCommerce.

Redirecționare specifică paginii – Pagina de redirecționare a deconectarii Woocommerce (după ID)

În unele cazuri, este posibil să doriți să redirecționați utilizatorii către o anumită pagină după ce se deconectează. Pagina poate fi adăugată la logica de redirecționare a deconectarii WooCommerce folosind id-ul paginii.

În acest caz trebuie să cunoașteți ID-ul paginii pentru a-l trece în funcția de redirecționare. Puteți realiza redirecționarea deconectarii WooCommerce către o anumită pagină prin ID folosind următorul fragment de cod.

 add_action('wp_logout','njengah_specific_page_logout_redirect');

funcția njengah_specific_page_logout_redirect(){

    wp_redirect(get_permalink($pageId));

    Ieșire;

}

Cum funcționează codul

Acest cod folosește cârligul de acțiune wp_logout și în funcția de apel invers avem funcția get_permalink() cu o variabilă $pageID care ar trebui înlocuită cu ID-ul paginii în care doriți să redirecționați utilizatorul după finalizare.

Dacă nu sunteți sigur despre ID-ul paginii, puteți folosi această postare pe care am scris-o despre cum să obțineți ID-ul paginii în WordPress.

Funcția WooCommerce: wc_get_page_id()

De asemenea, puteți utiliza numele paginii în care doriți să redirecționați utilizatorul împreună cu funcția wc_get_page_id() ca în fragmentul de cod de mai jos:

 add_action('wp_logout','njengah_specific_page_logout_redirect');

funcția njengah_specific_page_logout_redirect(){

       wp_redirect(get_permalink(wc_get_page_id('magazin')));

      Ieșire;

}

Funcția wc_get_page_id() preia ID-urile paginii și este folosită în mod obișnuit pentru myaccount, edit_address, shop, cart, checkout, pay, view_order, termeni și returnează -1 dacă nu este găsită nicio pagină.

Redirecționarea rolului clientului – Redirecționare de deconectare a clienților Woocommerce

Un alt scenariu de redirecționare WooCommerce după deconectare este locul în care doriți să redirecționați utilizatorii în funcție de rol. Probabil doriți să redirecționați clientul către o anumită pagină după deconectare, în loc de redirecționarea implicită Contul meu după deconectare.

În acest caz, puteți executa redirecționarea după deconectare numai pentru rolul de client sau un alt rol sau un grup de roluri folosind fragmentul de cod distribuit mai jos:

 if( is_user_logged_in() ) { // verifică dacă există un utilizator conectat       

    $user = wp_get_current_user(); // obținerea și setarea utilizatorului curent

          $roluri = ( array ) $utilizator->roluri; // obţinerea rolului

           // $roluri[0]; // Returnează un rol

            //return $roluri; // returnează matricea rolurilor

             // Faceți comparația aici 

              if($roles[0] == 'client'){

                 // Executați redirecționarea dacă rolul utilizatorului curent este egal cu client

                    add_action('wp_logout','njengah_specific_page_logout_redirect');

                       funcția njengah_specific_page_logout_redirect(){

                        wp_redirect(get_permalink($pageId));

                             Ieșire;

                   }

           }

 }

Cum funcționează codul

Am început prin a verifica dacă utilizatorul este conectat, așa cum am explicat într-o postare anterioară, despre cum să aflăm dacă utilizatorul WordPress este conectat.

Obțineți rolul de utilizator

Al doilea pas a fost să obțineți rolul utilizatorului actual în WordPress utilizând funcția wp_get_current_user() și exact rolul utilizatorului actual.

Comparați și executați redirecționarea dacă rolul se potrivește cu clientul

Al treilea pas a fost să faci acum comparația rolului obținut în pasul anterior cu rolul de client și dacă rolul se potrivește acum adaugi acțiunea de redirecționare și funcția.

Puteți înlocui rolul cu un alt rol, inclusiv rolurile personalizate. De asemenea, puteți schimba pagina de redirecționare prin trecerea unui alt ID de pagină în funcția get_permalink() .

Redirecționare pagina anterioară - Deconectare Woocommerce Redirecționare către pagina anterioară

Puteți crea redirecționarea WooCommerce după deconectarea la pagina anterioară folosind sesiunile. În acest caz, trebuie să creați o sesiune și să o adăugați la o funcție și să o utilizați în logică pentru a crea redirecționarea după deconectare la pagina anterioară.

Puteți folosi fragmentul de cod de mai jos pentru a crea redirecționarea de deconectare WooCommerce către pagina anterioară:

 // Porniți sesiunea globală pentru salvarea adresei URL de referință
funcția start_session() {
     sesiune_start();
}

add_action('init', 'start_session', 1);

// Obțineți adresa URL de referință și salvați-o

funcția redirect_url() {
    if (este_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } altfel {
        sesiune_distruge();
    }

}
add_action( 'template_redirect', 'redirect_url');

//Redirecționare pentru deconectare

funcția njengah_logout_redirect() {

    dacă (isset($_SESSION['referer_url'])) {

        wp_redirect($_SESSION['referer_url']);

    } altfel {

        wp_redirect(home_url());

    }

}

add_filter('wp_logout', 'njengah_logout_redirect', 1100, 2);

Cum funcționează codul

Acest cod a folosit sesiunile PHP pentru a crea o sesiune și a salva adresa URL a paginii curente, iar în funcția de redirecționare testăm adresa URL a sesiunii setată – $_SESSION['referer_url'] .

Dacă este setat, creăm redirecționarea către pagina respectivă ca în celelalte redirecționări de deconectare pe care le-am discutat mai devreme.

Redirecționare pagina contului meu – Woocommerce Redirecționare de deconectare a contului meu

Redirecționarea de deconectare WooCommerce de pe pagina Contul meu este una dintre cele mai frecvente întrebări despre deconectarea WooCommerce.

Aceasta nu este diferită de alte redirecționări de deconectare, de fapt, puteți adăuga redirecționare de deconectare pe pagina Contul meu folosind fragmentul de cod de mai jos:

 add_action('wp_logout','njengah_my_account_page_logout_redirect');

funcția njengah_my_account_page_logout_redirect(){

       wp_redirect(get_permalink($pageId));

                Ieșire;

}

Puteți modifica valoarea variabilei $pageID în funcția get_permalink() pentru a corespunde cu ID-ul paginii paginii sau postării de redirecționare și acest lucru va funcționa perfect.

Redirecționare URL externă - Funcție de redirecționare de deconectare Woocommerce Fragment PHP:

Dacă doriți să redirecționați utilizatorii către o adresă URL externă după ce se deconectează din magazinul dvs. WooCommerce, puteți realiza acest lucru folosind un fragment adăugat la funcțiile temei dvs. sau într-un plugin personalizat.

Acest fragment php al funcției de redirecționare a deconectarii WooCommerce care poate fi adăugat la fișierul functions.php pentru a crea redirecționarea după deconectare este după cum urmează:

 add_action('wp_logout','njengah_redirect_after_logout');

funcția njengah_redirect_after_logout(){

  wp_redirect( $url);

  Ieșire();

}

Pur și simplu adăugați acest fragment de cod în funcțiile.php și înlocuiți variabila $url cu adresa URL de redirecționare respectivă între ghilimele.

De exemplu, dacă doriți să redirecționați utilizatorul către o adresă URL externă după ce acesta se deconectează și adresa URL externă este http://example.com , puteți înlocui variabila $url cu adresa URL completă, ca în codul de mai jos:

 add_action('wp_logout','njengah_redirect_after_logout');

funcția njengah_redirect_after_logout(){

    wp_redirect('http://example.com');

    Ieșire();

}

Adresa URL de redirecționare WP Logout – Adresa URL de deconectare Woocommerce

Dacă doriți să creați un buton de deconectare WooCommerce și să-l plasați într-un șablon personalizat sau în orice altă pagină, vă ajută să cunoașteți adresa URL de redirecționare a deconectarii WP pe care o puteți adăuga cu ușurință pe orice buton sau link.

Următoarea este adresa URL de redirecționare a deconectarii WP care poate fi schimbată în orice altă pagină prin modificarea parametrului „contul meu” „

 wp_logout_url(

    get_permalink( wc_get_page_id( 'contul meu' ) )

 );

De asemenea, puteți avea adresa URL externă în adresa URL de redirecționare a deconectarii WooCommerce, după cum urmează:

 wp_logout_url(

   „http://example.com/”

);

De asemenea, puteți adăuga funcțiile WordPress la adresa URL de redirecționare a deconectarii WP, după cum urmează:

 wp_logout_url(

    home_url()

);

Această adresă URL de redirecționare pentru deconectare WP poate fi adăugată în șabloane personalizate și poate fi folosită și în coduri scurte sau butoane pentru a afișa o opțiune de deconectare în locuri care nu sunt locațiile implicite pentru butonul de deconectare, cum ar fi widget-uri, subsol, meniul barei de sus și multe altele.

Remediați eroarea de redirecționare de deconectare: redirecționarea de deconectare Woocommerce nu funcționează

Dacă ați personalizat redirecționarea de deconectare WooCommerce și nu funcționează, probabil că există o eroare în codul dvs. sau unul dintre următoarele motive.

Prioritate cârlig

Primul pas este să verificați prioritatea add_action() sau add_filter() în comparație cu celelalte hook-uri WordPress. Aceasta este una dintre cele mai frecvente cauze ale erorii de redirecționare a deconectarii.

Cu cât prioritatea cârligului este mai mare, cu atât încărcarea are loc mai devreme. Dacă cele două cârlige au aceeași prioritate, se încarcă primul cel plasat în vârful celuilalt. Ajustarea priorității acțiunii sau a cârligului de filtru poate fi un loc bun pentru a începe depanarea.

Eroare de cod – Eroare de sintaxă

Al doilea pas trebuie să verificați dacă tot codul are o eroare și o eroare comună este o eroare de sintaxă. Posibil, pe măsură ce editați codul, puteți uita să puneți ghilimele de închidere sau o paranteză.

Verificați codul și, de preferință, adăugați codul la un verificator de erori de sintaxă PHP.

Cel mai bine este dacă sunteți familiarizat cu instrumente precum Visual Studio sau IDE-uri precum Netbeans, deoarece aceste instrumente vă pot ajuta rapid să alegeți erorile de sintaxă din codul dvs.

Cod adăugat la fișierul greșit

O altă cauză comună a erorii de redirecționare a deconectarii WooCommerce care nu funcționează este atunci când aveți codul corect, dar îl adăugați în locul greșit. În acest caz, dacă adăugați codul la o temă, acesta ar trebui strict adăugat în fișierul functions.php.

Când adăugați acest cod la un plugin, ar trebui să aveți grijă să nu îl adăugați într-o clasă care nu este instanțiată. Este o idee bună să-l adăugați la fișierul de bază al pluginului și, de asemenea, să remediați orice modificări care ar putea fi necesare pentru a vă asigura că codul se potrivește în contextul structurii dvs. personalizate de fișiere de plugin.

Conflicte de pluginuri sau teme

În cele mai multe cazuri, există plugin-uri sau teme care controlează redirecționarea de conectare și deconectare în WooCommerce. Aceste pluginuri pot intra în conflict, ducând la eroarea de redirecționare a deconectarii.

Dacă întâmpinați o eroare de deconectare a redirecționării WooCommerce, puteți începe prin a dezactiva toate pluginurile și folosind tema implicită WordPress pentru a verifica dacă eroarea este cauzată de un plugin sau de un conflict de temă.

Plugin de redirecționare pentru deconectare Woocommerce

În cele din urmă, nimic nu face mai ușor să adăugați redirecționarea WooCommerce după deconectare decât un plugin bine codificat, cu caracteristicile potrivite, experiență bună de utilizare și suport de clasă mondială. De ani de zile, am rezolvat sute de probleme de deconectare, autentificare și înregistrare pe WooCommerce și WordPress în general.

În ultimele săptămâni, mi-am reunit toată experiența și lecțiile învățate despre redirecționările și deconectarea WooCommerce. Am creat o remarcabilă adresă URL de redirecționare a deconectarii WooCommerce care cuprinde următoarele caracteristici:

Funcții de redirecționare de deconectare

  • Redirecționare WooCommerce după deconectare către orice pagină - selectați pagina dintr-o listă derulantă
  • Redirecționarea WooCommerce după deconectare către orice produs – selectați produsul dintr-o listă derulantă
  • Redirecționarea WooCommerce după deconectare la orice postare – selectați postarea dintr-o listă derulantă
  • Redirecționarea WooCommerce după deconectare către orice categorie de produse - selectați categoria de produs dintr-o listă derulantă
  • Redirecționare WooCommerce după deconectare la pagina curentă
  • Redirecționare WooCommerce după deconectare la pagina anterioară
  • Redirecționare WooCommerce după deconectare la URL extern
  • Redirecționare WooCommerce după deconectare în funcție de rol
  • Redirecționare WooCommerce după deconectare pe baza istoricului achizițiilor (potrivit pentru oferte speciale)
  • WooCommerce forță deconectarea după finalizare

Funcții de redirecționare pentru autentificare

  • Redirecționare WooCommerce după autentificare la orice pagină - selectați pagina dintr-o listă derulantă
  • Redirecționare WooCommerce după autentificare la orice produs – selectați produsul dintr-o listă derulantă
  • Redirecționare WooCommerce după autentificare la orice postare – selectați postarea dintr-o listă derulantă
  • Redirecționare WooCommerce după autentificare la orice categorie de produse - selectați categoria de produs dintr-o listă derulantă
  • Redirecționare WooCommerce după autentificare la pagina curentă
  • Redirecționare WooCommerce după autentificare la pagina anterioară
  • Redirecționare WooCommerce după autentificare la URL extern
  • Redirecționare WooCommerce după autentificare în funcție de rol
  • Redirecționare WooCommerce după autentificare pe baza istoricului achizițiilor (potrivit pentru oferte speciale)

Pluginul WooCommerce Redirect after Login & Logout (WRAL) va fi lansat în următoarele câteva săptămâni. Dacă doriți să fiți un care adoptă timpurie, nu rămâneți în urmă, deoarece lansarea va veni cu o reducere de 70%.

Vă puteți alătura listei primilor 100 de primitori luând legătura cu mine imediat. Va fi lansat pe 2 noiembrie 2020.

Crearea redirecționării de deconectare în WordPress – Funcții de bază

După ce ați analizat modalitatea rapidă de a adăuga fragmente pentru a crea redirecționarea WooCommerce după deconectare, vă ajută să evidențiați funcțiile și cârligele implicite de deconectare WordPress și să explice în detalii dezvoltatorilor care citesc acest ghid pentru a înțelege cum funcționează aceste redirecționări.

Aceste funcții și cârlig de acțiune pot fi utile pentru crearea redirecționării WooCommerce după deconectare. În general, puteți crea redirecționarea de deconectare WooCommerce folosind următoarele cârlige și funcție:

  • funcția wp_logout_url().
  • cârlig de acțiune wp_logout
  • filtrul logout_redirect

Vreau să explic fiecare dintre aceste funcții și cum o puteți folosi pentru a crea redirecționarea WooCommerce după finalizarea comenzii și de ce ați putea dori să utilizați una peste alta.

De asemenea, este important să evidențiați modul în care puteți crea redirecționarea de conectare WooCommerce folosind filtre. Există o funcție care este utilă pentru a crea redirecționare de conectare și în WooCommerce. Să începem cu cârligul de redirecționare de conectare, care este foarte util pentru crearea redirecționării de conectare în WooCommerce.

Redirecționare de conectare WooCommerce: woocommerce_login_redirect Hook

Acesta este cârligul special WooCommerce care ne permite să controlăm funcțiile de redirecționare a autentificarii în WooCommerce. Este similară cu funcția implicită de deconectare WordPress care este aplicată în crearea unei redirecționări WooCommerce după deconectare. Utilizarea sa de bază este după cum urmează:

apply_filters( 'woocommerce_login_redirect', $redirect, $user );

După cum puteți vedea, este nevoie de 2 parametri, iar parametrii sunt după cum urmează:

Parametru Descriere Exemple de utilizare
$redirect Aceasta este pagina de redirecționare la care va ajunge utilizatorul după conectare.

Poate fi util în schimbarea redirecționării WooCommerce implicite după conectare pentru a permite utilizatorului să ajungă la pagina specifică după conectare.

add_filter('woocommerce_login_redirect', 'login_redirect')

Puteți adăuga cârligul de filtru și în funcția de apel invers puteți trece logica de redirecționare după cum urmează:

function login_redirect($redirect_to){
return home_url();
}

După cum puteți vedea, am adăugat parametrul $redirect_to și am returnat adresa URL de redirecționare pentru a redirecționa utilizatorul către pagina de pornire după conectare.

$user Acesta este utilizatorul căruia i se aplică acțiunea de redirecționare.

Acest lucru poate fi deosebit de util atunci când doriți să creați o redirecționare după conectare pentru anumiți utilizatori.

Cârlig: woocommerce_login_redirect Nu funcționează

Acest cod poate fi folosit în teme și codul plugin-ului, dar trebuie să înțelegeți prioritățile pentru a evita declanșarea devreme sau târziu, unde va duce la scenariul comun ca woocommerce_login_redirect să nu funcționeze.

De asemenea, trebuie să aflați și alte motive care pot duce la ca woocommerce_login_redirect să nu funcționeze. De interes deosebit este un alt plugin care are o funcție similară sau aceeași care funcționează înainte ca codul să fie lansat.

Deci, dacă aflați că woocommerce_login_redirect nu funcționează, primul lucru de verificat este prioritatea unui exemplu de caz, este posibil să aveți aceste două fragmente de cod:

# Prioritate inferioară

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 1100, 2 );

# Prioritate mai mare

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 10, 2 );

După cum puteți vedea în ambele cazuri, numerele de prioritate sunt diferite, regula de bază este că cu cât numărul este mai mic, cu atât este mai mare prioritatea, ceea ce înseamnă că se încarcă primul.

Când aveți această funcție folosită în altă parte în tema dvs. sau în alt plugin și încercați să recreați redirecționarea WooCommerce după funcția de conectare sau deconectare, trebuie să acordați atenție priorității. Aceasta este soluția pentru a remedia problema woocommerce_login_redirect care nu funcționează.

Funcția de deconectare WordPress – wp_logout_url()

Această funcție este responsabilă pentru crearea adresei URL de deconectare în WordPress.

Ajută dezvoltatorii și utilizatorii WordPress să creeze rapid o adresă URL de deconectare care poate fi adăugată la un link sau buton și am ilustrat în acest articol - cum să creați o adresă URL de deconectare WooCommerce .

WooCommerce extinde funcționalitatea având punctele finale URL care joacă un rol crucial în a ajuta dezvoltatorii și utilizatorii să creeze o pagină de deconectare WooCommerce fără nicio codificare.

Dacă doriți să înțelegeți profund procesul de deconectare WooCommerce și WordPress, vă ajută să începeți prin a evalua funcția wp_logout_url() .

Este o funcție specială pe care o veți întâlni în mai multe teme și plugin-uri WordPress și este o idee bună să vedeți ce se întâmplă sub capotă.

Utilizarea de bază a funcției este următoarea:

wp_logout_url( string $redirect = '' )

După cum puteți vedea, funcția preia un parametru care este un șir și următoarele sunt detaliile parametrului:

Parametru Descriere Exemple de utilizare
$redirect Acesta este un parametru șir și este opțional să îl adăugați, îl puteți lăsa necompletat și funcția va funcționa.

Este totuși util în cazul în care doriți să adăugați o adresă URL de redirecționare la o anumită pagină.

Deci, în acest caz, parametrul $redirect este adresa URL a paginii de redirecționare, destinația în care ar trebui să ajungă toți utilizatorii care folosesc această funcție în acest context.

De asemenea, puteți trece alte funcții ca parametri care returnează strict un șir, deoarece wp_logout_url() ia doar șirul ca parametru.

Puteți utiliza această funcție împreună cu un link după cum urmează:

<a href="<?php echo wp_logout_url(); ?>">Logout</a>

Puteți utiliza această funcție și transmite o altă funcție ca parametru care returnează un șir al adresei URL de redirecționare, după cum urmează:

<a href="<?php echo wp_logout_url( home_url() ); ?>">Logout</a>

<a href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>

Dacă doriți să înțelegeți mai departe funcția, vă ajută să vă uitați la codul definit în nucleul WordPress. Acest cod de funcție de bază este după cum urmează:

 funcția wp_logout_url( $redirect = '' ) {
    $args = array();
    dacă ( ! gol ( $ redirecționare ) ) {
        $args['redirect_to'] = urlencode( $redirect );
    }
 
    $logout_url = add_query_arg( $args, site_url( 'wp-login.php?action=logout', 'login' ) );
    $logout_url = wp_nonce_url( $logout_url, 'deconectare');
 
    /**
     * Filtrează adresa URL de deconectare.
     *
     * @din 2.8.0
     *
     * @param string $logout_url URL-ul de deconectare codificat HTML.
     * @param șir $redirect Calea către redirecționare la deconectare.
     */
    return apply_filters( 'logout_url', $logout_url, $redirect );
}

Action Hook: wp_logout

Acesta este un cârlig de acțiune care este declanșat atunci când utilizatorul a fost deconectat. Joacă un rol important în crearea redirecționării după funcționalitatea de deconectare. Utilizarea de bază a acestei funcții este următoarea:

do_action( 'wp_logout', int $user_id )

După cum puteți vedea, este nevoie de un parametru și detaliile parametrului sunt următoarele:

Parametru Descriere Exemple de utilizare
$user_id Acesta este ID-ul utilizatorului care a fost deconectat. add_action('wp_logout','logout_redirect');

În acest caz, l-am adăugat ca un cârlig de acțiune și putem trece redirecționarea după logica de deconectare în funcția de apel invers, după cum urmează:

function logout_redirect(){

wp_redirect( home_url() );

exit;

}

Deci, în acest caz, redirecționăm utilizatorul după deconectare către pagina de pornire.

Aceste funcții sunt utile atunci când doriți să controlați redirecționarea utilizatorului după ce acesta se autentifică sau se deconectează.

Filtrul WordPress logout_redirect

Un alt cârlig de filtru pe care îl puteți folosi pentru a crea redirecționare după deconectare în WooCommerce este Filter Hook logout_redirect. Acest cârlig de filtru funcționează ca wp_logout_url() sau cârligul de acțiune wp_logout.

Este un filtru WordPress de bază care este conceput pentru a ajuta la crearea redirecționării WordPress sau WooCommerce după deconectare. Utilizarea sa de bază este după cum urmează:

apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )

După cum puteți vedea, are trei parametri și parametrul poate fi descris în detaliu după cum urmează:

Parametru Descriere
$redirect_to Aceasta este adresa URL de destinație a redirecționării și trebuie să fie un șir, de exemplu, http://example.com
$requested_redirect_to Aceasta este adresa URL de destinație de redirecționare solicitată care este transmisă ca parametru și trebuie să fie, de asemenea, un șir la fel ca primul parametru.
$user Acesta este obiectul utilizator – obiectul WP_User al utilizatorului care a fost deconectat.

Puteți crea o redirecționare WordPress bazată pe filtre după deconectare folosind logout_redirect, după cum urmează:

 add_filter( 'redirecționare_login', 'redirecţionare_njengah_logout', 10, 3 );

funcția njengah_logout_redirect( $locație, $cerere, $utilizator ) {

  global $user;

if ( isset( $utilizator->roluri ) && is_array( $utilizator->roluri ) ) {

   if ( in_array( 'abonat', $user->roluri ) ) {

       return home_url();

          } altfel {

        returnează $redirect_to;

      }

    }

   întoarcere;

}

Cârlig de filtru WordPress login_redirect

De asemenea, este important să subliniem că există un filtru similar pentru login - login_redirect funcționează în același mod ca filtrul logout_redirect. De fapt, utilizarea este similară și vine cu 3 parametri, iar expresia generală este următoarea:

apply_filters( 'login_redirect', string $redirect_to, string $requested_redirect_to, WP_User|WP_Error $user )

The parameters are similar expect the last parameter that has two user object options as you will see in the detailed description below:

Parametru Descriere
$redirect_to This is the redirect destination URL and it must be a string, for example, http://example.com
$requested_redirect_to This is the requested redirect destination URL that is passed as a parameter and it must also be a string just like the first parameter.
$user This is the user object – WP_User object of the user who has been logged in if the login was successful but for unsuccessful login the WP_Error object is represented by this parameter

As you can see there are several ways you can use to create a WordPress or WooCommerce logout redirect.

In a quick summary we have highlighted the three most important hooks you should consider using for creating the redirect after logout. These hooks include:

  • Default WordPress logout_redirect – using filter to create redirect after logout
  • Action hook wp_logout – fired after the logout and thus can be used to create redirect.
  • WordPress logout function wp_logout_url() – WordPress default function that retrieves the logout URL and this can be useful in adding a redirect since it takes one parameter for the redirect path.

WooCommerce Multisite Redirect After Logout

When you are creating a redirect after logout in WooCommerce the wp_logout hook may fail to work when you have a multisite. In this case you need a little creativity to control how to create the WooCommerce redirect after logout.

In fact in a multisite set up WordPress logout function requires you to filter the allowed URLs for redirect and this can easily be executed using the allowed_redirect_hosts filter.

It helps to understand how this filter hook works so that you can use it in the WooCommerce multisite redirect after checkout. So let's briefly look at this filter.

Filter Hook: allowed_redirect_hosts

This is a filter hook that filters all the allowed hosts to apply redirect to. So in simple terms it checks the redirect URLs and vets them. The basic usage of this filter is as follows:

apply_filters( 'allowed_redirect_hosts', string[] $hosts, string $host )

As you can see in the expression above, it takes two parameter and they can be explained in details as follows:

Parametru Descriere Usage Example(s)
$hosts (string[]) This is simply an array with all the allowed host names add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' );

function njengah_allow_parent_redirect( $allowed ) {

$allowed[] = 'example.com'; // Multisite parent

return $allowed;

}

<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>">Logout</a>

$host (string) This is the host name of the redirect destination.

This can be left empty.

You can add more hosts to the callback function and come up with code like this:

add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect');

funcția njengah_allow_parent_redirect($permis) {
    $permis = matrice(
    „blog.example.com”,
    „codex.example.com”,
     );
    return array_merge( $hosts, $allowed );
}

Acest lucru servește pur și simplu scopului de a valida URL-urile de redirecționare permise, care este un plus important la redirecționarea WooCommerce pe mai multe site-uri după deconectare, deoarece în majoritatea cazurilor redirecționarea implicită wp_logout va eșua fără filtrarea gazdelor de redirecționare.

Funcția de redirecționare WordPress: wp_ Redirecționare

Când creați redirecționare în WooCommerce sau WordPress, așa cum am explicat în postarea despre cum să creați redirecționare după finalizarea plății în WooCommerce, aveți nevoie de funcția wp_redirect() .

Înțelegerea rolului acestei funcții este crucială în crearea redirecționării WooCommerce după finalizare, deoarece este funcția de bază responsabilă pentru executarea redirecționărilor în WordPress și WooCommerce. Să prezentăm pe scurt cum funcționează și parametrul pe care îl ia. Utilizarea generală a funcției wp_redirect() este următoarea:

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

După cum puteți vedea, această funcție are trei parametri și pot fi descriși în detaliu după cum urmează:

Parametru Descriere
$location Aceasta este calea sau URL-ul către care să redirecționeze utilizatorul. Trebuie să fie un șir și este necesar pentru ca funcția să funcționeze.
$status Acesta este codul de stare a răspunsului HTTP care ar trebui aplicat acestei redirecționări și acesta este un număr întreg și este opțional să îl utilizați.
De exemplu, puteți adăuga 301 pentru redirecționare permanentă sau îl puteți lăsa ca valoare implicită, care este 302, ceea ce înseamnă mutat temporar.
$x_redirect_by Aceasta este aplicația care efectuează redirecționarea și aceasta în mod implicit este WordPress și rareori ar trebui să fie dezactivată, deoarece creăm redirecționarea WooCommerce după deconectare, care se află în contextul WordPress.

Notă

Este important să înțelegeți că atunci când utilizați funcția wp_redirect() tit nu iese de la sine. Prin urmare, este important să adăugați întotdeauna exit după funcție, deoarece ieșirea în PHP este folosită pentru a termina scriptul curent care rulează după ce linia anterioară de cod este executată. Deci, cea mai bună modalitate de a utiliza funcția wp_redirect este următoarea:

 wp_redirect( $url );

Ieșire

De asemenea, puteți crea redirecționare condiționată folosind funcția wp_redirect cu if statement , după cum urmează:

 if ( wp_redirect( $url ) ) {

   Ieșire;

}

Această funcție poate fi utilizată împreună cu template_redirect hook ca în codul de mai jos:

 funcția njengah_wp_redirect_example() {

    if ( is_user_logged_in() && is_page( $id ) ){

        wp_redirect(get_permalink($id));

        Ieșire;

    }

}

add_action( 'template_redirect', 'njengah_wp_redirect_example');

După cum puteți vedea în codul de mai sus, poate lua o funcție ca parametru, cu condiția ca funcția să returneze un șir pentru parametrul $location, așa cum este cazul funcției get_permalink( ) .

Funcția de redirecționare WordPress: wp_safe_redirect()

wp_safe_redirect() este a doua funcție de redirecționare WordPress care poate fi utilă pentru executarea redirecționării WooCommerce după deconectare. Această funcție funcționează ca funcția wp_redirect() , dar are o verificare suplimentară a adresei URL de redirecționare.

În funcția wp_redirect, parametrul $location nu este verificat, dar în funcția wp_safe_redirect() , parametrul $location este verificat pentru a se verifica dacă este o gazdă permisă.

Aceasta este diferența dintre cele două funcții de redirecționare. Utilizarea generală a acestei funcții de redirecționare este similară cu cea a wp_redirect și expresia generală este următoarea:

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

După cum puteți vedea, parametrii sunt aceiași:

Parametru Descriere
$location Aceasta este calea sau URL-ul către care să redirecționeze utilizatorul. Trebuie să fie un șir și este necesar pentru ca funcția să funcționeze.
$status Acesta este codul de stare a răspunsului HTTP care ar trebui aplicat acestei redirecționări și acesta este un număr întreg și este opțional să îl utilizați.
De exemplu, puteți adăuga 301 pentru redirecționare permanentă sau îl puteți lăsa ca valoare implicită, care este 302, ceea ce înseamnă mutat temporar.
$x_redirect_by Aceasta este aplicația care efectuează redirecționarea și aceasta în mod implicit este WordPress și rareori ar trebui să fie dezactivată, deoarece creăm redirecționarea WooCommerce după deconectare, care se află în contextul WordPress.

Această funcție permite dezvoltatorilor de plugin-uri să seteze sau să elimine lista de gazde permise și, dacă gazda nu se află în lista de gazde permise, redirecționarea eșuează și va fi implicit wp-admin.

La fel ca și funcția wp_redirect , wp_safe_redirect nu iese automat și, de asemenea, necesită să adăugați o ieșire ca în fragmentele de cod de mai jos:

 wp_safe_redirect($url);

Ieșire;

De asemenea, îl puteți folosi cu instrucțiuni condiționate ca în exemplul anterior:

 if ( wp_safe_redirect( $url ) ) {

    Ieșire;

}

Concluzie

În această postare, am subliniat modalitățile pas cu pas în care puteți crea diferitele opțiuni de redirecționare WooCommerce după deconectare. Am ilustrat cu un exemplu de cod cum să creați deconectarea redirecționării WordPress sau WooCommerce folosind varietatea de funcții și cârlige disponibile din nucleul WordPress.

Într-un rezumat rapid pentru a rezuma ceea ce am acoperit; cum se creează redirecționare după deconectare la:

  • Redirecționare de deconectare a paginii curente
  • Redirecționarea de deconectare a paginii anterioare
  • Redirecționare de deconectare a paginii de pornire
  • Redirecționare specifică de deconectare a paginii
  • Redirecționare de deconectare URL externă

Sper că acest ghid vă oferă un loc minunat de a începe în timp ce creați redirecționarea de deconectare în WooCommerce. Dacă doriți să împărtășiți feedback sau să contribui la îmbunătățirea acestui ghid și chiar să subliniați greșeli sau erori, nu ezitați să mă contactați. Dacă vă place acest ghid, poate doriți să consultați și celălalt ghid pe care l-am scris despre cum să creați redirecționarea WooCommerce după cumpărare.

Articole similare

Cele mai bune liste de pluginuri WooCommerce