scopeConfig = $scopeConfig; $this->storeManager = $storeManager; } /** * @param \Magento\Customer\Model\EmailNotificationInterface $emailNotification * @param callable $proceed * @param \Magento\Customer\Api\Data\CustomerInterface $customer * @param string $type * @param string $backUrl * @param string|int $storeId * @param string|null $sendemailStoreId * * @return mixed */ public function aroundNewAccount( \Magento\Customer\Model\EmailNotificationInterface $emailNotification, callable $proceed, \Magento\Customer\Api\Data\CustomerInterface $customer, $type = \Magento\Customer\Model\EmailNotificationInterface::NEW_ACCOUNT_EMAIL_REGISTERED, $backUrl = '', $storeId = 0, $sendemailStoreId = null ) { if (! $storeId) { $storeId = $this->getWebsiteStoreId($customer, $sendemailStoreId); } if (! $this->scopeConfig->getValue( \Dotdigitalgroup\Email\Helper\Config::XML_PATH_CONNECTOR_DISABLE_CUSTOMER_SUCCESS, 'store', $storeId ) ) { return $proceed($customer, $type, $backUrl, $storeId, $sendemailStoreId); } } /** * Get either first store ID from a set website or the provided as default * * @param \Magento\Customer\Api\Data\CustomerInterface $customer * @param int|string|null $defaultStoreId * @return int */ private function getWebsiteStoreId($customer, $defaultStoreId = null) { if ($customer->getWebsiteId() != 0 && empty($defaultStoreId)) { $storeIds = $this->storeManager->getWebsite($customer->getWebsiteId())->getStoreIds(); $defaultStoreId = reset($storeIds); } return $defaultStoreId; } }