X

WordPress nach dem Login zur verweisenden Seite weiterleiten

Schnipsel von IsItWP

Möchten Sie Benutzer nach dem Login zur Seite zurückleiten, die sie gerade angesehen haben? Es gibt wahrscheinlich ein Plugin dafür, aber wir haben einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um WordPress nach dem Login zur verweisenden Seite weiterzuleiten.

Anweisungen:

Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:

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();
	}
}

Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzuf ilde{A}gen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress kopieren / einf ilde{A}gen, damit Sie Ihre Website nicht versehentlich besch ilde{A}digen.

Wenn Ihnen dieser Codeausschnitt gefallen hat, sollten Sie sich auch unsere anderen Artikel auf der Website ansehen, wie z. B.: 62 beste kostenlose WordPress-Blog-Themes und So erstellen Sie ein Kontaktformular in WordPress.

Kommentare   Hinterlasse eine Antwort

  1. Vielen Dank für Ihren Artikel.
    Könnten Sie den vollständigen Code-Schnipsel für dieselbe Aktion mit WooCommerce angeben, da ich versucht habe, die verschiedenen Code-Teile hinzuzufügen, aber ich fürchte, ich habe einige Fehler gemacht. Das Ergebnis ist fehlgeschlagen.
    Vielen Dank im Voraus.

    Und gibt es den gleichen Code für den Logout-Prozess?

  2. Ich möchte, dass jeder Benutzer, der sich von einer Seite wie https://example.com/asset/* anmeldet, nach dem Login zu dieser Seite zurückgeleitet wird. Was muss ich tun, damit das funktioniert?

    1. Möchten Sie nur auf https://example.com/asset/* weiterleiten?

      Der obige Schnipsel sollte die Seiten-URLs im Allgemeinen weiterleiten.

  3. Hallo, funktioniert der Code gut mit dem Ultimate Member Plugin?

  4. Hallo,
    Ich kann es nicht zum Laufen bringen.
    Ich benutze das:

    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();
    }
    }

    um die WooCommerce-Loginseite anstelle von wp-login.php zu verwenden (mein Geschäft ist ein Online-Shop). Und es funktioniert.

    Ich versuche, den Benutzer nach dem Login zur zuvor angesehenen Blog-Beitrags-/Einzelproduktseite zurückzuleiten, indem ich den hier aufgeführten Filter verwende ( add_filter(‘woocommerce_login_redirect’, ‘wc_login_redirect’); ), aber es funktioniert nicht.
    Ich vermute, der Filter und meine Aktion können nicht zusammenarbeiten. Ich denke, die WooCommerce-Loginseite entfernt den Weiterleitungsteil aus der URL.

    Wie kann ich nach dem Login auf der Seite "mein Konto" zur vorherigen Seite weiterleiten?

    Vielen Dank im Voraus!

    1. Leider kann es eine Reihe von Ursachen geben. Sie könnten versuchen, eine andere Priorität für den Filter zu verwenden.

  5. WOW!! Das hat bei mir perfekt funktioniert. Danke

    1. Schön, dass es geholfen hat, Vinoth

    2. Wie muss ich diesen Code ändern, um Benutzer nach der Registrierung weiterzuleiten?

      1. Hallo Ole, ich hoffe, dieser Ausschnitt kann dir helfen: https://www.isitwp.com/redirect-a-successful-registration-page/

        Wenn du weitere Fragen hast, zögere bitte nicht, dich zu melden.

  6. Hallo Sir,

    Ich verwende meinen eigenen Code für die Registrierung und Anmeldung. Wie kann ich dort den oben genannten Code verwenden? Bitte helfen Sie mir.

  7. Ich möchte es andersherum haben
    Ich möchte das Produkt vor dem Download oder Kauf anzeigen und die Anmeldung bei Easy Digital Download vereinfachen.

    1. Ich bin mir nicht sicher, ob ich genau verstehe, was Sie suchen. Können Sie das etwas genauer erklären?

      1. Ich möchte zuerst die Schaltfläche 'Anmelden zum Herunterladen' anzeigen, und wenn sich der Benutzer registriert und anmeldet, sollte die Website die Preise anzeigen, und wenn darauf geklickt wird, sollte sie zum Download gehen, wie im Bild gezeigt
        https://snag.gy/rTRloi.jpg

  8. Das funktioniert bei mir nicht mit WP 4.1.1 mit dem FULLBY-Theme und dem Simple WordPress Membership-Plugin

  9. Karena Laubinger Johnstone 1. Februar 2015 um 13:25

    Hallo, das hat bei mir nichts geändert. Irgendwelche Vorschläge? Ich suche schon seit einiger Zeit nach dieser Lösung.

    1. Auf welcher Seite befinden Sie sich, wenn Sie sich anmelden, um dieses Skript zu testen? Befinden Sie sich auf der Seite wp-login.php oder auf einer anderen Seite?

      1. Karena Laubinger Johnstone 1. Februar 2015 um 14:00

        Ja, auf der Seite wp-login.php.

        1. Dies wäre der Grund, die Idee hinter diesem Snippet ist, dass Sie ein Anmeldeformular in Ihrer Seitenleiste oder an einem anderen Ort haben. Ich würde den Beitrag lesen und dann meine Daten eingeben, um mich anzumelden. Ich würde mich dann anmelden und auf die Seite zurückgeleitet werden, von der aus ich mich angemeldet habe.

          1. Karena Laubinger Johnstone 1. Februar 2015 um 14:26 Uhr

            Okay, danke. Ich benutze also nur das Standard-WP-Meta-Login-Widget. Wenn Sie sich in einem Beitrag vor dem Kommentieren anmelden müssen. In der Seitenleiste befindet sich das Meta/Login-Widget, das Sie zur wp-login.php-Seite weiterleitet, wenn Sie auf „Anmelden“ klicken. Nach der Anmeldung auf der wp-login.php-Seite wird der Besucher immer zur Homepage zurückgeleitet, im Gegensatz zu dem Beitrag, den er zuvor angesehen hat. Bitte lassen Sie mich wissen, ob Ihr Code irgendwie dafür funktioniert. Danke!

          2. Hallo Karena,
            Schick mir eine Nachricht über das Kontaktformular, das ist einfacher. Kommentare können etwas lang werden.

          3. Ich brauche das auch wirklich. Meine Nachrichten-Seite beschränkt Inhalte nur für Abonnenten. Wenn ein Abonnent einen Artikel lädt, wird die Fehlermeldung angezeigt, aber er kann sich immer über das Widget-Formular in der Seitenleiste anmelden. Mein Problem ist, dass er nach erfolgreicher Anmeldung nicht zum letzten Artikel weitergeleitet wird, in dem er sich befindet.

  10. Weiß jemand, wie das für einen Woo-Commerce-Login geht?

    1. Versuchen Sie Folgendes:

      add_filter(‘woocommerce_login_redirect’, ‘wc_login_redirect’);

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

      1. Aber um Sie auf die verweisende Seite zurückzuleiten, nicht auf eine statische Seite?

        1. sollte in der Lage sein, den Code im obigen Beispiel zu verwenden, aber ich würde zuerst sicherstellen, dass der Anmeldecode funktioniert, und dann einfach ersetzen

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

          durch

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

          1. Was ist der Sinn von $redirect_to nach dem Ersetzen. Der Code funktioniert bei mir nicht 🙁

          2. Hallo Aayush, das sollte ohne Probleme funktionieren. Wenn sich ein Benutzer bei Woo-Commerce anmeldet, wird er in diesem Fall zu wpsnipp.com weitergeleitet. Platzieren Sie dies in der functions.php Ihres WordPress-Themes. Stellen Sie außerdem sicher, dass Sie Woo-Commerce installiert haben, sonst funktioniert dies nicht.

            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. Juni 2016 um 16:24 Uhr

            Hallo Kevin,
            Ich habe diesen Code ausprobiert und er funktioniert:

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

            Aber dieser hier hat nicht funktioniert:

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

            Ich würde mich freuen, wenn Sie mir helfen könnten,
            Mit freundlichen Grüßen

          4. Ich würde vermuten, dass HTTP_REFERER leer ist.

            http://php.net/manual/en/reserved.variables.server.php
            Die Adresse der Seite (falls vorhanden), von der der User-Agent auf die aktuelle Seite verwiesen hat. Dies wird vom User-Agent gesetzt. Nicht alle User-Agents setzen dies, und einige bieten die Möglichkeit, HTTP_REFERER als Funktion zu ändern.

          5. Danke. Es hat für mich funktioniert

  11. Hatte jemand Erfolg mit diesem Code, integriert mit S2Member-Websites? Die Art und Weise, wie das S2Member-Plugin die Weiterleitung nach dem Login handhabt, überschreibt möglicherweise den vorgeschlagenen Code.

    Zur Sicherheit habe ich zusätzlich zum Erstellen eines Funktions-Plugins die Datei functions.php selbst in meinem übergeordneten Theme sowie die Datei functions.php im Child-Theme, das meine Website tatsächlich verwendet, aktualisiert. Ich habe sichergestellt, dass die Post-Variable ID für diejenige aktualisiert wurde, die die WordPress-Login-Seite tatsächlich verwendet („user_login“), im Gegensatz zu „login_location“.

    Ich freue mich darauf, von Erfahrungen mit erfolgreichen Weiterleitungen auf Websites zu hören, auf denen das S2Member-Plugin installiert und aktiviert ist.

    Viele Grüße,
    Darren

    1. Hallo Darren,
      s2 hat einige eingebaute Funktionen für die Login-Weiterleitung, z.B.:

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

      Ich habe das nicht getestet, aber etwas in dieser Richtung könnte für Sie funktionieren.

      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. Das funktioniert bei mir nicht. Inkompatibel mit 3.8.1?

  13. Das funktioniert bei mir nicht. Inkompatibel mit 3.8.1?

  14. Das funktioniert bei mir nicht. Inkompatibel mit 3.8.1?

  15. Wäre es nicht logischer, einfach zu verwenden

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

    Und dann die if-Anweisung in die Funktion selbst verschieben?

  16. Auf welcher Seite würde ich das platzieren? Sprechen wir über eine Seite mit einem Link zur Anmeldeseite, die Anmeldeseite und die weitergeleitete Seite?

    1. Fügen Sie dies in die functions.php ein und leiten Sie sie nach der Anmeldung auf die Seite weiter, die sie zuvor angesehen haben.

      1. GROSSARTIG! Sogar besser, als ich dachte, es sein könnte…

  17. Großartig! Danke

    1. Cool, freut mich, dass Ihnen der Snippet gefällt.

  18. Schön!

    1. Ja, ich stimme zu, Justin! – Tyler hat das geschrieben, weil er es für die Arbeit brauchte. Ich bin sicher, ich werde es bald für ein Projekt verwenden.

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!