wp = $wp; } public function init(string $id = null) { $this->id = $id ?: Security::generateRandomString(self::ID_LENGTH); } public function getId(): string { if (!$this->id) { $this->init(); } return $this->id; } public function reset() { $this->wp->deleteTransient($this->getKey(self::SESSION_FORM_KEY)); $this->wp->deleteTransient($this->getKey(self::SESSION_HASH_KEY)); } public function setFormData(array $data) { $this->wp->setTransient($this->getKey(self::SESSION_FORM_KEY), $data, self::EXPIRATION); } public function getFormData() { return $this->wp->getTransient($this->getKey(self::SESSION_FORM_KEY)); } public function setCaptchaHash($hash) { $this->wp->setTransient($this->getKey(self::SESSION_HASH_KEY), $hash, self::EXPIRATION); } public function getCaptchaHash() { return $this->wp->getTransient($this->getKey(self::SESSION_HASH_KEY)); } private function getKey($type) { return \implode('_', ['MAILPOET', $this->getId(), $type]); } }