How to Redirect to Cart after Login in WooCommerce

woocommerce Redirect to Cart After LoginTo increase the sales on your WooCommerce site, you should consider redirecting users to cart after they login to make a purchase. This is an essential step in improving your abandoned cart conversions.

In this post, I am going to share with you how you can add a redirect to cart for WooCommerce users after they log in.

This will be in form of a code snippet that should be added to the functions file or custom plugin files for the user to be redirected to the cart after login.

WooCommerce Redirect

To redirect the user based on the user role you can check out this previous tutorial – how to redirect WooCommerce user by roles.

You can also learn how to redirect the user after purchase or checkout from this post – redirect users after checkout in WooCommerce.   To redirect the user after they login in we need to add a code snippet to the functions.php that will hook on woocommerce_login_redirect and the callback function will have the code to redirect to the custom URL.

WooCommerce Redirect to Cart After Login

By default every time a user logs in to WooCommerce they are redirected to My Account page. This may be a good way to get an overview of the details about their account and order.

However, you may want to have a custom account page to redirect users after login from the default WooCommerce login.

woocommerce redirect after login

You may also want to change this default behavior to redirect the user to the cart page to improve the conversions rates or to any other page that will improve the user experience.

In this tutorial, we will focus on creating a login redirect to cart for WooCommerce users.  You need to first create the filter hook that hooks on the woocommerce_login_redirect as follows:

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect_to_cart' );

The second step is to create a callback function that will first check if we are on the checkout page when we are attempting to login in then return the login URL after we modify the $redirect parameter.

The code snippet to redirect to cart after login should be as follows:

/**
 * Redirect to cart after login.
 *
 * @param $redirect
 *
 * @return false|string
 
 */
add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect_to_cart' ); 
 
function njengah_login_redirect_to_cart( $redirect ) {
	
    $redirectPageID = url_to_postid($redirect );
    $checkoutPageID = wc_get_page_id('checkout');
    
	//Check if user is logging in from the checkout 
	
    if( $redirectPageID == $checkoutPageID ){
        return $redirect;
    }
	
	//redirect customer to the cart page 
 
    return wc_get_page_permalink( 'cart' );
}

Add this code to the functions.php of your WooCommerce theme and save the changes. Your users will be successfully redirected to the cart page after login.

You can customize this code snippet further to allow users to be redirected based on their user roles. You can add a second parameter to the callback function and the parameter should be the $user. 

You can also customize this function return value to any other URL you wish to redirect to when the user is logged in.

/**
 * Redirect users to custom URL based on their role after login
 *
 * @param string $redirect
 * @param object $user
 * @return string
 */
function njengah_redirect_user_by roles( $redirect, $user ) {
	// Get the first of all the roles assigned to the user
	$role = $user->roles[0];

	$dashboard = admin_url();
	$myaccount = get_permalink( wc_get_page_id( 'myaccount' ) );
	$cartPage  = wc_get_page_permalink( 'cart' );
	
   // $pagebyID= get_permalink( int PAGEID );

	if( $role == 'administrator' ) {
		//Redirect administrators to the dashboard
		$redirect = $dashboard;
	} elseif ( $role == 'shop-manager' ) {
		//Redirect shop managers to the dashboard
		$redirect = $dashboard;
	} elseif ( $role == 'editor' ) {
		//Redirect editors to the dashboard
		$redirect = $dashboard;
	} elseif ( $role == 'author' ) {
		//Redirect authors to the dashboard
		$redirect = $dashboard;
	} elseif ( $role == 'customer' || $role == 'subscriber' ) {
		//Redirect customers and subscribers to the "Cart" page
		$redirect = $cartPage;
	} else {
		//Redirect any other role to the previous visited page or, if not available, to the home
		$redirect = wp_get_referer() ? wp_get_referer() : home_url();
	}

	return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'njengah_redirect_user_by roles', 10, 2 );

 

Conclusion

In this post, we have outlined the way to redirect to cart after login in WooCommerce without using a plugin by adding a code snippet to your functions.php file. This code snippet has been tested and works across multiple WooCommerce themes and should also work in a custom WooCommerce plugin file.

Comments are closed.