diff --git a/lib/Form/Renderer.php b/lib/Form/Renderer.php index 7f70243d94..accf5b3cf2 100644 --- a/lib/Form/Renderer.php +++ b/lib/Form/Renderer.php @@ -20,7 +20,7 @@ class Renderer { public function renderHTML($form = []) { if (isset($form['body']) && !empty($form['body'])) { - return static::renderBlocks($form['body']); + return $this->renderBlocks($form['body']); } return ''; } @@ -35,7 +35,7 @@ class Renderer { } } - public static function renderBlocks($blocks = [], $honeypotEnabled = true) { + public function renderBlocks($blocks = [], $honeypotEnabled = true) { $settings = SettingsController::getInstance(); // add honeypot for spambots $html = ($honeypotEnabled) ? @@ -63,13 +63,13 @@ class Renderer { '; } - $html .= static::renderBlock($block) . PHP_EOL; + $html .= $this->renderBlock($block) . PHP_EOL; } return $html; } - private static function renderBlock($block = []) { + private function renderBlock($block = []) { $html = ''; switch ($block['type']) { case 'html': diff --git a/lib/Subscription/CaptchaRenderer.php b/lib/Subscription/CaptchaRenderer.php index fde2addd7b..2cd055ea60 100644 --- a/lib/Subscription/CaptchaRenderer.php +++ b/lib/Subscription/CaptchaRenderer.php @@ -20,11 +20,21 @@ class CaptchaRenderer { /** @var SubscriptionUrlFactory */ private $subscriptionUrlFactory; - public function __construct(UrlHelper $urlHelper, WPFunctions $wp, CaptchaSession $captchaSession, SubscriptionUrlFactory $subscriptionUrlFactory) { + /** @var FormRenderer */ + private $formRenderer; + + public function __construct( + UrlHelper $urlHelper, + WPFunctions $wp, + CaptchaSession $captchaSession, + SubscriptionUrlFactory $subscriptionUrlFactory, + FormRenderer $formRenderer + ) { $this->urlHelper = $urlHelper; $this->wp = $wp; $this->captchaSession = $captchaSession; $this->subscriptionUrlFactory = $subscriptionUrlFactory; + $this->formRenderer = $formRenderer; } public function getCaptchaPageTitle() { @@ -105,7 +115,7 @@ class CaptchaRenderer { $formHtml .= '

'; // subscription form - $formHtml .= FormRenderer::renderBlocks($form, $honeypot = false); + $formHtml .= $this->formRenderer->renderBlocks($form, $honeypot = false); $formHtml .= ''; $formHtml .= $this->renderFormMessages($formModel, $showSuccessMessage, $showErrorMessage); $formHtml .= ''; diff --git a/lib/Subscription/Pages.php b/lib/Subscription/Pages.php index 2ab42cb327..fe4c0ea4d2 100644 --- a/lib/Subscription/Pages.php +++ b/lib/Subscription/Pages.php @@ -55,6 +55,9 @@ class Pages { /** @var AssetsController */ private $assetsController; + /** @var FormRenderer */ + private $formRenderer; + public function __construct( NewSubscriberNotificationMailer $newSubscriberNotificationSender, WPFunctions $wp, @@ -64,7 +67,8 @@ class Pages { WelcomeScheduler $welcomeScheduler, LinkTokens $linkTokens, SubscriptionUrlFactory $subscriptionUrlFactory, - AssetsController $assetsController + AssetsController $assetsController, + FormRenderer $formRenderer ) { $this->wp = $wp; $this->newSubscriberNotificationSender = $newSubscriberNotificationSender; @@ -75,6 +79,7 @@ class Pages { $this->linkTokens = $linkTokens; $this->subscriptionUrlFactory = $subscriptionUrlFactory; $this->assetsController = $assetsController; + $this->formRenderer = $formRenderer; } public function init($action = false, $data = [], $initShortcodes = false, $initPageFilters = false) { @@ -487,7 +492,7 @@ class Pages { $formHtml .= '

'; // subscription form - $formHtml .= FormRenderer::renderBlocks($form, $honeypot = false); + $formHtml .= $this->formRenderer->renderBlocks($form, $honeypot = false); $formHtml .= ''; return $formHtml; }