Как запретить вход в аккаунт по роли?
-
Всем привет! Ребят подскажите что не так, мне надо ограничить вход в аккаунт для простых кастомеров (роль), вот такой код:
//вот тут пробую разные варианты, но не работает add_filter('authenticate',function($user,$username) { if (!is_wp_error($user)) { $auth_user=get_user_by('login',$username); if ($auth_user && !is_user_role_in( array('administrator','dropshipper') ) ) { return new WP_Error('authentication_failed', '<p class="message"><b>Личный кабинет отключен. Покупки осуществляются без регистрации.</b></p>'); } } return $user; },100,2); ## Проверяет есть ли указанная роль в ролях текущего/указанного пользователя ## $roles строка/массив - название роли которую нужно проверить у текущего пользователя /* // Пример использования if( is_user_role_in( array('new_role','new_role2') )) echo 'Роль текущего пользователя new_role или new_role2'; */ function is_user_role_in( $roles, $user = false ){ if( ! $user ) $user = wp_get_current_user(); if( is_numeric($user) ) $user = get_userdata( $user ); if( empty($user->ID) ) return false; foreach( (array) $roles as $role ) if( isset($user->caps[ $role ]) || in_array($role, $user->roles) ) return true; return false; }
Просмотр 2 ответов — с 1 по 2 (всего 2)
Просмотр 2 ответов — с 1 по 2 (всего 2)
- Тема «Как запретить вход в аккаунт по роли?» закрыта для новых ответов.