From: Chuck Scott Date: Tue, 31 Jan 2017 18:11:47 +0000 (-0500) Subject: Reworked how decisions are made for redirecting users on log-in X-Git-Tag: v1.0.19^2~3 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=1edad116d91e77635980c6fccc09050f0c0852d6;p=WP-Plugins%2Fglm-member-db-contacts.git Reworked how decisions are made for redirecting users on log-in --- diff --git a/index.php b/index.php index 284fe9a..2fe59d0 100644 --- a/index.php +++ b/index.php @@ -250,15 +250,53 @@ if ($wpUserID) { */ // 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);