Refactor Captcha Renderer to use Doctrine
[MAILPOET-3644]
This commit is contained in:
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
namespace MailPoet\Subscription;
|
namespace MailPoet\Subscription;
|
||||||
|
|
||||||
|
use MailPoet\Entities\FormEntity;
|
||||||
|
use MailPoet\Form\FormsRepository;
|
||||||
use MailPoet\Form\Renderer as FormRenderer;
|
use MailPoet\Form\Renderer as FormRenderer;
|
||||||
use MailPoet\Models\Form as FormModel;
|
|
||||||
use MailPoet\Util\Url as UrlHelper;
|
use MailPoet\Util\Url as UrlHelper;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
@@ -23,11 +24,15 @@ class CaptchaRenderer {
|
|||||||
/** @var FormRenderer */
|
/** @var FormRenderer */
|
||||||
private $formRenderer;
|
private $formRenderer;
|
||||||
|
|
||||||
|
/** @var FormsRepository */
|
||||||
|
private $formsRepository;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
UrlHelper $urlHelper,
|
UrlHelper $urlHelper,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
CaptchaSession $captchaSession,
|
CaptchaSession $captchaSession,
|
||||||
SubscriptionUrlFactory $subscriptionUrlFactory,
|
SubscriptionUrlFactory $subscriptionUrlFactory,
|
||||||
|
FormsRepository $formsRepository,
|
||||||
FormRenderer $formRenderer
|
FormRenderer $formRenderer
|
||||||
) {
|
) {
|
||||||
$this->urlHelper = $urlHelper;
|
$this->urlHelper = $urlHelper;
|
||||||
@@ -35,6 +40,7 @@ class CaptchaRenderer {
|
|||||||
$this->captchaSession = $captchaSession;
|
$this->captchaSession = $captchaSession;
|
||||||
$this->subscriptionUrlFactory = $subscriptionUrlFactory;
|
$this->subscriptionUrlFactory = $subscriptionUrlFactory;
|
||||||
$this->formRenderer = $formRenderer;
|
$this->formRenderer = $formRenderer;
|
||||||
|
$this->formsRepository = $formsRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCaptchaPageTitle() {
|
public function getCaptchaPageTitle() {
|
||||||
@@ -82,11 +88,10 @@ class CaptchaRenderer {
|
|||||||
$formId = (int)$_GET['mailpoet_error'];
|
$formId = (int)$_GET['mailpoet_error'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$formModel = FormModel::findOne($formId);
|
$formModel = $this->formsRepository->findOneById($formId);
|
||||||
if (!$formModel instanceof FormModel) {
|
if (!$formModel instanceof FormEntity) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$formModel = $formModel->asArray();
|
|
||||||
|
|
||||||
if ($showSuccessMessage) {
|
if ($showSuccessMessage) {
|
||||||
// Display a success message in a no-JS flow
|
// Display a success message in a no-JS flow
|
||||||
@@ -123,12 +128,13 @@ class CaptchaRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function renderFormMessages(
|
private function renderFormMessages(
|
||||||
array $formModel,
|
FormEntity $formModel,
|
||||||
$showSuccessMessage = false,
|
$showSuccessMessage = false,
|
||||||
$showErrorMessage = false
|
$showErrorMessage = false
|
||||||
) {
|
) {
|
||||||
|
$settings = $formModel->getSettings() ?? [];
|
||||||
$formHtml = '<div class="mailpoet_message">';
|
$formHtml = '<div class="mailpoet_message">';
|
||||||
$formHtml .= '<p class="mailpoet_validate_success" ' . ($showSuccessMessage ? '' : ' style="display:none;"') . '>' . $formModel['settings']['success_message'] . '</p>';
|
$formHtml .= '<p class="mailpoet_validate_success" ' . ($showSuccessMessage ? '' : ' style="display:none;"') . '>' . $settings['success_message'] . '</p>';
|
||||||
$formHtml .= '<p class="mailpoet_validate_error" ' . ($showErrorMessage ? '' : ' style="display:none;"') . '>' . $this->wp->__('The characters you entered did not match the CAPTCHA image. Please try again with this new image.', 'mailpoet') . '</p>';
|
$formHtml .= '<p class="mailpoet_validate_error" ' . ($showErrorMessage ? '' : ' style="display:none;"') . '>' . $this->wp->__('The characters you entered did not match the CAPTCHA image. Please try again with this new image.', 'mailpoet') . '</p>';
|
||||||
$formHtml .= '</div>';
|
$formHtml .= '</div>';
|
||||||
return $formHtml;
|
return $formHtml;
|
||||||
|
Reference in New Issue
Block a user