search expand
Skip to content
Careless Dev

Careless Dev

  • Home
  • WordPress
  • WooCommerce

WooCommerce login redirect to custom page

Posted in WooCommerce

When you use WooCommerce login form (usually my-account page), by default users are redirected to my-account page after successful login. Might not be the best way to showcase your shop. Some user might want to redirect logged in users to a custom page, some might consider redirecting to shop page. We can achieve this using woocommerce_login_redirect filter.

function careless_login_redirect( $redirect, $user ) {
    //check logged in user
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) {
            // redirect admin users to wp-admin
            $redirect = admin_url();
        } else {
            //non-admin users are redirected to shop page
            $redirect = wc_get_page_permalink( 'shop' );
        }
    }

    return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'careless_login_redirect', 999, 3 );

If you want to redirect non-admin users to some custom page, instead of shop page, replace line 10 with $redirect = home_url( 'CUSTOM_PAGE_SLUG' ); – replace CUSTOM_PAGE_SLUG with your actual page slug.

Code goes in the functions.php file of your active theme.

Note: woocommerce_login_redirect runs too early. So global $current_user or wp_get_current_user() will not work.

Posted on December 3, 2021Tagged admin_url, wc_get_page_permalink, woocommerce_login_redirect

Post navigation

Previous PostCheck if an user already used a coupon before in WooCommerce store
Next PostDisable feeds in WordPress

Recent Posts

  • Make display name not-required on WooCommerce account edit page
  • Limit excerpt length for posts from specific category or taxonomy
  • Don’t redirect to WooCommerce product single page after “add-to-cart” error
  • Add new WooCommerce checkout field
  • Update shipping fee on state and postcode change on WooCommerce checkout page

Friendly Tags

acf add_action admin_head admin_notices advanced custom field billing_postcode checkout fields core_update_footer current_user_can do_shortcode flush_rules free_shipping get_bloginfo get_cart get_current_screen get_field get_the_excerpt has_term init is_in_stock is_main_query is_search is_wp_error learndash manage_options method_id Paid Membership Pro permalink PMPro pre_get_posts remove_filter search shipping_postcode template_redirect the_excerpt update_footer wc_get_page_permalink woocommerce_before_shop_loop_item_title woocommerce_checkout_fields woocommerce_email_order_items_args woocommerce_package_rates woocommerce_thankyou wp_footer wp_head wp_rewrite
©2025 careless.dev All Rights Reserved.
Web Hosting powered by DCT IT.
Privacy Policy | Contact Us