/** * @param int $customerId * @param int $websiteId * @param string|null $skipConfirmationIfEmail * @param bool $expected * @dataProvider dataProviderIsConfirmationRequired */ public function testIsConfirmationRequired($customerId, $websiteId, $skipConfirmationIfEmail, $expected) { $customerEmail = '*****@*****.**'; $this->registryMock->expects($this->any())->method('registry')->with('skip_confirmation_if_email')->willReturn($skipConfirmationIfEmail); $this->_scopeConfigMock->expects($this->any())->method('getValue')->with(Customer::XML_PATH_IS_CONFIRM, ScopeInterface::SCOPE_WEBSITES, $websiteId)->willReturn($expected); $this->_model->setData('id', $customerId); $this->_model->setData('website_id', $websiteId); $this->_model->setData('email', $customerEmail); $this->assertEquals($expected, $this->_model->isConfirmationRequired()); }
/** * Set customer model and the customer id in session * * @param Customer $customerModel * @return $this * @deprecated use setCustomerId() instead */ public function setCustomer(Customer $customerModel) { $this->_customerModel = $customerModel; $this->_httpContext->setValue(\Magento\Customer\Helper\Data::CONTEXT_GROUP, $customerModel->getGroupId(), \Magento\Customer\Model\Group::NOT_LOGGED_IN_ID); $this->setCustomerId($customerModel->getId()); if (!$customerModel->isConfirmationRequired() && $customerModel->getConfirmation()) { $customerModel->setConfirmation(null)->save(); } /** * The next line is a workaround. * It is used to distinguish users that are logged in from user data set via methods similar to setCustomerId() */ $this->unsIsCustomerEmulated(); return $this; }
/** * Send either confirmation or welcome email after an account creation * * @param CustomerModel $customerModel * @param Data\Customer $customer * @param string $redirectUrl * @return void */ protected function _sendEmailConfirmation(CustomerModel $customerModel, Data\Customer $customer, $redirectUrl) { try { if ($customerModel->isConfirmationRequired()) { $customerModel->sendNewAccountEmail(self::NEW_ACCOUNT_EMAIL_CONFIRMATION, $redirectUrl, $customer->getStoreId()); } else { $customerModel->sendNewAccountEmail(self::NEW_ACCOUNT_EMAIL_REGISTERED, $redirectUrl, $customer->getStoreId()); } } catch (MailException $e) { // If we are not able to send a new account email, this should be ignored $this->logger->logException($e); } }
/** * Set customer model and the customer id in session * * @param Customer $customerModel * @return $this * @deprecated use setCustomerId() instead */ public function setCustomer(Customer $customerModel) { $this->_customerModel = $customerModel; $this->_httpContext->setValue(\Magento\Customer\Helper\Data::CONTEXT_GROUP, $customerModel->getGroupId(), \Magento\Customer\Model\Group::NOT_LOGGED_IN_ID); $this->setCustomerId($customerModel->getId()); if (!$customerModel->isConfirmationRequired() && $customerModel->getConfirmation()) { $customerModel->setConfirmation(null)->save(); } return $this; }