57 parent::__construct($context, $customerSession);
67 if (!$this->formKeyValidator->validate($this->getRequest())) {
68 return $this->
_redirect(
'customer/account/');
71 $customerId = $this->_customerSession->getCustomerId();
73 $this->messageManager->addError(
__(
'Something went wrong while saving your subscription.'));
77 $storeId = $this->storeManager->getStore()->getId();
79 $isSubscribedState =
$customer->getExtensionAttributes()
81 $isSubscribedParam = (boolean)$this->
getRequest()
82 ->getParam(
'is_subscribed',
false);
83 if ($isSubscribedParam !== $isSubscribedState) {
84 $this->customerRepository->save(
$customer);
85 if ($isSubscribedParam) {
86 $subscribeModel = $this->subscriberFactory->create()
88 $subscribeStatus = $subscribeModel->getStatus();
89 if ($subscribeStatus == Subscriber::STATUS_SUBSCRIBED) {
90 $this->messageManager->addSuccess(
__(
'We have saved your subscription.'));
92 $this->messageManager->addSuccess(
__(
'A confirmation request has been sent.'));
95 $this->subscriberFactory->create()
97 $this->messageManager->addSuccess(
__(
'We have removed your newsletter subscription.'));
100 $this->messageManager->addSuccess(
__(
'We have updated your subscription.'));
102 }
catch (\Exception $e) {
103 $this->messageManager->addError(
__(
'Something went wrong while saving your subscription.'));
_redirect($path, $arguments=[])
__construct(\Magento\Framework\App\Action\Context $context, \Magento\Customer\Model\Session $customerSession, \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator, \Magento\Store\Model\StoreManagerInterface $storeManager, CustomerRepository $customerRepository, \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory)