Magento事务性电子邮件徽标和HTTPS(SSL)
在Magento CE 1.8中,似乎{{var logo_url}}默认在其事务性电子邮件中使用HTTPS链接(如果启用了SSL)。这会导致Outlook出现问题,因为Outlook不会显示带有SSL URL的图像Magento事务性电子邮件徽标和HTTPS(SSL),magento,email,ssl,https,Magento,Email,Ssl,Https,在Magento CE 1.8中,似乎{{var logo_url}}默认在其事务性电子邮件中使用HTTPS链接(如果启用了SSL)。这会导致Outlook出现问题,因为Outlook不会显示带有SSL URL的图像 有什么“简单”的方法可以强制{{var logo_url}}使用HTTP吗?我认为强制任何东西使用HTTP而不是HTTPS不是一个好主意,但是。。。我能想到的最简单的方法是在自己的扩展(更好)中扩展Mage\u Core\u Model\u Email\u Template\u A
有什么“简单”的方法可以强制{{var logo_url}}使用HTTP吗?我认为强制任何东西使用HTTP而不是HTTPS不是一个好主意,但是。。。我能想到的最简单的方法是在自己的扩展(更好)中扩展
Mage\u Core\u Model\u Email\u Template\u Abstract
,或者在本地代码池中覆盖它(更快、更好,但不太干净),并调整函数\u 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/
中不存在的任何文件夹
现在在函数\u addEmailVariables($variables,$storeId)
中的app/code/local/Mage/Core/Model/Email/Template/Abstract.php
中查找
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));
}
没有测试,但这应该是可行的。您也可以在自己的扩展中采用这种方法。如果您不熟悉流程,请查看关于的优秀文章(这是一个很好的起点)