Intereting Posts
Мета-запрос с логическим значением true / false Назначение настраиваемого параметра для каждого сообщения в запросе 2 Петли на одной странице – разбиение на две части петли игнорирует массив исключенных должностей Как заставить oEmbed отображать фиксированные размеры высоты и ширины? Недопустимый тип смещения в get_post_type_object ()? Показывать несколько категорий в запросе с использованием переменной frame Индекс в корне, wordpress в подкаталоге URL-адреса входа в WordPress Перемещение с клавиатуры в Shortcode галереи WP_Query () загружает выбранное сообщение Div отсутствует в запросе пользовательского цикла Как перейти от подписки Mark Jaquith к комментариям плагина к новой версии Gurken? Как передать внешнюю функцию WP_REST_Request Зарегистрируйте предварительно определенное дерево таксономии Каков наилучший способ настройки страницы меню WordPress (в админке)

Изменение роли пользователя на основе проблемы с системой Point

Попытка изменить роль пользователя на основе очков. Это работает отлично, пока не будет увеличиваться.

Проблема возникает, когда, если мы уменьшаем точки, она не меняет роль обратно на нижний уровень.

Значит, если у меня есть 600 точек для роли администратора, и если пользователь заработает, а роль изменена администратору. После того, как точки уменьшатся до 500 из-за какой-либо отрицательной системы, она должна изменить роль обратно ниже администратора, соблюдая значение точки в состоянии, но этого не происходит.

Когда роль установлена ​​в верхнюю, она никогда не уменьшается даже при уменьшении точки.

global $wpdb; $pref = self::qa_prefix(); $u = new WP_User($u_id); $user_point = $wpdb->get_row("SELECT userid, points FROM {$pref}userpoints WHERE userid = {$u_id}"); if(!is_super_admin()) { if($user_point->points >= 600) { $u->set_role('administrator'); } elseif($user_point->points >= 150 && $user_point->points < 600) { $u->set_role('editor'); } elseif($user_point->points >= 100 && $user_point->points < 150) { $u->set_role('contributor'); } else { $u->set_role('subscriber'); } } 

Любое предложение или идея, пожалуйста …. 🙂

Solutions Collecting From Web of "Изменение роли пользователя на основе проблемы с системой Point"

Сначала нужно удалить предыдущую роль, а затем добавить новую роль, например

 $u = new WP_User( $user_ID); $role_of_user= $u->roles[0]; $u->remove_role($role_of_user); $u->add_role('new_role'); 

Если пользователь имеет более 1 роли, тогда

 $u = new WP_User( $user_ID); foreach($u->roles as $role){ $u->remove_role($role); } $u->add_role('new_role');