diff --git a/app/code/Magento/Captcha/Block/CheckoutLayoutProcessor.php b/app/code/Magento/Captcha/Block/CheckoutLayoutProcessor.php new file mode 100644 index 0000000000000..36c5df123a152 --- /dev/null +++ b/app/code/Magento/Captcha/Block/CheckoutLayoutProcessor.php @@ -0,0 +1,45 @@ +helper->getConfig('enable')) { + $captcha = [ + 'component' => 'Magento_Captcha/js/view/checkout/loginCaptcha', + 'displayArea' => 'additional-login-form-fields', + 'formId' => 'user_login', + 'configSource' => 'checkoutConfig' + ]; + $jsLayout['components']['checkout']['children']['authentication']['children']['captcha'] = $captcha; + $jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children'] + ['shippingAddress']['children']['customer-email']['children']['additional-login-form-fields'] + ['children']['captcha'] = $captcha; + } + return $jsLayout; + } +} diff --git a/app/code/Magento/Captcha/Block/Customer/AuthenticationPopup/LayoutProcessor.php b/app/code/Magento/Captcha/Block/Customer/AuthenticationPopup/LayoutProcessor.php new file mode 100644 index 0000000000000..927118fb8d1b3 --- /dev/null +++ b/app/code/Magento/Captcha/Block/Customer/AuthenticationPopup/LayoutProcessor.php @@ -0,0 +1,41 @@ +helper->getConfig('enable')) { + $jsLayout['components']['authenticationPopup']['children']['captcha'] = [ + 'component' => 'Magento_Captcha/js/view/checkout/loginCaptcha', + 'displayArea' => 'additional-login-form-fields', + 'formId' => 'user_login', + 'configSource' => 'checkout' + ]; + } + return $jsLayout; + } +} diff --git a/app/code/Magento/Captcha/etc/frontend/di.xml b/app/code/Magento/Captcha/etc/frontend/di.xml index 6ecbb156b44f1..71987e5003afd 100644 --- a/app/code/Magento/Captcha/etc/frontend/di.xml +++ b/app/code/Magento/Captcha/etc/frontend/di.xml @@ -1,8 +1,8 @@ @@ -37,4 +37,18 @@ + + + + Magento\Captcha\Block\CheckoutLayoutProcessor + + + + + + + Magento\Captcha\Block\Customer\AuthenticationPopup\LayoutProcessor + + + diff --git a/app/code/Magento/Captcha/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Captcha/view/frontend/layout/checkout_index_index.xml deleted file mode 100644 index 7180372f004e5..0000000000000 --- a/app/code/Magento/Captcha/view/frontend/layout/checkout_index_index.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - Magento_Captcha/js/view/checkout/loginCaptcha - additional-login-form-fields - user_login - checkoutConfig - - - - - - - - - - - - - - - Magento_Captcha/js/view/checkout/loginCaptcha - additional-login-form-fields - user_login - checkoutConfig - - - - - - - - - - - - - - - - - - - diff --git a/app/code/Magento/Captcha/view/frontend/layout/default.xml b/app/code/Magento/Captcha/view/frontend/layout/default.xml deleted file mode 100644 index 5015d6b021cd9..0000000000000 --- a/app/code/Magento/Captcha/view/frontend/layout/default.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - Magento_Captcha/js/view/checkout/loginCaptcha - additional-login-form-fields - user_login - checkout - - - - - - - - - diff --git a/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php b/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php index fce84885d55f4..66e3d644a4f14 100644 --- a/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php +++ b/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php @@ -1,12 +1,15 @@ jsLayout = isset($data['jsLayout']) && is_array($data['jsLayout']) ? $data['jsLayout'] : []; $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\Framework\Serialize\Serializer\Json::class); + $this->layoutProcessors = $layoutProcessors; } /** @@ -48,6 +59,9 @@ public function __construct( */ public function getJsLayout() { + foreach ($this->layoutProcessors as $processor) { + $this->jsLayout = $processor->process($this->jsLayout); + } return $this->serializer->serialize($this->jsLayout); } diff --git a/app/code/Magento/Customer/Model/Form.php b/app/code/Magento/Customer/Model/Form.php index 807e684c1fab4..12aaaafd0628a 100644 --- a/app/code/Magento/Customer/Model/Form.php +++ b/app/code/Magento/Customer/Model/Form.php @@ -1,7 +1,7 @@