Как отладить шаблон электронной почты?

8

Я работаю над изменением шаблонов электронной почты. {themeName}/template/email/order/items/order/default.phtml

Приведенный выше шаблон срабатывает, когда пользователь ( гость или клиент ) разместил заказ.

В приведенном выше шаблоне есть некоторые переменные, такие как:

$_item = $this->getItem();
$_order = $this->getItem()->getOrder(); 

если я использую какие-либо методы отладки, такие как Mage::logили zend_debug::dump, страница оформления заказа зависает, и заказ никогда не обрабатывается.

Итак, мой вопрос, что я должен использовать для отладки шаблонов электронной почты здесь?

Я также использовал, echoкоторый всегда показывает пустую строку или arrayдля переменной, содержащей массив.

Мистер Грин
источник
Может кто-нибудь, пожалуйста, по крайней мере, скажите мне, как получить order_id из вышеуказанных переменных?
Mr_Green
Вы пытались использовать Mage::logв классе блока ( Mage_Sales_Block_Order_Email_Items_Order_Default)?
nevvermind
@nevvermind Я попробовал Mage::logв Mage_Sales_Block_Items_Abstract. которая имеет ту же проблему, что я упоминал выше в моем посте. Я не имел отношения к вашему упомянутому классу.
Mr_Green
Адрес электронной почты находится в app/locale/en_US/template/email/sales/order_new_guest.html(для гостей). Там указатель макета вставлен - sales_email_order_items. Этот дескриптор объявлен в app/design/frontend/base/default/layout/sales.xml. В шаблоне, с которым у вас возникли проблемы, установлен блок sales/order_email_items_order_default- aka Mage_Sales_Block_Order_Email_Items_Order_Default.
nevvermind
@nevvermind Спасибо за информацию. На самом деле, я получаю html продуктов на электронную почту от {themeName}/template/email/order/items/order/default.phtml ( я проверил это полностью ). Другая часть электронного письма, типа "Спасибо за покупку ... бла-бла-бла", идет от того, что вы упомянули выше ( я не проверял, но Я так думаю ). Честно говоря, я решил эту проблему, но у меня вопрос, как отлаживать в этих шаблонах электронной почты?
Mr_Green

Ответы:

6

На хакатоне мы (читай как они :-)) реализовали модуль для предварительного просмотра почтовых шаблонов: https://github.com/magento-hackathon/E-MailPreview

Может быть, это помогает.

Фабиан Блехшмидт
источник
2

Вы также можете попробовать Mage::log($your_object->debug());это, надеюсь, даст вам информацию, которая вам нужна.

Он покажет вам все данные объектов в виде массива key => value и покажет вам класс любых субданных, которые являются объектом.

if (is_scalar($value)) {
    $debug[$key] = $value;
} elseif (is_array($value)) {
    $debug[$key] = $this->debug($value, $objects);
} elseif ($value instanceof Varien_Object) {
    $debug[$key.' ('.get_class($value).')'] = $value->debug(null, $objects);
}
Дэвид Мэннерс
источник