发送订单或发票电子邮件时,电子邮件内容语言是默认的本地代码。
所以我想根据一个客户的属性设置自定义语言。
覆盖此模型:
Mage_Core_Model_Email_Template
public function sendTransactional($templateId, $sender, $emails, $name, $vars = array(), $storeId = null) {
$this -> setSentSuccess(false);
// print_r($emails);die;
foreach ((array)$emails as $key => $email) {
if (($storeId === null) && $this -> getDesignConfig() -> getStore()) {
$storeId = $this -> getDesignConfig() -> getStore();
}
if (is_numeric($templateId)) {
$this -> load($templateId);
} else {
$localeCode = Mage::getStoreConfig('general/locale/code', $storeId);
$webSiteId = array(Mage::app()->getStore($storeId)->getWebsiteId(),1);
$webSiteId = array_unique($webSiteId);
$Customer = Mage::getModel("customer/customer");
$Customer->setWebsiteId($webSiteId);
$Customer->loadByEmail($email);
$language = $Customer->getData('language');
if (isset($language) && !empty($language)) {
$localeCode = $this -> setLanguageByAsiointikieli($language);
} else {
$localeCode = 'en_US';
}
// Mage::getSingleton('adminhtml/session')->setLocale($localeCode);
// Mage::app()->getLocale()->setLocaleCode($localeCode);
$this -> loadDefault($templateId, $localeCode);
}
....
现在,我设置的自定义语言是en_US.default语言是fi_FI。
结果是:
电子邮件内容标题是正确的(en_US)。但电子邮件内容值错误(fi_FI),不是en_US。
如下图所示:
点击这个 order email image
为什么?谁能帮助我?