Probleme mit dem Filter-Hook „woocommerce_login_redirect“.

Lesezeit: 2 Minuten

Benutzeravatar von Paudun
Paudun

Ich habe Probleme bei der Verwendung des Filter-Hooks „woocommerce_login_redirect“. Ich möchte, dass der Benutzer beim Anmelden auf die Startseite weitergeleitet wird, außer beim Anmelden auf der Checkout-Seite. Egal, was ich versuche, der Benutzer wird immer noch auf die Startseite umgeleitet, wenn er sich auf der Checkout-Seite anmeldet. Hier ist mein Code:

add_filter('woocommerce_login_redirect', 'wc_login_redirect'); 
function wc_login_redirect( $redirect_to ) {
    if ( ! is_checkout()){
        $redirect_to = 'https://seiltau.no';
        return $redirect_to;
    }
}

Ich habe es auch mit (is_checkout()==false) und (! is_page(‘checkout’)) versucht, aber ich werde immer noch auf die Startseite weitergeleitet, wenn ich mich auf der Checkout-Seite anmelde.

Irgendwelche Ideen?

  • Wenn sich der Benutzer an der Kasse anmeldet, auf welche Seite möchten Sie umleiten?

    – Dhruv

    1. April 2019 um 9:32 Uhr

  • Ich möchte nicht umleiten, wenn sich der Benutzer auf der Checkout-Seite anmeldet.

    – Paudun

    1. April 2019 um 9:33 Uhr

Benutzeravatar von itzmekhokan
itzmechokan

Ersetzen Sie einfach den Code Ihrer Funktion durch Folgendes –

if ( $redirect_to == wc_get_page_permalink( 'checkout' ) ){
    return $redirect_to;
}else{
    $redirect_to = 'https://seiltau.no';
    return $redirect_to;
}

  • Das Hinzufügen von $redirect_to außerhalb der if-Anweisung leitet immer noch zur Startseite weiter 🙁

    – Paudun

    1. April 2019 um 9:27 Uhr

  • Ist es möglich, dass der Code im Filter ausgeführt wird, nachdem die aktuelle Seite verlassen wurde?

    – Paudun

    1. April 2019 um 9:35 Uhr

  • dann denke ich, dass Ihre is_checkout () -Funktion falsch zurückgibt, überprüfen Sie es bitte.

    – itzmechokan

    1. April 2019 um 9:52 Uhr

  • @Paudun ersetzen Sie einfach Ihren Funktionscode durch meinen oben modifizierten Code

    – itzmechokan

    1. April 2019 um 9:57 Uhr

Wenn jemand nach einer Lösung sucht, um basierend auf Benutzerrollen umzuleiten:

/**
 * WooCommerce function for redirecting users on login based on user role
 */
add_filter( 'woocommerce_login_redirect', 'wc_my_login_redirect', 10, 2 );
function wc_my_login_redirect( $url, $user ) {
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        if ( in_array( 'administrator', $user->roles ) ) {
            $url = admin_url();
        } 
        else if ( in_array( 'seller', $user->roles ) ) {
            $url = site_url( '/dashboard/settings/store/' );
        }
    }
    return $url;
}

1427260cookie-checkProbleme mit dem Filter-Hook „woocommerce_login_redirect“.

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy