X

Rediriger WordPress vers la page de référence après la connexion

Extraits par IsItWP

Voulez-vous rediriger les utilisateurs vers la page qu'ils consultaient après la connexion ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour rediriger WordPress vers la page de référence après la connexion.

Instructions :

Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :

if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
	add_filter('login_redirect', 'my_login_redirect', 10, 3);
	function my_login_redirect() {
		$location = $_SERVER['HTTP_REFERER'];
		wp_safe_redirect($location);
		exit();
	}
}

Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière de copier / coller correctement des extraits de code dans WordPress, afin de ne pas casser accidentellement votre site.

Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 62 meilleurs thèmes de blog WordPress gratuits et comment créer un formulaire de contact dans WordPress.

Commentaires   Laisser une réponse

  1. Merci pour votre article.
    Pourriez-vous fournir l'extrait de code complet pour la même action avec WooCommerce, car j'ai essayé d'ajouter les différents morceaux de code mais j'ai peur d'avoir fait des erreurs. Le résultat a échoué.
    Merci beaucoup d'avance.

    Et existe-t-il le même code pour le processus de déconnexion ?

  2. Je veux que tout utilisateur qui se connecte depuis une page, disons https://example.com/asset/*, soit redirigé vers cette page après la connexion. Que dois-je faire pour que cela fonctionne ?

    1. Voulez-vous seulement rediriger sur https://example.com/asset/* ?

      L'extrait ci-dessus devrait rediriger les URL de page en général.

  3. Kenny Purnomo 13 mars 2020 à 13:09

    Bonjour, le code fonctionne-t-il bien avec le plugin Ultimate Member ?

  4. Bonjour,
    Je n'arrive pas à le faire fonctionner.
    J'utilise ceci :

    add_action(‘init’,’custom_login’);
    function custom_login(){
    global $pagenow;
    $substitute_login_page = str_replace(‘wp-login.php’,’my-account’, $pagenow);
    if( ‘wp-login.php’ == $pagenow && $_GET[‘action’]!=”logout” && $_GET[‘action’]!=”lostpassword”) {
    wp_redirect($substitute_login_page);
    exit();
    }
    }

    pour utiliser la page de connexion Woocommerce au lieu de wp-login.php (mon site web est une boutique en ligne). Et ça marche.

    J'essaie de rediriger l'utilisateur vers la page de publication de blog/produit unique consultée avant la connexion en utilisant le filtre indiqué ici ( add_filter(‘woocommerce_login_redirect’, ‘wc_login_redirect’); ), mais cela ne fonctionne pas.
    Je suppose que le filtre et mon action ne peuvent pas fonctionner ensemble. Je pense que la page de connexion Woocommerce supprime la partie de redirection de l'URL.

    Comment puis-je rediriger vers la page précédente après la connexion sur la page mon-compte ?

    Merci d'avance !

    1. Malheureusement, il peut y avoir un certain nombre de causes. Vous voudrez peut-être essayer une priorité différente pour le filtre.

  5. Vinoth Kumar 24 août 2019 à 11:58

    WOW !! celui-ci a parfaitement fonctionné pour moi. merci

    1. Shahzad Saeed 26 août 2019 à 15:54

      Heureux que cela ait aidé, Vinoth

    2. Comment dois-je modifier ce code pour rediriger les utilisateurs après une inscription ?

      1. Salut Ole, j'espère que cet extrait peut t'aider : https://www.isitwp.com/redirect-a-successful-registration-page/

        Si vous avez d'autres questions, n'hésitez pas à nous contacter.

  6. Bonjour monsieur,

    J'utilise mon propre code pour l'enregistrement et la connexion. Comment utiliser le code mentionné ci-dessus ? S'il vous plaît, aidez-moi.

  7. Je veux faire ça autrement
    Je veux montrer le produit avant le téléchargement ou l'achat, je veux faciliter la connexion pour Easy Digital Download

    1. Pas sûr, je comprends tout à fait ce que vous recherchez. Pouvez-vous donner un peu plus de détails.

      1. Je veux d'abord afficher un bouton de connexion pour télécharger, et si l'utilisateur s'inscrit et se connecte, le site devrait afficher les prix et s'il clique dessus, il devrait aller au téléchargement comme montré dans l'image
        https://snag.gy/rTRloi.jpg

  8. Cela ne fonctionne pas pour moi en utilisant WP 4.1.1 avec le thème FULLBY et le plugin Simple WordPress Membership

  9. Karena Laubinger Johnstone 01 février 2015 à 13:25

    Salut, cela n'a rien changé pour moi. Des suggestions ? Je cherche cette solution depuis un moment.

    1. lorsque vous vous connectez pour tester ce script, sur quelle page êtes-vous ? êtes-vous sur la page wp-login.php, ou sur une autre page.

      1. Karena Laubinger Johnstone 01 février 2015 à 14:00

        Oui, sur la page wp-login.php.

        1. Ce serait la raison, l'idée derrière cet extrait est que si vous avez un formulaire de connexion dans votre barre latérale ou ailleurs, par exemple. Je lirais l'article puis entrerais mes informations pour me connecter, je me connecterais ensuite et serais redirigé vers la page d'où je me suis connecté.

          1. Karena Laubinger Johnstone 1 février 2015 à 14:26

            D'accord, merci. J'utilise donc le widget standard WP Meta Login. Dans un article, avant de commenter, vous devez vous connecter. Dans la barre latérale se trouve le widget Meta/Login qui vous redirige vers la page wp-login.php lorsque vous cliquez sur « Se connecter ». Une fois connecté sur la page wp-login.php, il renvoie le visiteur à la page d'accueil, contrairement à l'article qu'il consultait auparavant. Veuillez me faire savoir si votre code fonctionnera d'une manière ou d'une autre pour cela. Merci !

          2. Salut Karena,
            Envoie-moi un message via le formulaire de contact, ce sera plus simple. Les commentaires peuvent devenir un peu longs.

          3. J'ai aussi vraiment besoin de ça. Ma page d'actualités restreint le contenu aux abonnés uniquement. Lorsqu'un abonné charge un article, le message d'erreur s'affiche mais il peut toujours se connecter en utilisant le formulaire du widget dans la barre latérale. Mon problème est que lorsqu'il se connecte avec succès, il n'est pas redirigé vers le dernier article qu'il consulte.

  10. Matt Foreman 23 août 2014 à 16:07

    Quelqu'un sait comment faire cela pour une connexion woo-commerce ?

    1. Essayez ceci :

      add_filter(‘woocommerce_login_redirect’, ‘wc_login_redirect’);

      function wc_login_redirect( $redirect_to ) { $redirect_to = ‘http://mysite.com/shop’; return $redirect_to; }

      1. Matt Foreman 23 août 2014 à 17:22

        Mais pour vous rediriger vers la page de référence, pas une page statique ?

        1. devrait pouvoir utiliser le code de l'exemple ci-dessus, mais je vérifierais d'abord pour m'assurer que le code de connexion fonctionne, puis je le remplacerais simplement

          $redirect_to = ‘http://wpsnipp.com’; return $redirect_to;

          par

          $location = $_SERVER[‘HTTP_REFERER’]; wp_safe_redirect($location); exit();

          1. Quel est l'intérêt de $redirect_to après le remplacement. Le code ne fonctionne pas pour moi 🙁

          2. Salut Aayush, cela devrait fonctionner sans aucun problème, lorsqu'un utilisateur se connecte à woo commerce, il sera redirigé dans ce cas vers wpsnipp.com. Placez ceci dans le fichier functions.php de votre thème WordPress, assurez-vous également que vous avez woo commerce installé, sinon cela ne fonctionnera pas.

            add_filter(‘woocommerce_login_redirect’, ‘wps_login_redirect’); function wps_login_redirect( $redirect_to ) { $redirect_to = ‘http://wpsnipp.com’; return $redirect_to; }

          3. Mousa Abu Doush 8 juin 2016 à 16:24

            Bonjour Kevin,
            J'ai essayé ce code et il fonctionne :

            add_filter(‘woocommerce_login_redirect’, ‘wps_login_redirect’);
            function wps_login_redirect( $redirect_to ) {
            $redirect_to = ‘http://wpsnipp.com’;
            return $redirect_to;
            }

            Mais celui-ci n'a pas fonctionné :

            add_filter(‘woocommerce_login_redirect’, ‘wps_login_redirect’);
            function wps_login_redirect( $redirect_to ) {
            $location = $_SERVER[‘HTTP_REFERER’];
            wp_safe_redirect($location);
            exit();
            }

            J'apprécierais si vous pouviez m'aider,
            Cordialement

          4. Je suppose que HTTP_REFERER est vide.

            http://php.net/manual/en/reserved.variables.server.php
            L'adresse de la page (le cas échéant) qui a référé l'agent utilisateur à la page actuelle. Ceci est défini par l'agent utilisateur. Tous les agents utilisateurs ne définiront pas cela, et certains fournissent la possibilité de modifier HTTP_REFERER comme une fonctionnalité.

          5. Merci. Ça a fonctionné pour moi

  11. Quelqu'un a-t-il eu du succès avec ce code intégré à des sites S2Member ? La façon dont le plugin S2Member gère la redirection post-connexion peut outrepasser le code suggéré.

    Pour faire bonne mesure, en plus de créer un plugin de fonctionnalité, j'ai mis à jour le fichier functions.php lui-même dans mon thème parent, ainsi que le functions.php dans le thème enfant que mon site utilise réellement. Je me suis assuré que l'ID de la variable post était mis à jour pour celui que la page de connexion Wordpress utilise réellement ("user_login"), par opposition à "login_location".

    J'attends avec impatience de connaître toute expérience de redirection réussie avec des sites sur lesquels le plugin S2Member est installé et activé.

    Cordialement,
    Darren

    1. Kevin Chard 3 août 2014 à 13:44

      Salut Darren,
      s2 a des fonctions intégrées pour la redirection de connexion, par exemple :

      add_filter(“ws_plugin__s2member_login_redirect”, “s2_redirect”, 10, 2);
      function s2_redirect($redirect, $vars = array()){
      // bla bla bla code……
      return $redirect;
      }

      Je n'ai pas testé cela, mais quelque chose dans ce sens pourrait fonctionner pour vous.

      if ( (isset($_GET[‘action’]) && $_GET[‘action’] != ‘logout’) || (isset($_POST[‘login_location’]) && !empty($_POST[‘login_location’])) ) { add_filter(“ws_plugin__s2member_login_redirect”, “s2_redirect”, 10, 2); function s2_redirect($redirect, $vars = array()){ $redirect = $_SERVER[‘HTTP_REFERER’]; return $redirect; } }

  12. Daniel Hansen 3 avril 2014 à 10:16

    Cela ne fonctionne pas pour moi. Incompatible avec 3.8.1 ?

  13. Daniel Hansen 3 avril 2014 à 10:16

    Cela ne fonctionne pas pour moi. Incompatible avec 3.8.1 ?

  14. Daniel Hansen 3 avril 2014 à 10:16

    Cela ne fonctionne pas pour moi. Incompatible avec 3.8.1 ?

  15. Ne serait-il pas logiquement plus correct de simplement utiliser

    add_filter(‘login_redirect’, ‘my_login_redirect’, 10, 3);

    Et ensuite déplacer l'instruction if dans la fonction elle-même ?

  16. Sur quelle page devrais-je mettre cela ? Parlons-nous d'une page avec un lien vers la page de connexion, la page de connexion et la page redirigée ?

    1. Placez ceci dans le functions.php et cela les redirigera vers la page qu'ils avaient consultée après leur connexion.

      1. GÉNIAL ! Encore mieux que ce que j'imaginais...

  17. Marlon Amancio 25 août 2011 à 20:43

    Super ! Merci

    1. Cool, content que vous aimiez l'extrait.

  18. Bien !

    1. Oui, je suis d'accord Justin.  –  Tyler a écrit ceci après en avoir eu besoin pour le travail, je suis sûr que je vais utiliser celui-ci pour un projet bientôt.

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de confidentialité, et tous les liens sont nofollow. N'utilisez PAS de mots-clés dans le champ nom. Ayons une conversation personnelle et significative.

Liste de contrôle de lancement WordPress

La checklist ultime pour lancer un WordPress

Nous avons compilé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi l'eBook gratuit !