/** * Set customer object and setting customer id in session * * @param Mage_Customer_Model_Customer $customer * @return Mage_Customer_Model_Session */ public function setCustomer(Mage_Customer_Model_Customer $customer) { // check if customer is not confirmed if ($customer->isConfirmationRequired()) { if ($customer->getConfirmation()) { throw new Exception('This customer is not confirmed and cannot log in.', Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED); } } $this->_customer = $customer; $this->setId($customer->getId()); // save customer as confirmed, if it is not if (!$customer->isConfirmationRequired() && $customer->getConfirmation()) { $customer->setConfirmation(null)->save(); $customer->setIsJustConfirmed(true); } return $this; }
public function loginByCustomer(Mage_Customer_Model_Customer $customer) { if ($customer->getConfirmation()) { $customer->setConfirmation(null); $customer->save(); } Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer); }
/** * Set customer object and setting customer id in session * * @param Mage_Customer_Model_Customer $customer * @return Mage_Customer_Model_Session */ public function setCustomer(Mage_Customer_Model_Customer $customer) { // check if customer is not confirmed if ($customer->isConfirmationRequired()) { if ($customer->getConfirmation()) { return $this->_logout(); } } $this->_customer = $customer; $this->setId($customer->getId()); // save customer as confirmed, if it is not if (!$customer->isConfirmationRequired() && $customer->getConfirmation()) { $customer->setConfirmation(null)->save(); $customer->setIsJustConfirmed(true); } return $this; }
/** * Edit/View Existing Customer form fields * * @param Varien_Data_Form $form * @param Varien_Data_Form_Element_Fieldset $fieldset * @param Mage_Customer_Model_Customer $customer */ protected function _addEditCustomerFormFields($form, $fieldset, $customer) { $form->getElement('created_in')->setDisabled('disabled'); if (!Mage::app()->isSingleStoreMode()) { $form->getElement('website_id')->setDisabled('disabled'); $renderer = $this->getLayout()->createBlock('Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset_Element'); $form->getElement('website_id')->setRenderer($renderer); } else { $fieldset->removeField('website_id'); } if ($customer->isReadonly()) { return; } $this->_addPasswordManagementFieldset($form, 'New Password', true); // Prepare customer confirmation control (only for existing customers) $confirmationKey = $customer->getConfirmation(); if ($confirmationKey || $customer->isConfirmationRequired()) { $confirmationAttr = $customer->getAttribute('confirmation'); if (!$confirmationKey) { $confirmationKey = $customer->getRandomConfirmationKey(); } $element = $fieldset->addField('confirmation', 'select', array('name' => 'confirmation', 'label' => Mage::helper('Mage_Customer_Helper_Data')->__($confirmationAttr->getFrontendLabel()))); $element->setEntityAttribute($confirmationAttr); $element->setValues(array('' => 'Confirmed', $confirmationKey => 'Not confirmed')); // Prepare send welcome email checkbox if customer is not confirmed // no need to add it, if website ID is empty if ($customer->getConfirmation() && $customer->getWebsiteId()) { $fieldset->addField('sendemail', 'checkbox', array('name' => 'sendemail', 'label' => Mage::helper('Mage_Customer_Helper_Data')->__('Send Welcome Email after Confirmation'))); $customer->setData('sendemail', '1'); } } }
/** * Send welcome email to customer * * @param Mage_Customer_Model_Customer $customer * @param array $customerData * @return Mage_Customer_Service_Customer */ protected function _sendWelcomeEmail($customer, array $customerData) { if ($customer->getWebsiteId() && ($this->_isSendEmail($customerData) || $this->_isAutogeneratePassword($customerData))) { $isNewCustomer = !(bool) $customer->getOrigData($customer->getIdFieldName()); $storeId = $customer->getSendemailStoreId(); if ($isNewCustomer) { $customer->sendNewAccountEmail('registered', '', $storeId); } elseif (!$customer->getConfirmation()) { // Confirm not confirmed customer $customer->sendNewAccountEmail('confirmed', '', $storeId); } } return $this; }
/** * @param Mage_Customer_Model_Customer $customer * * @return Bronto_Common_Model_Email_Template_Filter */ protected function _filterCustomer(Mage_Customer_Model_Customer $customer) { if (!in_array('customer', $this->_filteredObjects)) { // Handle Defaults from settings $customerName = trim($customer->getName()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('full', 'store', $this->getStoreId()) : $customer->getName(); $customerPrefix = trim($customer->getPrefix()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('prefix', 'store', $this->getStoreId()) : $customer->getPrefix(); $customerFirstName = trim($customer->getFirstname()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('firstname', 'store', $this->getStoreId()) : $customer->getFirstname(); $customerLastName = trim($customer->getLastname()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('lastname', 'store', $this->getStoreId()) : $customer->getLastname(); $this->setField('customerName', $customerName); $this->setField('firstName', $customerFirstName); $this->setField('prefix', $customerPrefix); $this->setField('lastName', $customerLastName); $this->setField('customerEmail', $customer->getEmail()); $this->setField('customerPassword', $customer->getPassword()); if ($store = $customer->getStore()) { $this->setField('confirmationLink', $store->getUrl('customer/account/confirm', array('_query' => array('id' => $customer->getId(), 'key' => $customer->getConfirmation())))); if (Mage::helper('bronto_common')->isVersionMatch(Mage::getVersionInfo(), 1, array(array('>=', '6')))) { $this->setField('passwordResetLink', $store->getUrl('customer/account/resetpassword', array('_query' => array('id' => $customer->getId(), 'token' => $customer->getRpToken())))); } } else { $this->setField('confirmationLink', Mage::getUrl('customer/account/confirm', array('_query' => array('id' => $customer->getId(), 'key' => $customer->getConfirmation())))); if (Mage::helper('bronto_common')->isVersionMatch(Mage::getVersionInfo(), 1, array(array('>=', '6')))) { $this->setField('passwordResetLink', Mage::getUrl('customer/account/resetpassword', array('_query' => array('id' => $customer->getId(), 'token' => $customer->getRpToken())))); } } $this->_filteredObjects[] = 'customer'; } return $this; }
/** * Validate customer attributes * * @param Mage_Customer_Model_Customer $customer * @return bool */ public function validateCustomerAttributes(Mage_Customer_Model_Customer $customer) { $errors = array(); $customerHelper = Mage::helper('customer'); if (!Zend_Validate::is(trim($customer->getFirstname()), 'NotEmpty')) { $errors[] = $customerHelper->__('The first name cannot be empty.'); } /* if (!Zend_Validate::is( trim($customer->getLastname()) , 'NotEmpty')) { $errors[] = $customerHelper->__('The last name cannot be empty.'); } */ if (!Zend_Validate::is($customer->getEmail(), 'EmailAddress')) { $errors[] = $customerHelper->__('Invalid email address "%s".', $customer->getEmail()); } $password = $customer->getPassword(); if (!$customer->getId() && !Zend_Validate::is($password, 'NotEmpty')) { $errors[] = $customerHelper->__('The password cannot be empty.'); } if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(6))) { $errors[] = $customerHelper->__('The minimum password length is %s', 6); } $confirmation = $customer->getConfirmation(); if ($password != $confirmation) { $errors[] = $customerHelper->__('Please make sure your passwords match.'); } $entityType = Mage::getSingleton('eav/config')->getEntityType('customer'); $attribute = Mage::getModel('customer/attribute')->loadByCode($entityType, 'dob'); if ($attribute->getIsRequired() && '' == trim($customer->getDob())) { $errors[] = $customerHelper->__('The Date of Birth is required.'); } $attribute = Mage::getModel('customer/attribute')->loadByCode($entityType, 'taxvat'); if ($attribute->getIsRequired() && '' == trim($customer->getTaxvat())) { $errors[] = $customerHelper->__('The TAX/VAT number is required.'); } $attribute = Mage::getModel('customer/attribute')->loadByCode($entityType, 'gender'); if ($attribute->getIsRequired() && '' == trim($customer->getGender())) { $errors[] = $customerHelper->__('Gender is required.'); } return empty($errors) ? true : $errors; }