Логотип Magento Transactional Email и HTTPS (SSL)

В Magento CE 1.8 по умолчанию используется {{var logo_url}} использование ссылки HTTPS в ее транзакционных письмах (если включен SSL). Это вызывает проблему в Outlook, поскольку Outlook не отображает изображения с URL-адресом SSL.

Есть ли какой-либо "простой" способ заставить {{var logo_url}} к HTTP?

1 ответ

Я не думаю, что это хорошая идея, чтобы обеспечить что-либо 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-magent-blocks-models-helpers-and-controllers/ является хорошим отправная точка).

licensed under cc by-sa 3.0 with attribution.