1

发送订单或发票邮件时,邮件内容语言为默认本地代码。

所以我想通过一个客户的属性设置自定义语言。

覆盖这个模型:</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。

如下所示:

单击此 订单电子邮件图片

为什么??谁能帮我 ??

4

0 回答 0