*/
//
function my_login_redirect($redirect_to, $request, $user) {
- if (get_option('glm_members_database_frontend_login_request') == 'false') {
- if ( isset( $user->roles ) && is_array( $user->roles ) && !in_array( 'administrator', $user->roles ) && !in_array( 'editor', $user->roles ) ) {
- $redirect_to = get_admin_url() . "admin.php?page=glm-members-admin-menu-member";
- }
- } else {
+
+ // If this is a front-end request, return them to the front-end ($redirect_to should already point there)
+ if (get_option('glm_members_database_frontend_login_request') != 'false') {
+trigger_error('Front-End request', E_USER_NOTICE);
+
+ // Also clear the front-end login request flag
update_option('glm_members_database_frontend_login_request', 'false');
+
+ return $redirect_to;
+ }
+
+ // If user is administrator send them to the main dashboard
+ if (!in_array('administrator', $current_user->roles)) {
+trigger_error('Sending to main dashboard', E_USER_NOTICE);
+ $redirect_to = admin_url();
+ return $redirect_to;
+ }
+
+ // If this is not a GLM Associate login or members are not enabled, allow the default (should be profile menu)
+ if (!current_user_can('glm_members_login') || !$config['settings']['enable_members']) {
+trigger_error('Not GLM Associate Login', E_USER_NOTICE);
+
+ return $redirect_to;
}
+
+ // If user is an all members manager, send them to the "Members" menu
+ if (current_user_can('glm_members_members')) {
+trigger_error('Members Manager', E_USER_NOTICE);
+
+ $redirect_to = get_admin_url() . "admin.php?page=glm-members-admin-menu-members";
+ return $redirect_to;
+ }
+
+ // If user is a member manager, send them to the "Member" menu
+ if (current_user_can('glm_members_member')) {
+trigger_error('Member Manager', E_USER_NOTICE);
+
+ $redirect_to = get_admin_url() . "admin.php?page=glm-members-admin-menu-member";
+ return $redirect_to;
+ }
+
+trigger_error('Doing default', E_USER_NOTICE);
+ // If there's anything else going on, they go to what was requested
return $redirect_to;
+
}
+// Make sure that
add_filter( 'woocommerce_prevent_admin_access', '__return_false' );
add_filter("login_redirect", "my_login_redirect", 10, 3);