发送订单或发票邮件时,邮件内容语言为默认本地代码。
所以我想通过一个客户的属性设置自定义语言。
覆盖这个模型:</p>
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。默认语言是 fi_FI。
结果是:
邮件内容标题是正确的(en_US)。但是邮件内容的值是错误的(fi_FI),不是en_US。
如下所示:
单击此 订单电子邮件图片
为什么??谁能帮我 ??