Reindirizzare l'utente dopo il logout

2 gen 2013, 06:18:24
Visualizzazioni: 16.9K
Voti: 2

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.

0
Tutte le risposte alla domanda 3
1

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;
}
2 gen 2013 07:50:14
Commenti

Questa risposta amplia il post di @WordPress Kid

shea shea
2 gen 2013 08:31:09
0

Utilizza questo codice se lo stai inserendo nel menu tramite il gestore dei menu

http://www.example.com/wp-login.php?action=logout&redirect_to=http://www.example.com/
27 apr 2014 09:17:18
2

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>
2 gen 2013 07:40:04
Commenti

Per favore spiegami come farlo come parte della tua risposta

shea shea
2 gen 2013 07:55:57

Fatto @bungeshea.

Naveen Chand K Naveen Chand K
2 gen 2013 08:02:54