diff --git a/app/code/Magento/Newsletter/Controller/Manage/Save.php b/app/code/Magento/Newsletter/Controller/Manage/Save.php index 1039725ef0e1b..c42148d80ea49 100644 --- a/app/code/Magento/Newsletter/Controller/Manage/Save.php +++ b/app/code/Magento/Newsletter/Controller/Manage/Save.php @@ -49,10 +49,11 @@ public function execute() ->create(); $this->_customerAccountService->updateCustomer($customerId, $customerDetails); - if ((boolean)$this->getRequest()->getParam('is_subscribed', false)) { + $isAlreadySubscribed = $this->_subscriberFactory->create()->loadByCustomerId($customerId)->isSubscribed(); + if (!$isAlreadySubscribed && (boolean) $this->getRequest()->getParam('is_subscribed', false)) { $this->_subscriberFactory->create()->subscribeCustomerById($customerId); $this->messageManager->addSuccess(__('We saved the subscription.')); - } else { + } elseif ($isAlreadySubscribed && !(boolean) $this->getRequest()->getParam('is_subscribed', false)) { $this->_subscriberFactory->create()->unsubscribeCustomerById($customerId); $this->messageManager->addSuccess(__('We removed the subscription.')); }