/** * Save additional data for * user profile * * @since 0.3 * @param int $user_id * @return void */ public function save_user_profile($user_id) { if (!current_user_can(self::CAPABILITY)) { return false; } $user = get_userdata($user_id); $new_levels = isset($_POST[WPCACore::PREFIX . 'level']) ? $_POST[WPCACore::PREFIX . 'level'] : null; $user_levels = array_flip($this->level_manager->_get_user_levels($user, false, false, true)); foreach ($new_levels as $level) { if (isset($user_levels[$level])) { unset($user_levels[$level]); } else { $this->level_manager->_add_user_level($user_id, $level); } } foreach ($user_levels as $level => $value) { $this->level_manager->_remove_user_level($user_id, $level); } }