/** * Magic getter method. Looks for the specified key in the mapped keys before using WP_User's __get method. * * @return mixed * @access public * @since 1.0.0 */ public function __get($key) { $mapped_keys = $this->get_mapped_keys(); if (array_key_exists($key, $mapped_keys)) { $key = $mapped_keys[$key]; } return parent::__get($key); }
function __get($key) { if ($key == 'assignments') { return $this->getAssignments(); } else { // fallback to default WP_User magic method return parent::__get($key); } }
/** * Assign the 'DJ' role to an administrator * * @since 1.3 * @param int $user_id User ID. * @param int $old_data Object containing user's data prior to update. * @return */ public function admin_user_rights($user_id, $old_data) { if (!user_can($user_id, 'administrator')) { return; } // Retrieve the current user object after the profile update $user = new WP_User($user_id); $is_staff = $user->__get('_mdjm_event_staff'); $required_roles = $user->__get('_mdjm_event_roles'); $make_admin = $user->__get('_mdjm_event_admin'); $mdjm_roles = mdjm_get_roles(); if (!empty($is_staff) && !empty($required_roles)) { // Reset roles and caps before applying updates due to some wierd bug foreach ($mdjm_roles as $role_id => $role_name) { $user->remove_role($role_id); } $user->remove_cap('mdjm_employee'); foreach ($required_roles as $role_id) { $user->add_role($role_id); } $user->add_cap('mdjm_employee'); delete_user_meta($user->ID, '_mdjm_event_roles'); } else { foreach ($mdjm_roles as $role_id => $role_name) { $user->remove_role($role_id); } $user->remove_cap('mdjm_employee'); } $permissions = new MDJM_Permissions(); if (!empty($make_admin)) { $permissions->make_admin($user->ID); $user->add_cap('mdjm_employee'); } else { $permissions->make_admin($user->ID, true); $user->remove_cap('mdjm_employee'); } }