Validator
1 month ago
BehavioralSignals.php
1 month ago
CaptchaConstants.php
2 months ago
CaptchaFormRenderer.php
2 weeks ago
CaptchaHooks.php
2 months ago
CaptchaPhrase.php
1 year ago
CaptchaRenderer.php
4 months ago
CaptchaSession.php
1 year ago
CaptchaUrlFactory.php
4 months ago
PageRenderer.php
5 months ago
ReCaptchaHooks.php
2 months ago
ReCaptchaRenderer.php
1 year ago
ReCaptchaValidator.php
1 year ago
TurnstileHooks.php
2 months ago
TurnstileRenderer.php
2 months ago
TurnstileValidator.php
2 months ago
index.php
1 year ago
CaptchaPhrase.php
33 lines
| 1 | <?php declare(strict_types = 1); |
| 2 | |
| 3 | namespace MailPoet\Captcha; |
| 4 | |
| 5 | if (!defined('ABSPATH')) exit; |
| 6 | |
| 7 | |
| 8 | use MailPoetVendor\Gregwar\Captcha\PhraseBuilder; |
| 9 | |
| 10 | class CaptchaPhrase { |
| 11 | private CaptchaSession $session; |
| 12 | private PhraseBuilder $phraseBuilder; |
| 13 | |
| 14 | public function __construct( |
| 15 | CaptchaSession $session, |
| 16 | ?PhraseBuilder $phraseBuilder = null |
| 17 | ) { |
| 18 | $this->session = $session; |
| 19 | $this->phraseBuilder = $phraseBuilder ?? new PhraseBuilder(); |
| 20 | } |
| 21 | |
| 22 | public function createPhrase(string $sessionId): string { |
| 23 | $storage = ['phrase' => $this->phraseBuilder->build()]; |
| 24 | $this->session->setCaptchaHash($sessionId, $storage); |
| 25 | return $storage['phrase']; |
| 26 | } |
| 27 | |
| 28 | public function getPhrase(string $sessionId): ?string { |
| 29 | $storage = $this->session->getCaptchaHash($sessionId); |
| 30 | return (isset($storage['phrase']) && is_string($storage['phrase'])) ? $storage['phrase'] : null; |
| 31 | } |
| 32 | } |
| 33 |