получить сообщение об ошибке подписка на рассылку. Как это исправить? Magento 2.0.7: Что-то пошло не так с подпиской.
ответ
Вот проблема и решение этой ошибки:
Когда мы вступаем в новый адрес электронной почты (тот, который не подключен к extisting абонента), абонентский объект ($ это) не имеет идентификатора ($ this-> getId(); // null) еще в Magento \ Newsletter \ Model \ Subscriber :: подписаться.
Письмо с подтверждением отправляется до того, как абонент будет сохранен, поэтому идентификатор абонента отсутствует на ссылке подтверждения. Ссылка не делает ничего, когда вы нажимаете на нее, потому что метод проверки в Magento \ Newsletter \ Controller \ Subscriber \ Confirm :: execute отклоняет ссылку из-за недостающего идентификатора.
Вы можете легко исправить эту проблему, вызвав $ this-> сохранить() перед вызовом $ this-> sendConfirmationRequestEmail();
try {
$this->save();
if($isConfirmNeed === true && $isOwnSubscribes === false)
{
$this->sendConfirmationRequestEmail();
} else {
$this->sendConfirmationSuccessEmail();
}
return $this->getStatus();
} catch (\Exception $e) {
throw new \Exception($e->getMessage());
}
я просто переместил «» сохранить «» '- позвоните несколько строк вверх. sendConfirmationRequestEmail и sendConfirmationSuccessEmail, похоже, не изменяет $ thisobject, так что это допустимое изменение, которое ничего не сломает.