wp = $wp; } function init($id = null) { $this->id = $id ?: Security::generateRandomString(self::ID_LENGTH); } function getId() { if ($this->id === null) { throw new \Exception("MailPoet captcha session not initialized."); } return $this->id; } function reset() { $this->wp->deleteTransient($this->getKey(self::SESSION_FORM_KEY)); $this->wp->deleteTransient($this->getKey(self::SESSION_HASH_KEY)); } function setFormData(array $data) { $this->wp->setTransient($this->getKey(self::SESSION_FORM_KEY), $data, self::EXPIRATION); } function getFormData() { return $this->wp->getTransient($this->getKey(self::SESSION_FORM_KEY)); } function setCaptchaHash($hash) { $this->wp->setTransient($this->getKey(self::SESSION_HASH_KEY), $hash, self::EXPIRATION); } function getCaptchaHash() { return $this->wp->getTransient($this->getKey(self::SESSION_HASH_KEY)); } private function getKey($type) { return implode('_', ['MAILPOET', $this->getId(), $type]); } }