/** * Saves product to database. * * @param EntityInterface $object Customer to save. * * @throws Exception */ public function save(EntityInterface $object) { if (!$object instanceof Entity) { throw new Exception('Trying to save not a customer!'); } $fields = $object->getStateToSave(); if (isset($fields['id']) || isset($fields['name']) || isset($fields['email']) || isset($fields['login'])) { // TODO: Do we want to update user data like this? // $this->wp->wpUpdateUser(array( // 'ID' => $fields['id'], // 'display_name' => $fields['name'], // 'user_email' => $fields['email'], // )); unset($fields['id'], $fields['name'], $fields['email'], $fields['login']); } if ($object instanceof Entity\Guest) { $this->session->setField(Factory::CUSTOMER, $fields); return; } foreach ($fields as $field => $value) { $this->wp->updateUserMeta($object->getId(), $field, $value); } }