Reindirizzare l'utente dopo il logout
Sto cercando di creare una pagina per cancellare l'abbonamento per i miei membri, ma per vedere il modulo di cancellazione devono essere disconnessi, quindi il primo link è:
/wp-login.php?action=logout&_wpnonce=ba51bbcdc3.
Una volta disconnessi, devo reindirizzarli al modulo di cancellazione, ma non posso semplicemente impostare un reindirizzamento, perché questa è anche la pagina di login.

Puoi utilizzare il tag template wp_logout_url()
per generare un link di logout. Puoi specificare l'URL a cui l'utente verrà reindirizzato come primo parametro:
wp_logout_url( 'http://example.com' );
Il codice sopra genererà un URL simile a questo: /wp-login.php?action=logout&_wpnonce=ba51bbcdc3&redirect_to=http://example.com/unsubscribe
. Puoi trasformarlo in un link in questo modo:
<a href="<?php echo wp_logout_url( home_url( 'unsubscribe' ) ); ?>" title="Logout">Logout & Annulla l'iscrizione</a>
Se vuoi utilizzare questo in una pagina o articolo, devi creare uno shortcode:
function wpse_77939_unsubscribe_link() {
return sprintf(
'<a href="%s" title="Logout">Logout & Annulla l'iscrizione</a>',
wp_logout_url( home_url( 'unsubscribe' ) )
);
add_shortcode( 'unsubscribe-link', 'wpse_77939_unsubscribe_link' );
Puoi poi aggiungere [unsubscribe-link]
a un articolo o pagina dove vuoi che appaia il link.
Se stai reindirizzando a un altro sito web oltre al tuo, devi aggiungere questo codice al tuo file functions.php
(sostituisci example.com
con il dominio del sito):
add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts( $allowed ) {
$allowed[] = 'example.com';
return $allowed;
}

WordPress include un tag template che puoi utilizzare: wp_logout_url()
. Sono poche righe di codice semplici se vuoi reindirizzare gli utenti a un altro URL dopo che hanno effettuato il logout.
Ho scritto un tutorial alla fine dello scorso anno su come utilizzare questo tag template. In sintesi, devi creare un filtro in functions.php
e poi creare un link di Logout in sidebar.php
.
Se stai reindirizzando a un altro sito web oltre al tuo, devi aggiungere questo codice al tuo file functions.php
(sostituisci example.com
con il dominio del sito):
add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts($link) {
$link[] = 'example.com';
return $link;
}
Poi devi aggiungere questa riga al tuo file sidebar.php
o ovunque tu possa eseguire PHP:
<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>" title="Logout">Logout</a>
