webentwicklung-frage-antwort-db.com.de

Seite vor Login speichern, nach Login auf diese Seite umleiten

Ich habe einen Woocommerce-Shop, in dem nur angemeldete Benutzer einkaufen können. Ich habe die Schaltfläche zum Hinzufügen zum Warenkorb durch die Schaltfläche "Anmelden" ersetzt, wenn der Benutzer noch nicht angemeldet ist. Auf diese Weise wird die Seite (Mein Konto) aufgerufen, auf der er sich anmelden oder registrieren kann.

Allerdings habe ich mich gefragt, ob ich diesen Schritt noch weiter gehen kann, damit WordPress merkt, auf welcher Seite sich der Benutzer befindet, bevor er die Anmeldeseite betritt. Wenn sie sich anmelden, werden sie auf diese Seite zurückgeleitet.

Ich habe dieses Skript gefunden, das Benutzer auf die Anmeldeseite umleitet, wenn sie auf ein Produkt/eine Seite klicken. Wenn sie sich dann anmelden, gelangen sie zurück zu der Seite, die sie gerade aufrufen wollten. Dies entspricht in etwa dem, was ich tun möchte, anstatt sie auf die Anmeldeseite zu bringen, bevor sie ein Produkt sehen. Ich möchte, dass sie das Produkt sehen können. Klicken Sie dann auf eine Schaltfläche, über die sie zur ((Mein-Konto-Seite)) gelangen. Wenn sie sich anmelden, werden sie zur Produktseite zurückgeleitet.

Benutzer nach der Anmeldung zur ursprünglichen URL umleiten?

Jede Hilfe wäre sehr dankbar. Funktion, Plugins, alles.

Vielen Dank!

2
Patrick

Sie können die WordPress-Referrer-Funktion verwenden. Legen Sie beispielsweise die Referrer-URL in der Sitzung fest, indem Sie auf die Schaltfläche "Zum Warenkorb hinzufügen" oder auf eine beliebige Schaltfläche klicken, um die vorherige URL zu speichern. Sobald die Anmeldung oder Registrierung erfolgreich war, fügen Sie Woocommerce Success Login Redirect zu dieser URL hinzu.

Weitere Informationen finden Sie unter WordPress-Referrer-URL.

https://codex.wordpress.org/Function_Reference/wp_get_referer

Für Woocommerce Login Redirect lesen Sie hier;

https://stackoverflow.com/questions/29342186/woocommerce-after-login-redirect

2
Karan

Für alle, die eine Lösung dafür suchen. Mein Freund und ich haben es mit dem folgenden Skript gelöst. Fügen Sie sie einfach in Ihre functions.php-Datei ein, um ein Woocommerce-Setup zu erstellen.

/** Log in redirect to previous page by portalpacific.net **/
// start global session for saving the referer url
function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

// get the referer url and save it to the session
function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( 'template_redirect', 'redirect_url' );

//login redirect to referer url
function login_redirect() {
    if (isset($_SESSION['referer_url'])) {
        wp_redirect($_SESSION['referer_url']);
    } else {
        wp_redirect(home_url());
    }
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);

/** end here */

Vielen Dank, dass Sie uns dazu gebracht haben, Karen.

2
Patrick