我注意到以下错误:
当我使用admin后端向客户添加地址时,或者如果我更改地址并保存客户,Magento Costumer AccountController会向更新的客户发送标准电子邮件。使用的电子邮件模板是客户事件“已确认”的模板。这总是在我更新客户时发生。
有人有同样的问题或解决方案吗?我无法理解为什么magento会为此活动发送电子邮件......
答案 0 :(得分: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);
}
}