Reindirizzamento WooCommerce dopo il logout [Guida definitiva]
Pubblicato: 2022-01-10Il reindirizzamento WooCommerce dopo la disconnessione può essere creato utilizzando il codice in questo post per reindirizzare i clienti WooCommerce a una pagina o un post specifico o a un URL esterno dopo la disconnessione. In questo articolo, voglio dimostrare come creare questo reindirizzamento con il codice. Se ti sei perso il mio tutorial precedente, ho illustrato come creare lo shortcode della pagina di logout di WooCommerce, che può essere un buon punto di partenza prima di creare il reindirizzamento di logout di WooCommerce.
Esistono plugin che possono essere utilizzati per creare reindirizzamenti di logout di WooCommerce ma non sono buoni come dovrebbero; Sto lavorando a una soluzione migliore che ti aiuterà a gestire il reindirizzamento di WooCommerce dopo il logout, proprio come il plug-in che ho creato per il logout di WooCommerce dopo il checkout.
Se desideri essere uno dei primi utenti, contattami, in modo che io possa aggiungerti all'elenco poiché il plug-in sarà pronto tra 2 settimane da oggi.
Per questo post, voglio condividere l'approccio del codice che puoi utilizzare per creare un reindirizzamento della disconnessione di WooCommerce efficiente, ma il plug-in avrà diverse opzioni condizionali che estendono le opzioni di reindirizzamento predefinite come ho realizzato nel plug-in WooCommerce Redirect dopo il checkout.
WooCommerce Logout Reindirizza le sezioni -Scorri e salta alla sezione
Nella maggior parte dei progetti dei miei clienti ho avuto difficoltà a far funzionare il reindirizzamento della disconnessione su un sito WooCommerce. Per questo motivo, ho deciso di mettere insieme questa guida definitiva per creare il reindirizzamento WooCommerce dopo la guida al logout.
Spero che possa essere un ottimo posto sia per gli utenti esperti che per quelli non esperti di tecnologia per trovare una soluzione per creare la migliore opzione di reindirizzamento della disconnessione di WooCommerce per i loro progetti.
Poiché questo non è un normale post sul blog, è lungo e può richiedere più tempo per leggere e comprendere ogni dettaglio. Vorrei aiutarti a scorrere le diverse sezioni in modo che tu possa scegliere rapidamente la soluzione di cui hai bisogno per il tuo progetto.
Sommario
- Reindirizzamento alla home page – Dopo il logout Reindirizzamento alla home page di Woocommerce
- Reindirizzamento della pagina corrente - Pulsante di logout di Woocommerce e reindirizzamento alla pagina corrente
- Reindirizzamento di una pagina specifica per ID – Pagina di reindirizzamento del logout di Woocommerce
- Reindirizzamento ruolo cliente – Reindirizzamento logout cliente Woocommerce
- Reindirizzamento alla pagina precedente- Woocommerce Login Reindirizzamento alla pagina precedente
- Reindirizzamento della pagina del mio account – Woocommerce Reindirizzamento della disconnessione del mio account
- Reindirizzamento URL esterno – Woocommerce Logout Redirect Function Php Snippet
- Correggi l'errore di reindirizzamento della disconnessione - Reindirizzamento della disconnessione di Woocommerce non funzionante
- URL di reindirizzamento WP Logout – URL di logout Woocommerce
- Plugin di reindirizzamento logout Woocommerce
- Creazione di un reindirizzamento del logout in WordPress: funzioni principali
- Reindirizzamento accesso WooCommerce: woocommerce_login_redirect Hook
- Funzione di logout di WordPress – wp_logout_url()
- WordPress Filter Hook logout_redirect
- WordPress Filter Hook login_redirect
- Reindirizzamento multisito WooCommerce dopo il logout
- Hook filtro: allowed_redirect_hosts
- Funzione di reindirizzamento di WordPress: wp_ Reindirizzamento
- Funzione di reindirizzamento di WordPress: wp_safe_redirect()
- Conclusione
Reindirizzamento WooCommerce dopo il logout
Per impostazione predefinita, WooCommerce dopo il logout, la registrazione e il login reindirizza gli utenti al "mio account". Questo comportamento non è auspicabile soprattutto sui siti Web orientati all'aumento delle vendite.
Le tre azioni di gestione degli utenti più comuni sul tuo sito WooCommerce includono:
- Registrazione Utente
- Login utente
- Registrazione Utente
- Modifica profilo utente
- Disconnessione utente
Ognuna di queste azioni può essere migliorata non solo per facilitare la navigazione dell'utente, ma anche per aumentare le prospettive di vendita sia per i clienti nuovi che per quelli esistenti. L'URL o il collegamento di disconnessione di WooCommerce si trova per impostazione predefinita nella pagina Il mio account e la maggior parte dei proprietari di negozi WooCommerce desidera modificare il reindirizzamento della disconnessione nella pagina Il mio account per reindirizzare a una pagina specifica o al funnel di vendita WooCommerce.
Come reindirizzare la disconnessione dalla pagina Il mio account?
Una delle domande più comuni sulla disconnessione di WooCommerce è come creare una disconnessione automatica dalla pagina Il mio account e reindirizzare a un altro sito Web o a una pagina interna.
Questa è la domanda che verrà affrontata e risolta in questo post, alla fine di questo tutorial, dovresti creare comodamente un reindirizzamento di logout WooCommerce personalizzato anche con poca o nessuna conoscenza di codifica precedente.
Perché creare un reindirizzamento del logout di WooCommerce
Un buon sito di eCommerce dovrebbe sfruttare tutte le opportunità per reindirizzare gli utenti alle pagine che possono aumentare le vendite e le conversioni dopo ogni azione: login, logout, carrello, checkout, registrazione ecc.
Si tratta di creare un buon funnel di vendita WooCommerce per promuovere altri prodotti vendite incrociate, vendite in calo e altri prodotti correlati o prodotti più venduti.
I reindirizzamenti alla disconnessione di WooCommerce ti consentono di aumentare il tasso di conversione delle vendite reindirizzando i clienti dopo la disconnessione a una pagina di destinazione delle vendite o a una pagina di reindirizzamento della canalizzazione di WooCommerce strategica, invece di reindirizzare il cliente alla pagina predefinita "il mio account".
Questo tutorial ti mostrerà come modificare l'impostazione predefinita del reindirizzamento di WooCommerce dopo la disconnessione e reindirizzare gli utenti a URL personalizzati come "funnel di vendita", "offerte speciali", "catalogo", la pagina precedente, una pagina di destinazione speciale o qualsiasi collegamento esterno che è adatto per aumentare le vendite e le conversioni.
In questo post, condividerò con te un rapido suggerimento su come creare un reindirizzamento personalizzato dopo la disconnessione da WooCommerce, proprio come ho condiviso in precedenza su come creare un reindirizzamento WooCommerce dopo il checkout. Idealmente, il logout predefinito di WooCommerce non è così fluido come dovrebbe essere. Mostra un messaggio di conferma che è un fastidio per un certo numero di utenti.
Ho discusso in precedenza su come rimuovere il messaggio di conferma della disconnessione di WooCommerce che rende più facile per i tuoi clienti la disconnessione automatica dal tuo sito WooCommerce senza che venga visualizzato il messaggio di conferma.
Ho anche condiviso lo snippet del codice di logout di WooCommerce che puoi estendere in questo tutorial per renderlo più efficiente aggiungendo l'opzione di reindirizzamento, proprio come ho fatto nel plug-in WooCommerce redirect dopo il checkout che presenta opzioni di reindirizzamento condizionale.
Cambia il reindirizzamento del logout di WooCommerce
Modificare il reindirizzamento della disconnessione di WooCommerce è un altro importante miglioramento dell'esperienza di disconnessione del cliente che dovresti considerare, proprio come ho illustrato come aggiungere il collegamento di disconnessione di WooCommerce al menu.
Quindi ora ci addentriamo nella creazione della migliore opzione di reindirizzamento della disconnessione di WooCommerce che puoi implementare immediatamente nel tuo negozio per migliorare l'esperienza dell'utente.
Questa opzione è semplice poiché è necessario utilizzare un filtro per controllare l'evento di logout quando si verifica.
Quando si verifica la disconnessione di WooCommerce, possiamo agganciarci a questo hook: woocommerce_login_redirect
quindi passare una funzione di callback con la nostra logica di reindirizzamento alla pagina in cui vogliamo reindirizzare l'utente dopo la disconnessione.
Se non hai familiarità con WooCommerce o WordPress action hook e filter hook, questo tutorial su apply_filters e do_action hook può essere un buon punto di partenza per abituarti a filtri e hook.
È sempre una buona pratica prima di iniziare a creare la funzione di reindirizzamento della disconnessione di WooCommerce, dovresti controllare se l'utente ha effettuato l'accesso. Ora descriviamo le varie opzioni che puoi utilizzare per creare il reindirizzamento della disconnessione di WooCommerce.
Ognuna di queste funzioni utilizza gli action hook e le funzioni predefiniti di WooCommerce e WordPress che sono discussi in dettaglio nelle altre sezioni di questo tutorial.
Reindirizzamento alla home page – Dopo il logout Reindirizzamento alla home page in Woocommerce
Uno dei reindirizzamenti WooCommerce più comuni dopo il logout è la home page. Per impostazione predefinita WooCommerce reindirizza alla pagina Il mio account al termine della disconnessione.
Se desideri reindirizzare l'utente alla home page, dovresti considerare di aggiungere questo codice al tuo file functions.php del tema WooCommerce attivo.
Basta copiare questo codice nel file functions.php del tuo tema e verificare se l'utente WooCommerce viene reindirizzato alla home page dopo il logout.
Reindirizzamento alla home page dopo lo snippet di logout
Puoi anche aggiungere questo frammento di codice al file dei plugin e funzionerà perfettamente.
add_action('wp_logout','njengah_homepage_logout_redirect'); funzione njengah_homepage_logout_redirect(){ wp_redirect( home_url() ); Uscita; }
Come funziona il codice di reindirizzamento
Ci sono due funzioni e un hook di azione utilizzati in questo codice per creare il reindirizzamento WooCommerce dopo il logout come nel codice sopra. Esaminiamo attentamente il ruolo di ciascuna di queste funzioni e agganciamo:
Hook: wp_logout
Questo codice usa l'action hook wp_logout che è stato discusso in dettaglio in questo articolo nella sezione – WordPress hook – wp_logout. Idealmente, questo è un hook di logout predefinito di WordPress che viene attivato dopo l'esecuzione del logout.
Funzione: wp_redirect()
In questo caso se guardi la funzione di callback se utilizza la funzione wp_redirect()
che è stata anche spiegata in dettaglio nella sezione wp_redirect Sezione della funzione WordPress.
Funzione: home_url()
L'ultima funzione utilizzata nella funzione di callback è home_url() , questa è una funzione di WordPress che restituisce l'URL della home page del sito corrente.
home_url( string $path = '', string|null $scheme = null )
Ad esempio puoi visualizzare l'URL della home page del sito corrente utilizzando la funzione home_url() come segue:
$url = home_url(); eco $url;
Quindi, in questo caso di reindirizzamento WooCommerce dopo il logout, restituirà l'URL del sito corrente e lo aggiungerà come stringa alla funzione wp_redirect()
.
Per capire come funziona l'hook di reindirizzamento della disconnessione di WooCommerce mentre lo applichiamo nel tuo codice, dobbiamo esaminare ciascuna di queste funzioni predefinite di WordPress e il ruolo che svolgono nella creazione di reindirizzamenti.
Reindirizzamento della pagina corrente – Pulsante di disconnessione da Woocommerce e reindirizzamento alla pagina corrente
Il secondo reindirizzamento WooCommerce più comune dopo il logout è il reindirizzamento alla pagina corrente dopo che un utente si è disconnesso. Questo è importante quando si desidera che l'utente rimanga nella stessa pagina in cui si trovava quando si è disconnesso.
In questo caso è necessario conoscere la pagina dell'utente corrente e applicarla alla logica di reindirizzamento del logout di WooCommerce.
Per creare il reindirizzamento WooCommerce alla pagina corrente dopo l'evento di logout, dobbiamo utilizzare la funzione get_permalink()
per farci conoscere la pagina corrente e quindi applicarla alla funzione di callback di logout.
In questo caso dovresti aggiungere il seguente snippet di codice al tuo functions.php
o ai tuoi file plugin per eseguire il reindirizzamento WooCommerce dopo il logout alla pagina corrente.
funzione njengah_redirect_current_page_after_logout($logout_url, $redirect){ ritorna $url_logout . '&redirect_to=' . get_permalink(); } add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );
Come funziona il codice
Questo codice comprende un filtro hook logout_url
e la funzione di callback ha la funzione get_permalink()
di WordPress che stabilisce la pagina corrente per gli utenti frontend e la usa per restituire l'URL di logout.
Filtro: logout_url()
In questo caso abbiamo utilizzato logout_url
che è un altro filtro di logout principale di WordPress e WooCommerce che è stato discusso in dettaglio nella sezione sottostante Funzione di WordPress logout_url
.
Questo codice potrebbe non funzionare per tutti gli utenti ed è probabile che non riesca per gli utenti nel back-end di amministrazione. Questo è un reindirizzamento appropriato dopo il logout per i clienti nella pagina Il mio account ma non per altri ruoli.
Per farlo funzionare anche per gli utenti nel backend, dobbiamo sostituire la funzione get_permalink()
con il valore della query HTTP che rappresenta la pagina corrente.
PHP Super Global $_SERVER['HTTP_HOST']
Quindi, in tal caso, dobbiamo aggiungere questo $_SERVER['HTTP_HOST'] super globale come alternativa alla funzione get_permalink()
. $_SERVER
è una variabile super globale PHP che contiene informazioni su intestazioni, percorsi e posizioni di script.
Il super globale $_SERVER['HTTP_HOST']
restituisce l'intestazione Host dalla richiesta corrente. Ci aiuta quindi a ottenere la pagina corrente in modo da poterla applicare all'URL di reindirizzamento di WooCommerce dopo il logout. Il nuovo codice che funziona per tutti gli utenti dovrebbe essere il seguente:
funzione njengah_redirect_current_page_after_logout($logout_url, $redirect){ ritorna $url_logout . '&redirect_to=http://' . $_SERVER['HTTP_HOST'] . $_SERVER['RICHIESTA_URI']; } add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );
Ora puoi creare un pulsante per concludere il link di reindirizzamento seguendo il tutorial che ho condiviso in precedenza su come creare il pulsante di logout di WooCommerce.
Reindirizzamento pagina specifica – Pagina di reindirizzamento logout Woocommerce (per ID)
In alcuni casi potresti voler reindirizzare gli utenti a una pagina specifica dopo che si sono disconnessi. La pagina può essere aggiunta alla logica di reindirizzamento della disconnessione di WooCommerce utilizzando l'id della pagina.
In questo caso è necessario conoscere l'ID della pagina in modo da passarlo nella funzione di reindirizzamento. Puoi ottenere il reindirizzamento della disconnessione di WooCommerce a una pagina specifica tramite ID utilizzando il seguente snippet di codice.
add_action('wp_logout','njengah_specific_page_logout_redirect'); funzione njengah_specific_page_logout_redirect(){ wp_redirect(get_permalink($pageId)); Uscita; }
Come funziona il codice
Questo codice utilizza l'action hook wp_logout
e nella funzione di callback abbiamo la funzione get_permalink()
con una variabile $pageID
che dovrebbe essere sostituita dall'ID della pagina in cui si desidera reindirizzare l'utente dopo il checkout.
Se non sei sicuro dell'ID della pagina puoi utilizzare questo post che ho scritto su come ottenere l'ID della pagina in WordPress.
Funzione WooCommerce: wc_get_page_id()
Puoi anche utilizzare il nome della pagina in cui desideri reindirizzare l'utente insieme alla funzione WooCommerce wc_get_page_id()
come nel frammento di codice di seguito:
add_action('wp_logout','njengah_specific_page_logout_redirect'); funzione njengah_specific_page_logout_redirect(){ wp_redirect(get_permalink(wc_get_page_id('negozio')))); Uscita; }
La funzione wc_get_page_id()
recupera gli ID di pagina ed è comunemente usata per myaccount, edit_address, negozio, carrello, checkout, pay, view_order, termini e resi -1 se non viene trovata alcuna pagina.
Reindirizzamento ruolo cliente – Reindirizzamento logout cliente Woocommerce
Un altro scenario di reindirizzamento di WooCommerce dopo il logout è il punto in cui desideri reindirizzare gli utenti in base al ruolo. Probabilmente vorrai reindirizzare il cliente a una determinata pagina dopo la disconnessione invece del reindirizzamento predefinito del mio account dopo la disconnessione.
In questo caso puoi eseguire il reindirizzamento dopo il logout per il ruolo cliente da solo o per un altro ruolo o un gruppo di ruoli utilizzando lo snippet di codice condiviso di seguito:
if( is_user_logged_in() ) { // controlla se c'è un utente che ha effettuato l'accesso $utente = wp_get_utente_corrente(); // ottenere e impostare l'utente corrente $ruoli = (array) $utente->ruoli; // ottenere il ruolo // $ruoli[0]; // Restituisce un ruolo //restituisce $ruoli; // restituisce l'array dei ruoli // Fai il confronto qui if($ruoli[0] == 'cliente'){ // Esegui il reindirizzamento se il ruolo dell'utente corrente è uguale a cliente add_action('wp_logout','njengah_specific_page_logout_redirect'); funzione njengah_specific_page_logout_redirect(){ wp_redirect(get_permalink($pageId)); Uscita; } } }
Come funziona il codice
Abbiamo iniziato controllando se l'utente ha effettuato l'accesso, come ho spiegato in un post precedente su come scoprire se l'utente di WordPress ha effettuato l'accesso.
Ottieni il ruolo utente
Il secondo passaggio è stato quello di ottenere il ruolo dell'utente corrente in WordPress utilizzando la funzione wp_get_current_user()
ed esigendo il ruolo dell'utente corrente.
Confronta ed esegui il reindirizzamento se il ruolo corrisponde al cliente
Il terzo passaggio è stato ora fare il confronto del ruolo ottenuto nel passaggio precedente con il ruolo del cliente e se il ruolo corrisponde ora aggiungere l'azione di reindirizzamento e la funzione.
È possibile sostituire il ruolo con un altro altro ruolo, inclusi i ruoli personalizzati. Puoi anche modificare la pagina di reindirizzamento passando un ID di pagina diverso nella funzione get_permalink()
.
Reindirizzamento alla pagina precedente - Disconnessione da Woocommerce Reindirizzamento alla pagina precedente
Puoi creare un reindirizzamento WooCommerce dopo il logout alla pagina precedente utilizzando le sessioni. In questo caso è necessario creare una sessione e aggiungerla a una funzione e utilizzarla nella logica per creare il reindirizzamento dopo il logout alla pagina precedente.
Puoi utilizzare lo snippet di codice qui sotto per creare il reindirizzamento della disconnessione di WooCommerce alla pagina precedente:
// Avvia la sessione globale per salvare l'URL del referer funzione inizio_sessione() { inizio_sessione(); } add_action('init', 'start_session', 1); // Ottieni l'URL del referer e salvalo funzione redirect_url() { se (è_utente_loggato_in()) { $_SESSION['referer_url'] = wp_get_referer(); } altro { sessione_distruggi(); } } add_action( 'template_redirect', 'redirect_url' ); //Reindirizzamento alla disconnessione funzione njengah_logout_redirect() { if (isset($_SESSION['referer_url'])) { wp_redirect($_SESSION['referer_url']); } altro { wp_redirect(home_url()); } } add_filter('wp_logout', 'njengah_logout_redirect', 1100, 2);
Come funziona il codice
Questo codice ha utilizzato le sessioni PHP per creare una sessione e salvare l'URL della pagina corrente e nella funzione di reindirizzamento testiamo l'URL della sessione impostato – $_SESSION['referer_url']
.
Se è impostato, creiamo il reindirizzamento a quella pagina come negli altri reindirizzamenti di logout di cui abbiamo discusso in precedenza.
Reindirizzamento della pagina del mio account – Woocommerce Reindirizzamento della disconnessione del mio account
Il reindirizzamento della disconnessione di WooCommerce dalla pagina Il mio account è una delle domande più frequenti sulla disconnessione di WooCommerce.
Questo non è diverso da altri reindirizzamenti di logout, infatti puoi aggiungere un reindirizzamento di logout nella pagina Il mio account utilizzando lo snippet di codice di seguito:
add_action('wp_logout','njengah_my_account_page_logout_redirect'); funzione njengah_my_account_page_logout_redirect(){ wp_redirect(get_permalink($pageId)); Uscita; }
Puoi modificare il valore della variabile $pageID
nella funzione get_permalink() in modo che corrisponda all'ID pagina della pagina di reindirizzamento o del post e questo funzionerà senza problemi.
Reindirizzamento URL esterno- Woocommerce Logout Redirect Function Php Snippet:
Se desideri reindirizzare gli utenti a un URL esterno dopo che si sono disconnessi dal tuo negozio WooCommerce, puoi farlo utilizzando uno snippet aggiunto alle funzioni del tuo tema o in un plug-in personalizzato.
Questo frammento php della funzione di reindirizzamento della disconnessione di WooCommerce che può essere aggiunto al file functions.php per creare il reindirizzamento dopo la disconnessione è il seguente:
add_action('wp_logout','njengah_redirect_after_logout'); funzione njengah_redirect_after_logout(){ wp_redirect($url); Uscita(); }
Aggiungi semplicemente questo frammento di codice nel functions.php e sostituisci la variabile $url
con il tuo rispettivo URL di reindirizzamento tra virgolette.
Ad esempio, se desideri reindirizzare l'utente a un URL esterno dopo la disconnessione e l'URL esterno è http://example.com , puoi sostituire la variabile $url
con l'URL completo come nel codice seguente:
add_action('wp_logout','njengah_redirect_after_logout'); funzione njengah_redirect_after_logout(){ wp_redirect( 'http://example.com'); Uscita(); }
URL di reindirizzamento WP Logout – URL di logout Woocommerce
Se desideri creare un pulsante di disconnessione WooCommerce e inserirlo in un modello personalizzato o in qualsiasi altra pagina, ti aiuta a conoscere l'URL di reindirizzamento della disconnessione di WP che puoi facilmente aggiungere su qualsiasi pulsante o collegamento.
Quello che segue è l'URL di reindirizzamento della disconnessione di WP che può essere modificato in qualsiasi altra pagina modificando il parametro 'mio-account' “
wp_logout_url( get_permalink( wc_get_page_id( 'il mio account' ) ) );
Puoi anche avere l'URL esterno nell'URL di reindirizzamento della disconnessione di WooCommerce come segue:
wp_logout_url( 'http://example.com/' );
Puoi anche aggiungere le funzioni di WordPress all'URL di reindirizzamento della disconnessione di WP come segue:
wp_logout_url( home_url() );
Questo URL di reindirizzamento della disconnessione di WP può essere aggiunto in modelli personalizzati e può anche essere utilizzato in codici brevi o pulsanti per visualizzare un'opzione di disconnessione in luoghi che non sono le posizioni predefinite per il pulsante di disconnessione, come widget, piè di pagina, menu della barra in alto e molto altro.
Correggi l'errore di reindirizzamento della disconnessione: il reindirizzamento della disconnessione di Woocommerce non funziona
Se hai personalizzato il reindirizzamento della disconnessione di WooCommerce e non funziona, probabilmente c'è un bug nel tuo codice o uno dei seguenti motivi.
Priorità gancio
Il primo passo è controllare la priorità del tuo add_action()
o add_filter()
rispetto agli altri hook di WordPress. Questa è una delle cause più comuni dell'errore di reindirizzamento della disconnessione.
Maggiore è la priorità del gancio, prima avviene il caricamento. Se i due ganci hanno la stessa priorità viene caricato per primo quello posto sopra l'altro. La regolazione della priorità dell'azione o dell'hook del filtro può essere un buon punto di partenza per il debug.
Errore di codice – Errore di sintassi
Il secondo passaggio è necessario verificare se tutto il codice contiene un errore e un errore comune è un errore di sintassi. È possibile che durante la modifica del codice ci si dimentichi di inserire una virgoletta di chiusura o una parentesi.
Counter controlla il codice e preferibilmente aggiungi il codice a un controllo degli errori di sintassi PHP.
È meglio se hai familiarità con strumenti come Visual Studio o IDE come Netbeans poiché questi strumenti possono aiutarti a selezionare rapidamente gli errori di sintassi nel tuo codice.
Codice aggiunto al file errato
Un'altra causa comune dell'errore di reindirizzamento della disconnessione di WooCommerce che non funziona è quando hai il codice giusto ma lo aggiungi nel posto sbagliato. In questo caso, se stai aggiungendo il codice a un tema, dovrebbe essere rigorosamente aggiunto al file functions.php.
Quando aggiungi questo codice a un plugin dovresti fare attenzione a non aggiungerlo all'interno di una classe che non è istanziata. È una buona idea aggiungerlo al file di base del plug-in e correggere anche eventuali modifiche che potrebbero essere necessarie per garantire che il codice si adatti al contesto della struttura del file del plug-in personalizzato.
Plugin o conflitti di temi
Nella maggior parte dei casi ci sono plugin o temi che controllano il reindirizzamento di login e logout in WooCommerce. Questi plugin possono entrare in conflitto portando all'errore di reindirizzamento della disconnessione.
Se riscontri un errore di disconnessione del reindirizzamento di WooCommerce, puoi iniziare disattivando tutti i plugin e utilizzando il tema WordPress predefinito per verificare se l'errore è causato da un conflitto di plugin o temi.
Plugin di reindirizzamento logout Woocommerce
Infine, niente rende più facile aggiungere il reindirizzamento WooCommerce dopo la disconnessione di un plug-in ben codificato con le giuste funzionalità, una buona esperienza utente e un supporto di livello mondiale. Per anni ho risolto centinaia di problemi di logout, login e registrazione su WooCommerce e WordPress in generale.
Nelle ultime settimane, ho messo insieme tutta la mia esperienza e le lezioni apprese sui reindirizzamenti e il logout di WooCommerce. Ho creato un notevole URL di reindirizzamento della disconnessione di WooCommerce che comprende le seguenti funzionalità:
Funzioni di reindirizzamento della disconnessione
- Reindirizzamento WooCommerce dopo il logout a qualsiasi pagina: seleziona la pagina da un elenco a discesa
- Reindirizzamento WooCommerce dopo il logout a qualsiasi singolo prodotto: seleziona il prodotto da un elenco a discesa
- Reindirizzamento WooCommerce dopo il logout a qualsiasi singolo post: seleziona il post da un elenco a discesa
- Reindirizzamento WooCommerce dopo il logout a qualsiasi categoria di prodotto: seleziona la categoria di prodotto da un elenco a discesa
- WooCommerce reindirizza dopo il logout alla pagina corrente
- Reindirizzamento WooCommerce dopo il logout alla pagina precedente
- Reindirizzamento WooCommerce dopo il logout a URL esterno
- Reindirizzamento WooCommerce dopo il logout in base al ruolo
- Reindirizzamento WooCommerce dopo il logout in base alla cronologia degli acquisti (adatto per offerte speciali)
- WooCommerce forza il logout dopo il checkout
Funzioni di reindirizzamento dell'accesso
- Reindirizzamento WooCommerce dopo l'accesso a qualsiasi pagina: seleziona la pagina da un elenco a discesa
- Reindirizzamento WooCommerce dopo l'accesso a qualsiasi singolo prodotto: seleziona il prodotto da un elenco a discesa
- Reindirizzamento WooCommerce dopo l'accesso a un singolo post: seleziona il post da un elenco a discesa
- Reindirizzamento WooCommerce dopo l'accesso a qualsiasi categoria di prodotto: seleziona la categoria di prodotto da un elenco a discesa
- Reindirizzamento WooCommerce dopo l'accesso alla pagina corrente
- Reindirizzamento WooCommerce dopo l'accesso alla pagina precedente
- Reindirizzamento WooCommerce dopo l'accesso all'URL esterno
- Reindirizzamento WooCommerce dopo l'accesso in base al ruolo
- Reindirizzamento WooCommerce dopo l'accesso in base alla cronologia degli acquisti (adatto per offerte speciali)
Il plug-in WooCommerce Redirect after Login & Logout (WRAL) dovrebbe essere rilasciato nelle prossime settimane. Se desideri essere uno dei primi utenti, non rimanere indietro poiché il lancio arriverà con uno sconto del 70%.
Puoi iscriverti all'elenco dei primi 100 early adopter contattandomi immediatamente. L'uscita è prevista per il 2 novembre 2020 .
Creazione di un reindirizzamento del logout in WordPress: funzioni principali
Dopo aver esaminato il modo rapido per aggiungere snippet per creare il reindirizzamento WooCommerce dopo la disconnessione, è utile evidenziare le funzioni e gli hook di disconnessione predefiniti di WordPress e spiegare in dettaglio agli sviluppatori che stanno leggendo questa guida per capire come funzionano questi reindirizzamenti.
Queste funzioni e l'action hook possono essere utili per creare il reindirizzamento WooCommerce dopo il logout. In generale puoi creare il reindirizzamento della disconnessione di WooCommerce utilizzando i seguenti hook e funzioni:
- funzione wp_logout_url()
- gancio di azione wp_logout
- logout_redirect filtro
Voglio spiegare ciascuna di queste funzioni e come puoi usarla per creare il reindirizzamento WooCommerce dopo il checkout e perché potresti volerne usare una sull'altra.
È anche importante evidenziare il modo in cui puoi creare il reindirizzamento dell'accesso a WooCommerce utilizzando i filtri. Esiste anche una funzione utile per creare il reindirizzamento dell'accesso in WooCommerce. Iniziamo con l'hook di reindirizzamento dell'accesso che è molto utile per creare il reindirizzamento dell'accesso in WooCommerce.
Reindirizzamento accesso WooCommerce: woocommerce_login_redirect Hook
Questo è lo speciale hook di WooCommerce che ci consente di controllare le funzioni di reindirizzamento dell'accesso in WooCommerce. È simile alla funzione di disconnessione predefinita di WordPress che viene applicata durante la creazione di un reindirizzamento WooCommerce dopo la disconnessione. Il suo utilizzo di base è il seguente:
apply_filters( 'woocommerce_login_redirect', $redirect, $user );
Come puoi vedere ci vogliono 2 parametri e i parametri sono i seguenti:
Parametro | Descrizione | Esempi di utilizzo |
$redirect | Questa è la pagina di reindirizzamento in cui l'utente atterrerà dopo l'accesso. Può essere utile per modificare il reindirizzamento WooCommerce predefinito dopo l'accesso per consentire all'utente di accedere alla pagina specifica dopo l'accesso. | add_filter('woocommerce_login_redirect', 'login_redirect') Puoi aggiungere l'hook del filtro e nella funzione di callback puoi passare la logica di reindirizzamento come segue: Come puoi vedere ho aggiunto il parametro $redirect_to e restituito l'URL di reindirizzamento per reindirizzare l'utente alla home page dopo il login. |
$user | Questo è l'utente a cui viene applicata l'azione di reindirizzamento. Ciò può essere particolarmente utile quando si desidera creare un reindirizzamento dopo l'accesso per utenti specifici. |
Hook: woocommerce_login_redirect non funziona
Questo codice può essere utilizzato nei temi e nel codice del plug-in, ma è necessario comprendere le priorità per evitare di sparare in anticipo o in ritardo, dove porterà allo scenario comune di woocommerce_login_redirect
non funzionante.
Devi anche scoprire altri motivi che possono portare a woocommerce_login_redirect
non funzionante. Di particolare interesse è un altro plugin che ha una funzione simile o uguale che funziona prima che il codice venga attivato.
Quindi, se scopri che woocommerce_login_redirect
non funziona., la prima cosa da controllare è la priorità di un esempio di caso potresti avere questi due frammenti di codice:
# Priorità inferiore
add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 1100, 2 );
# Priorità più alta
add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 10, 2 );
Come puoi vedere in entrambi i casi i numeri di priorità sono diversi, la regola di base è che più piccolo è il numero maggiore è la priorità, il che significa che viene caricato per primo.
Quando hai questa funzione utilizzata altrove nel tuo tema o in un altro plug-in e stai cercando di ricreare il reindirizzamento WooCommerce dopo la funzione di accesso o disconnessione, devi prestare attenzione alla priorità. Questa è la soluzione per risolvere il problema woocommerce_login_redirect
non funzionante.
Funzione di logout di WordPress – wp_logout_url()
Questa funzione è responsabile della creazione dell'URL di logout in WordPress.
Aiuta gli sviluppatori e gli utenti di WordPress a creare rapidamente un URL di disconnessione che può essere aggiunto a un collegamento o un pulsante e ho illustrato in questo articolo: come creare l'URL di disconnessione di WooCommerce .
WooCommerce estende la funzionalità avendo gli endpoint URL che svolgono un ruolo cruciale nell'aiutare sviluppatori e utenti a creare una pagina di logout di WooCommerce senza alcuna codifica.
Se vuoi comprendere a fondo il processo di logout di WooCommerce e WordPress, è utile iniziare valutando la funzione wp_logout_url()
.
È una funzione speciale che incontrerai in diversi temi e plugin di WordPress ed è una buona idea dare un'occhiata a ciò che sta accadendo sotto il cofano.
L'utilizzo di base della funzione è il seguente:
wp_logout_url( string $redirect = '' )
Come puoi vedere, la funzione accetta un parametro che è una stringa e di seguito sono riportati i dettagli del parametro:
Parametro | Descrizione | Esempi di utilizzo |
$redirect | Questo è un parametro stringa ed è facoltativo aggiungerlo, puoi lasciarlo vuoto e la funzione funzionerà. È comunque utile nel caso in cui desideri aggiungere un URL di reindirizzamento a una pagina specifica. Quindi in questo caso il parametro Puoi anche passare altre funzioni come parametri che restituiscono rigorosamente una stringa poiché | È possibile utilizzare questa funzione insieme a un collegamento come segue: È possibile utilizzare questa funzione e passare un'altra funzione come parametro che restituisce una stringa dell'URL di reindirizzamento come segue: |
Se desideri comprendere ulteriormente la funzione, è utile guardare il codice definito nel core di WordPress. Questo codice funzione principale è il seguente:
funzione wp_logout_url( $reindirizzamento = '' ) { $args = array(); if ( ! vuoto( $reindirizzamento ) ) { $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, 'logout'); /** * Filtra l'URL di disconnessione. * * @dal 2.8.0 * * @param string $logout_url L'URL di logout con codifica HTML. * @param string $redirect Percorso a cui reindirizzare al logout. */ return apply_filters( 'logout_url', $logout_url, $redirect ); }
Azione Hook : wp_logout
Questo è un hook di azione che viene attivato quando l'utente è stato disconnesso. Svolge un ruolo importante nella creazione della funzionalità di reindirizzamento dopo il logout. L'utilizzo di base di questa funzione è il seguente:
do_action( 'wp_logout', int $user_id )
Come puoi vedere ci vuole un parametro e i dettagli del parametro sono i seguenti:
Parametro | Descrizione | Esempi di utilizzo |
$user_id | Questo è l'ID dell'utente che è stato disconnesso. | add_action('wp_logout','logout_redirect'); In questo caso lo abbiamo aggiunto come hook di azione e possiamo passare la nostra logica di reindirizzamento dopo il logout nella funzione di callback come segue: Quindi in questo caso stiamo reindirizzando l'utente dopo il logout alla home page. |
Queste funzioni sono utili quando si desidera controllare il reindirizzamento dell'utente dopo il login o il logout.
WordPress Filter Hook logout_redirect
Un altro hook del filtro che puoi utilizzare per creare un reindirizzamento dopo la disconnessione in WooCommerce è il filtro hook logout_redirect. Questo hook del filtro funziona come la funzione wp_logout_url()
o il hook dell'azione wp_logout.
È un filtro WordPress di base progettato per aiutare nella creazione di reindirizzamenti WordPress o WooCommerce dopo il logout. Il suo utilizzo di base è il seguente:
apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )
Come puoi vedere ha tre parametri e il parametro può essere descritto in dettaglio come segue:
Parametro | Descrizione |
$redirect_to | Questo è l'URL di destinazione del reindirizzamento e deve essere una stringa, ad esempio http://example.com |
$requested_redirect_to | Questo è l'URL di destinazione del reindirizzamento richiesto che viene passato come parametro e deve anche essere una stringa proprio come il primo parametro. |
$user | Questo è l'oggetto utente: l'oggetto WP_User dell'utente che è stato disconnesso. |
Puoi creare un reindirizzamento WordPress basato su filtro dopo il logout utilizzando logout_redirect come segue:
add_filter('login_redirect', 'njengah_logout_redirect', 10, 3); funzione njengah_logout_redirect($posizione, $richiesta, $utente) { utente $ globale; if ( isset( $ utente-> ruoli ) && è_array ( $ utente-> ruoli ) ) { if ( in_array( 'abbonato', $ utente-> ruoli ) ) { ritorno home_url(); } altro { ritorna $redirect_to; } } Restituzione; }
WordPress Filter Hook login_redirect
È anche importante sottolineare che esiste un filtro simile per il login: login_redirect funziona allo stesso modo del filtro logout_redirect. In effetti, l'utilizzo è simile e viene fornito con 3 parametri e l'espressione generale è la seguente:
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:
Parametro | Descrizione |
$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:
Parametro | Descrizione | 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' ); |
$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( 'host_redirect_consentiti', 'njengah_allow_parent_redirect'); funzione njengah_allow_parent_redirect($consentito) { $consentito = array( 'blog.example.com', 'codex.example.com', ); return array_merge($host, $consentito); }
Questo serve semplicemente allo scopo di convalidare gli URL di reindirizzamento consentiti, che è un'aggiunta importante al reindirizzamento WooCommerce multisito dopo il logout poiché nella maggior parte dei casi il reindirizzamento wp_logout
predefinito fallirà senza il filtraggio degli host di reindirizzamento.
Funzione di reindirizzamento di WordPress: wp_ Reindirizzamento
Quando crei un reindirizzamento in WooCommerce o WordPress, come ho spiegato nel post su come creare un reindirizzamento dopo il checkout in WooCommerce, hai bisogno della funzione wp_redirect()
.
Comprendere il ruolo di questa funzione è fondamentale nella creazione di reindirizzamenti WooCommerce dopo il checkout poiché è la funzione principale responsabile dell'esecuzione dei reindirizzamenti in WordPress e WooCommerce. Descriviamo brevemente come funziona e il parametro che richiede. L'utilizzo generale della funzione wp_redirect() è il seguente:
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
Come puoi vedere questa funzione prende tre parametri e possono essere descritti in dettaglio come segue:
Parametro | Descrizione |
$location | Questo è il percorso o l'URL a cui reindirizzare l'utente. Deve essere una stringa ed è necessaria per il funzionamento della funzione. |
$status | Questo è il codice di stato della risposta HTTP che dovrebbe essere applicato a questo reindirizzamento e questo è un numero intero ed è facoltativo utilizzarlo. Ad esempio, puoi aggiungere 301 per il reindirizzamento permanente oppure puoi lasciarlo come valore predefinito che è 302, il che significa spostato temporaneamente. |
$x_redirect_by | Questa è l'applicazione che esegue il reindirizzamento e questa per impostazione predefinita è WordPress e raramente dovrebbe essere disimpostata poiché stiamo creando un reindirizzamento WooCommerce dopo il logout che si trova nel contesto di WordPress. |
Nota
È importante capire che quando si utilizza la funzione wp_redirect(), tit non esce da solo. È quindi importante aggiungere sempre l'uscita dopo la funzione poiché l'uscita in PHP viene utilizzata per terminare lo script in esecuzione dopo l'esecuzione della riga di codice precedente. Quindi il modo migliore per utilizzare la funzione wp_redirect
è il seguente:
wp_redirect($url); Uscita
Puoi anche creare un reindirizzamento condizionale usando la funzione wp_redirect con l' if statement
come segue:
se (wp_redirect($url)) { Uscita; }
Questa funzione può essere utilizzata insieme all'hook template_redirect
come nel codice seguente:
funzione njengah_wp_redirect_example() { if ( is_user_logged_in() && is_page( $id ) ){ wp_redirect(get_permalink($id)); Uscita; } } add_action( 'template_redirect', 'njengah_wp_redirect_example' );
Come puoi vedere nel codice sopra, può prendere una funzione come parametro a condizione che la funzione restituisca una stringa per il parametro $location come nel caso della funzione get_permalink( )
Funzione di reindirizzamento di WordPress: wp_safe_redirect()
La wp_safe_redirect()
è la seconda funzione di reindirizzamento di WordPress che può essere utile per eseguire il reindirizzamento di WooCommerce dopo il logout. Questa funzione funziona come la funzione wp_redirect()
ma ha una verifica aggiuntiva dell'URL di reindirizzamento.
Nella funzione wp_redirect il parametro $location non è verificato ma nella funzione wp_safe_redirect()
viene verificato il parametro $location
per accertare se è un host consentito.
Questa è la differenza tra le due funzioni di reindirizzamento. L'uso generale di questa funzione di reindirizzamento è simile a quello di wp_redirect
e l'espressione generale è la seguente:
wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
Come puoi vedere i parametri sono gli stessi:
Parametro | Descrizione |
$location | Questo è il percorso o l'URL a cui reindirizzare l'utente. Deve essere una stringa ed è necessaria per il funzionamento della funzione. |
$status | Questo è il codice di stato della risposta HTTP che dovrebbe essere applicato a questo reindirizzamento e questo è un numero intero ed è facoltativo utilizzarlo. Ad esempio, puoi aggiungere 301 per il reindirizzamento permanente oppure puoi lasciarlo come valore predefinito che è 302, il che significa spostato temporaneamente. |
$x_redirect_by | Questa è l'applicazione che esegue il reindirizzamento e questa per impostazione predefinita è WordPress e raramente dovrebbe essere disimpostata poiché stiamo creando un reindirizzamento WooCommerce dopo il logout che si trova nel contesto di WordPress. |
Questa funzione consente agli sviluppatori di plug-in di impostare o rimuovere l'elenco degli host consentiti e se l'host non è nell'elenco degli host consentiti, il reindirizzamento non riesce e il valore predefinito è wp-admin.
Proprio come la funzione wp_redirect
, wp_safe_redirect
non esce automaticamente e richiede anche di aggiungere l'uscita come nei frammenti di codice seguenti:
wp_safe_redirect($url); Uscita;
Puoi anche usarlo con l'istruzione condizionale come nell'esempio precedente:
se (wp_safe_redirect($url)) { Uscita; }
Conclusione
In questo post, ho delineato passo passo i modi in cui puoi creare le varie opzioni di reindirizzamento WooCommerce dopo la disconnessione. Ho illustrato con un esempio di codice come creare il logout di reindirizzamento di WordPress o WooCommerce utilizzando la varietà di funzioni e hook disponibili dal core di WordPress.
In un breve riassunto per riassumere ciò che abbiamo trattato; come creare un reindirizzamento dopo il logout a:
- Reindirizzamento della disconnessione dalla pagina corrente
- Reindirizzamento della disconnessione della pagina precedente
- Reindirizzamento della disconnessione dalla home page
- Reindirizzamento di logout della pagina specifico
- Reindirizzamento di disconnessione URL esterno
Spero che questa guida ti dia un ottimo punto di partenza durante la creazione del reindirizzamento della disconnessione in WooCommerce. Se desideri condividere feedback o contribuire a migliorare questa guida e persino segnalare errori o errori, non esitare a metterti in contatto con me. Se ti piace questa guida potresti anche voler dare un'occhiata all'altra guida che ho scritto su come creare il reindirizzamento WooCommerce dopo l'acquisto.
Articoli simili
- Come creare un database MySQL WordPress tramite riga di comando
- WooCommerce Logout PHP Snippet per creare il pulsante di logout
- Come aggiungere un nuovo menu nel menu della pagina Il mio account in Woocommerce
- Come riordinare le categorie Pagina del negozio Tema WooCommerce Storefront
- Come ottenere metodi di pagamento in WooCommerce » Esempio di codice
- Come iniziare con WooCommerce Storefront Theme
- Come iniziare con Vue Storefront [Guida per principianti]
- Come impostare la larghezza completa della pagina del prodotto del tema della vetrina di WooCommerce
- Come modificare lo slogan del tema della vetrina WooCommerce
- Come impostare la home page in WooCommerce Storefront
- Come reindirizzare l'utente se non ha effettuato l'accesso a WordPress » Reindirizzamento della pagina
- Come modificare l'avviso "Aggiunto al carrello" di WooCommerce
- Come reindirizzare una pagina WordPress senza plugin?
- Come ottenere l'accesso alle informazioni dell'utente in WordPress
- Come rimuovere il tema WooCommerce Storefront di prodotti correlati
- Come verificare se l'utente ha effettuato l'accesso in WordPress
- Come aggiungere l'immagine di sfondo dell'intestazione del tema di Storefront
- Come rimuovere il tema della vetrina WooCommerce del titolo della pagina
- Come impostare la guida rapida alla spedizione di WooCommerce Storefront
- Come rimuovere il menu Download Il mio account Pagina WooCommerce
- Come modificare le dimensioni del logo WooCommerce Storefront
- Come aggiungere contenuti prima o dopo the_content e nei tipi di post personalizzati
- Come rendere scorrevole il menu Divi Mobile Soluzione di correzione rapida
- Come aggiungere testo prima del prezzo in WooCommerce »Aggiungi testo prima del prezzo
Le migliori liste di plugin per WooCommerce
- Oltre 30 migliori plugin WooCommerce per il tuo negozio (la maggior parte sono GRATUITI)
- 26 migliori plugin WooCommerce per il feedback dei clienti
- Oltre 30 migliori plugin per liste di posta di WordPress per la creazione di liste
- Oltre 30 migliori plugin per blog WordPress per blog di successo