2012-05-24 61 views
0

我注意到下面的錯誤歡迎郵件:Magento的:核心向客戶保存後

當我使用管理後臺地址添加到一個客戶,或者如果我更改地址,我保存了客戶,Magento的Costumer AccountController發送標準電子郵件給更新的客戶。所使用的電子郵件模板是客戶事件「已確認」的模板。我更新客戶時總會發生這種情況。

有人有同樣的問題或解決方案嗎?我不明白爲什麼Magento的發送電子郵件此事件......

回答

1

類:Mage_Adminhtml_CustomerController延伸Mage_Adminhtml_Controller_Action

了Methode:saveAction()

解決方法:這是一個從舊版本的核心錯誤。保存客戶後發送郵件的條件使用isset($sendPassToEmail)。但是,如果您注意到,sendPassToEmail變量始終設置並且值爲true或false。由於isset()的條件始終如此,每次保存客戶時都會發送一封電子郵件。

...

  $sendPassToEmail = false; 
      // force new customer active 
      if ($isNewCustomer) { 
       $customer->setPassword($data['account']['password']); 
       $customer->setForceConfirmed(true); 
       if ($customer->getPassword() == 'auto') { 
        $sendPassToEmail = true; 
        $customer->setPassword($customer->generatePassword()); 
       } 
      } 

      Mage::dispatchEvent('adminhtml_customer_prepare_save', array(
       'customer' => $customer, 
       'request' => $this->getRequest() 
      )); 

      $customer->save(); 

      // send welcome email 
      if ($customer->getWebsiteId() && (!empty($data['account']['sendemail']) || isset($sendPassToEmail))) { 
       $storeId = $customer->getSendemailStoreId(); 
       if ($isNewCustomer) { 
        $customer->sendNewAccountEmail('registered', '', $storeId); 
       } 
       // confirm not confirmed customer 
       else if ((!$customer->getConfirmation())) { 
        $customer->sendNewAccountEmail('confirmed', '', $storeId); 
       } 
      }