【发布时间】:2014-05-13 00:11:59
【问题描述】:
在 Magento CE 1.8 中,{{var logo_url}} 默认在其交易电子邮件中使用 HTTPS 链接(如果启用了 SSL)。这会导致 Outlook 出现问题,因为 Outlook 不会显示带有 SSL URL 的图像。
是否有任何“简单”的方法可以强制 {{var logo_url}} 使用 HTTP?
【问题讨论】:
在 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/ 是一个很好的起点)。
【讨论】: