web-dev-qa-db-fra.com

Rediriger l'utilisateur après la déconnexion

J'essaie de créer une page de désinscription pour mes membres, mais pour pouvoir consulter le formulaire de désinscription, ils doivent être déconnectés. Le premier lien est le suivant:

/wp-login.php?action=logout&_wpnonce=ba51bbcdc3. 

Une fois qu'ils sont déconnectés, j'ai besoin qu'ils soient redirigés vers le formulaire de désinscription, mais je ne peux pas simplement configurer un transfert, car c'est aussi la page de connexion.

1
Christian Ostmo

Vous pouvez utiliser la balise wp_logout_url() template pour générer un lien de déconnexion. Vous pouvez spécifier l'URL vers laquelle l'utilisateur sera redirigé en tant que premier paramètre:

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

Le code ci-dessus générera une URL ressemblant un peu à ceci: /wp-login.php?action=logout&_wpnonce=ba51bbcdc3&redirect_to=http://example.com/unsubscribe. Vous pouvez en faire un lien comme ceci:

<a href="<?php echo wp_logout_url( home_url( 'unsubscribe' ) ); ?>" title="Logout">Logout & Unsubscribe</a>

Si vous souhaitez utiliser ceci dans une page ou une publication, vous devez créer un shortcode:

function wpse_77939_unsubscribe_link() {
    return sprintf(
        '<a href="%s" title="Logout">Logout & Unsubscribe</a>',
        wp_logout_url( home_url( 'unsubscribe' ) )
    );
add_shortcode( 'unsubscribe-link', 'wpse_77939_unsubscribe_link' );

Vous pouvez ensuite ajouter [unsubscribe-link] à un message ou à une page où vous souhaitez que le lien apparaisse.


Si vous redirigez vers un autre site Web que le vôtre, vous devez ajouter ce code à votre fichier functions.php (remplacez example.com par le domaine du site):

add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts( $allowed ) {
    $allowed[] = 'example.com';
    return $allowed;
}
2
shea

Utilisez ce code si vous l’utilisez dans menu dans Menu Manager

http://www.example.com/wp-login.php?action=logout&redirect_to=http://www.example.com/
1
Shiv Singh

WordPress inclut une balise de modèle que vous pouvez utiliser: wp_logout_url() . Quelques lignes de code simples vous permettent de rediriger les utilisateurs vers une autre URL après leur déconnexion.

J'ai écrit un tutoriel à la fin de l'année dernière sur l'utilisation de cette balise de modèle. En résumé, vous devez créer un filtre dans functions.php, puis créer un lien de déconnexion dans sidebar.php.

Si vous redirigez vers un autre site Web que le vôtre, vous devez ajouter ce code à votre fichier functions.php (remplacez example.com par le domaine du site):

add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts($link) {
    $link[] = 'example.com';
    return $link;
}

Vous devez ensuite ajouter cette ligne à votre fichier sidebar.php ou n'importe où vous pouvez exécuter PHP:

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