Join

WooCommerce Redirect After Login by Role

Don't want to mess with code snippets? This is a feature of MyListing Pro.

Instructions

  1. Create a new PHP code snippet.
  2. Copy the contents of code snippet below.
  3. Paste the contents into your code snippet.
  4. Review any notes that I’ve provided.
  5. Save and enable the code snippet.
  6. Test.

Snippet

By default, WooCommerce redirects all users to the MyListing Dashboard (i.e., My Account), which may not be desirable for website owners.

Customization Notes

By default, this code snippet redirects all users with the customer role to your homepage.

  • Line 5 (Default Setting): Redirects users with the ‘customer’ role.
  • Line 6 (Default Setting): Redirects to your homepage.
  • Line 7: Redirect to your Shop page.
  • Line 8: Redirect to a custom URL on your website.
  • Line 9: Redirect to a custom URL on a different website.
  • Line 10: Redirect to a custom tab within your website’s ‘My Account’ area.
add_filter( 'woocommerce_login_redirect', 'wptu_customer_login_redirect', 9999, 2 );

function wptu_customer_login_redirect( $redirect, $user ) {

    if ( wc_user_has_role( $user, 'customer' ) ) {
        $redirect = get_home_url(); // Home Page
        //$redirect = wc_get_page_permalink( 'shop' ); // Shop Page
        //$redirect = '/custom_url'; // Custom URL - Same Site
        //$redirect = 'https://custom.url'; // Custom URL - Different Site
        //$redirect = add_query_arg( 'password-reset', 'true', wc_get_page_permalink( 'myaccount' ) ); // Custom 'My Account' Tab
    }

    return $redirect;
}

Video Tutorial

Youtube video