在Magento CE 1.8中,似乎{{var logo_url}}默认在其交易电子邮件中使用HTTPS链接(如果启用SSL)。这会导致Outlook出现问题,因为Outlook不会显示带有SSL URL的图像。
是否有任何"简单"的方法来强制{{var logo_url}}到HTTP?
我不认为这是一个好主意强制任何是HTTP而不是HTTPS,但好吧…我能想到的最简单的方法是在自己的扩展中扩展Mage_Core_Model_Email_Template_Abstract
(更好),或者在您的本地代码池中覆盖它(更快,还可以,但不是那么干净)并调整函数_addEmailVariables($variables, $storeId)
。
复制app/code/core/Mage/Core/Model/Email/Template/Abstract.php
到app/code/local/Mage/Core/Model/Email/Template/Abstract.php
,并创建app/code/local/
中不存在的文件夹
现在在app/code/local/Mage/Core/Model/Email/Template/Abstract.php
的_addEmailVariables($variables, $storeId)
函数中查找
if (!isset($variables['logo_url'])) {
$variables['logo_url'] = $this->_getLogoUrl($storeId);
}
并将其替换为如下内容
if (!isset($variables['logo_url'])) {
$variables['logo_url'] = str_replace("https", "http", $this->_getLogoUrl($storeId));
}
未测试,但应该可以工作。您也可以在自己的扩展中采用这种方法。如果您不熟悉这个过程,请查看http://inchoo.net/上的优秀文章(http://inchoo.net/magento/overriding-magento-blocks-models-helpers-and-controllers/是一个很好的起点)。