//Redirect non-administrator, non-shop-manager role to homepage if they try to access wp-admin
function redirect_non_admin_user(){
    $user = wp_get_current_user();
    $allowed_roles = array('shop_manager', 'administrator');
    if ( is_user_logged_in() ) {
        if ( !defined( 'DOING_AJAX' )) {
	        if( !array_intersect($allowed_roles, $user->roles ) ) { 
                wp_redirect( site_url() );  exit;
            }
        }
    }
}
add_action( 'admin_init', 'redirect_non_admin_user' );