Skip to content

Instantly share code, notes, and snippets.

@digitalchild
Created January 7, 2019 13:42
Show Gist options
  • Save digitalchild/9e6942410ba78a21808f386b4bd8f92f to your computer and use it in GitHub Desktop.
Save digitalchild/9e6942410ba78a21808f386b4bd8f92f to your computer and use it in GitHub Desktop.
WooCommerce Login Redirect
<?php
/**
* Redirect users to custom URL based on their role after login
*
* @param string $redirect
* @param object $user
* @return string
*/
function wc_custom_user_redirect( $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' ) );
$learn_dash = get_permalink( 745 );
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 "My Account" page
$redirect = $myaccount;
} 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', 'wc_custom_user_redirect', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment