Skip to content

Commit df9c31e

Browse files
ENGCOM-5730: magento/magento2#: Replace deprecated addError, addSuccess, addException methods in Magento/Customer/Controller/Account/CreatePost.php #24197
2 parents 0588cb6 + d54ae53 commit df9c31e

File tree

7 files changed

+147
-37
lines changed

7 files changed

+147
-37
lines changed

app/code/Magento/Customer/Controller/Account/CreatePost.php

Lines changed: 58 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use Magento\Framework\App\RequestInterface;
2222
use Magento\Framework\Controller\Result\Redirect;
2323
use Magento\Framework\Exception\LocalizedException;
24+
use Magento\Framework\Message\MessageInterface;
2425
use Magento\Framework\Phrase;
2526
use Magento\Store\Model\StoreManagerInterface;
2627
use Magento\Customer\Api\AccountManagementInterface;
@@ -118,6 +119,11 @@ class CreatePost extends AbstractAccount implements CsrfAwareActionInterface, Ht
118119
*/
119120
protected $session;
120121

122+
/**
123+
* @var StoreManagerInterface
124+
*/
125+
protected $storeManager;
126+
121127
/**
122128
* @var AccountRedirect
123129
*/
@@ -365,20 +371,19 @@ public function execute()
365371
);
366372
$confirmationStatus = $this->accountManagement->getConfirmationStatus($customer->getId());
367373
if ($confirmationStatus === AccountManagementInterface::ACCOUNT_CONFIRMATION_REQUIRED) {
368-
$email = $this->customerUrl->getEmailConfirmationUrl($customer->getEmail());
369-
// @codingStandardsIgnoreStart
370-
$this->messageManager->addSuccess(
371-
__(
372-
'You must confirm your account. Please check your email for the confirmation link or <a href="%1">click here</a> for a new link.',
373-
$email
374-
)
374+
$this->messageManager->addComplexSuccessMessage(
375+
'confirmAccountSuccessMessage',
376+
[
377+
'url' => $this->customerUrl->getEmailConfirmationUrl($customer->getEmail()),
378+
]
375379
);
376-
// @codingStandardsIgnoreEnd
377380
$url = $this->urlModel->getUrl('*/*/index', ['_secure' => true]);
378381
$resultRedirect->setUrl($this->_redirect->success($url));
379382
} else {
380383
$this->session->setCustomerDataAsLoggedIn($customer);
381-
$this->messageManager->addSuccess($this->getSuccessMessage());
384+
385+
$this->messageManager->addMessage($this->getMessageManagerSuccessMessage());
386+
382387
$requestedRedirect = $this->accountRedirect->getRedirectCookie();
383388
if (!$this->scopeConfig->getValue('customer/startup/redirect_dashboard') && $requestedRedirect) {
384389
$resultRedirect->setUrl($this->_redirect->success($requestedRedirect));
@@ -395,23 +400,21 @@ public function execute()
395400

396401
return $resultRedirect;
397402
} catch (StateException $e) {
398-
$url = $this->urlModel->getUrl('customer/account/forgotpassword');
399-
// @codingStandardsIgnoreStart
400-
$message = __(
401-
'There is already an account with this email address. If you are sure that it is your email address, <a href="%1">click here</a> to get your password and access your account.',
402-
$url
403+
$this->messageManager->addComplexErrorMessage(
404+
'customerAlreadyExistsErrorMessage',
405+
[
406+
'url' => $this->urlModel->getUrl('customer/account/forgotpassword'),
407+
]
403408
);
404-
// @codingStandardsIgnoreEnd
405-
$this->messageManager->addError($message);
406409
} catch (InputException $e) {
407-
$this->messageManager->addError($this->escaper->escapeHtml($e->getMessage()));
410+
$this->messageManager->addErrorMessage($e->getMessage());
408411
foreach ($e->getErrors() as $error) {
409-
$this->messageManager->addError($this->escaper->escapeHtml($error->getMessage()));
412+
$this->messageManager->addErrorMessage($error->getMessage());
410413
}
411414
} catch (LocalizedException $e) {
412-
$this->messageManager->addError($this->escaper->escapeHtml($e->getMessage()));
415+
$this->messageManager->addErrorMessage($e->getMessage());
413416
} catch (\Exception $e) {
414-
$this->messageManager->addException($e, __('We can\'t save the customer.'));
417+
$this->messageManager->addExceptionMessage($e, __('We can\'t save the customer.'));
415418
}
416419

417420
$this->session->setCustomerFormData($this->getRequest()->getPostValue());
@@ -437,6 +440,8 @@ protected function checkPasswordConfirmation($password, $confirmation)
437440
/**
438441
* Retrieve success message
439442
*
443+
* @deprecated
444+
* @see getMessageManagerSuccessMessage()
440445
* @return string
441446
*/
442447
protected function getSuccessMessage()
@@ -462,4 +467,37 @@ protected function getSuccessMessage()
462467
}
463468
return $message;
464469
}
470+
471+
/**
472+
* Retrieve success message manager message
473+
*
474+
* @return MessageInterface
475+
* @throws \Magento\Framework\Exception\NoSuchEntityException
476+
*/
477+
private function getMessageManagerSuccessMessage(): MessageInterface
478+
{
479+
if ($this->addressHelper->isVatValidationEnabled()) {
480+
if ($this->addressHelper->getTaxCalculationAddressType() == Address::TYPE_SHIPPING) {
481+
$identifier = 'customerVatShippingAddressSuccessMessage';
482+
} else {
483+
$identifier = 'customerVatBillingAddressSuccessMessage';
484+
}
485+
486+
$message = $this->messageManager
487+
->createMessage(MessageInterface::TYPE_SUCCESS, $identifier)
488+
->setData(
489+
[
490+
'url' => $this->urlModel->getUrl('customer/address/edit'),
491+
]
492+
);
493+
} else {
494+
$message = $this->messageManager
495+
->createMessage(MessageInterface::TYPE_SUCCESS)
496+
->setText(
497+
__('Thank you for registering with %1.', $this->storeManager->getStore()->getFrontendName())
498+
);
499+
}
500+
501+
return $message;
502+
}
465503
}

app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -346,11 +346,13 @@ public function testSuccessMessage(
346346

347347
$this->requestMock->expects($this->any())
348348
->method('getParam')
349-
->willReturnMap([
350-
['password', null, $password],
351-
['password_confirmation', null, $password],
352-
['is_subscribed', false, true],
353-
]);
349+
->willReturnMap(
350+
[
351+
['password', null, $password],
352+
['password_confirmation', null, $password],
353+
['is_subscribed', false, true],
354+
]
355+
);
354356

355357
$this->customerMock->expects($this->once())
356358
->method('setAddresses')
@@ -371,7 +373,7 @@ public function testSuccessMessage(
371373
->with($this->equalTo($customerId));
372374

373375
$this->messageManagerMock->expects($this->any())
374-
->method('addSuccess')
376+
->method('addSuccessMessage')
375377
->with($this->stringContains($successMessage))
376378
->will($this->returnSelf());
377379

@@ -477,11 +479,13 @@ public function testSuccessRedirect(
477479

478480
$this->requestMock->expects($this->any())
479481
->method('getParam')
480-
->willReturnMap([
481-
['password', null, $password],
482-
['password_confirmation', null, $password],
483-
['is_subscribed', false, true],
484-
]);
482+
->willReturnMap(
483+
[
484+
['password', null, $password],
485+
['password_confirmation', null, $password],
486+
['is_subscribed', false, true],
487+
]
488+
);
485489

486490
$this->customerMock->expects($this->once())
487491
->method('setAddresses')
@@ -502,16 +506,18 @@ public function testSuccessRedirect(
502506
->with($this->equalTo($customerId));
503507

504508
$this->messageManagerMock->expects($this->any())
505-
->method('addSuccess')
509+
->method('addSuccessMessage')
506510
->with($this->stringContains($successMessage))
507511
->will($this->returnSelf());
508512

509513
$this->urlMock->expects($this->any())
510514
->method('getUrl')
511-
->willReturnMap([
512-
['*/*/index', ['_secure' => true], $successUrl],
513-
['*/*/create', ['_secure' => true], $successUrl],
514-
]);
515+
->willReturnMap(
516+
[
517+
['*/*/index', ['_secure' => true], $successUrl],
518+
['*/*/create', ['_secure' => true], $successUrl],
519+
]
520+
);
515521
$this->redirectMock->expects($this->once())
516522
->method('success')
517523
->with($this->equalTo($successUrl))

app/code/Magento/Customer/etc/frontend/di.xml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,34 @@
7777
</argument>
7878
</arguments>
7979
</type>
80-
</config>
80+
<type name="Magento\Framework\View\Element\Message\MessageConfigurationsPool">
81+
<arguments>
82+
<argument name="configurationsMap" xsi:type="array">
83+
<item name="customerAlreadyExistsErrorMessage" xsi:type="array">
84+
<item name="renderer" xsi:type="const">\Magento\Framework\View\Element\Message\Renderer\BlockRenderer::CODE</item>
85+
<item name="data" xsi:type="array">
86+
<item name="template" xsi:type="string">Magento_Customer::messages/customerAlreadyExistsErrorMessage.phtml</item>
87+
</item>
88+
</item>
89+
<item name="confirmAccountSuccessMessage" xsi:type="array">
90+
<item name="renderer" xsi:type="const">\Magento\Framework\View\Element\Message\Renderer\BlockRenderer::CODE</item>
91+
<item name="data" xsi:type="array">
92+
<item name="template" xsi:type="string">Magento_Customer::messages/confirmAccountSuccessMessage.phtml</item>
93+
</item>
94+
</item>
95+
<item name="customerVatShippingAddressSuccessMessage" xsi:type="array">
96+
<item name="renderer" xsi:type="const">\Magento\Framework\View\Element\Message\Renderer\BlockRenderer::CODE</item>
97+
<item name="data" xsi:type="array">
98+
<item name="template" xsi:type="string">Magento_Customer::messages/customerVatShippingAddressSuccessMessage.phtml</item>
99+
</item>
100+
</item>
101+
<item name="customerVatBillingAddressSuccessMessage" xsi:type="array">
102+
<item name="renderer" xsi:type="const">\Magento\Framework\View\Element\Message\Renderer\BlockRenderer::CODE</item>
103+
<item name="data" xsi:type="array">
104+
<item name="template" xsi:type="string">Magento_Customer::messages/customerVatBillingAddressSuccessMessage.phtml</item>
105+
</item>
106+
</item>
107+
</argument>
108+
</arguments>
109+
</type>
110+
</config>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/** @var \Magento\Framework\View\Element\Template $block */
8+
?>
9+
<?= $block->escapeHtml(__('You must confirm your account. Please check your email for the confirmation link or <a href="%1">click here</a> for a new link.', $block->getData('url')), ['a']);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/** @var \Magento\Framework\View\Element\Template $block */
8+
?>
9+
<?= $block->escapeHtml(__('There is already an account with this email address. If you are sure that it is your email address, <a href="%1">click here</a> to get your password and access your account.', $block->getData('url')), ['a']);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/** @var \Magento\Framework\View\Element\Template $block */
8+
?>
9+
<?= $block->escapeHtml(__('If you are a registered VAT customer, please <a href="%1">click here</a> to enter your billing address for proper VAT calculation.', $block->getData('url')), ['a']);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/** @var \Magento\Framework\View\Element\Template $block */
8+
?>
9+
<?= $block->escapeHtml(__('If you are a registered VAT customer, please <a href="%1">click here</a> to enter your shipping address for proper VAT calculation.', $block->getData('url')), ['a']);

0 commit comments

Comments
 (0)