PHP Woocommerce redirect previous page after registration

33 Views Asked by At

I'm trying to configure woocommerce to return to previous page, after registration

I use this for "Login redirection" and it works. But not in the registration:

function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}


add_action( 'template_redirect', 'redirect_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);

Can anyone make this code work for registration too?

Regards!

1

There are 1 best solutions below

0
TSCAmerica.com On

You can use the woocommerce_registration_redirect filter. This filter allows you to modify the redirect URL after a user registers. So your code would be modified to something like this

function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

function redirect_url() {
    if (! is_user_logged_in() && ! is_admin()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( 'template_redirect', 'redirect_url' );

function login_redirect() {
    if (isset($_SESSION['referer_url'])) {
        $redirect_url = $_SESSION['referer_url'];
    } else {
        $redirect_url = home_url();
    }
    return $redirect_url;
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);
add_filter('woocommerce_registration_redirect', 'login_redirect', 1100, 2);