Como depurar um modelo de email?

8

Estou trabalhando na modificação de modelos de email. {themeName}/template/email/order/items/order/default.phtml

O modelo acima é acionado quando o usuário ( convidado ou cliente ) faz o pedido.

No modelo acima, existem algumas variáveis ​​como:

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

se eu usar métodos de depuração como Mage::logou zend_debug::dump, a página de check-out está desligada e o pedido nunca está sendo processado.

Então, minha pergunta é o que devo usar para depurar modelos de email aqui?

Eu também usei o echoque está sempre mostrando uma seqüência vazia ou arraypara uma matriz segurando variável.

Senhor Verde
fonte
Alguém por favor pode me dizer como obter order_id das variáveis ​​acima?
Mr_Green
Você já tentou usar Mage::logna classe block ( Mage_Sales_Block_Order_Email_Items_Order_Default)?
nevvermind
@nevvermind Tentei Mage::logno Mage_Sales_Block_Items_Abstract. que tem o mesmo problema que mencionei acima em minha postagem. Eu não tive relação com a sua turma mencionada.
precisa saber é o seguinte
O email tpl está em app/locale/en_US/template/email/sales/order_new_guest.html(para convidado). Lá, um identificador de layout é inserido - sales_email_order_items. Esse identificador é declarado em app/design/frontend/base/default/layout/sales.xml. O modelo com o qual você está tendo problemas tem o bloco definido como sales/order_email_items_order_default- aka Mage_Sales_Block_Order_Email_Items_Order_Default.
precisa saber é o seguinte
@nevvermind Obrigado pela informação. Na verdade, estou recebendo os produtos html para o e-mail {themeName}/template/email/order/items/order/default.phtml ( verifiquei-o minuciosamente ). A outra parte do e-mail, como "Obrigado por comprar ... blá blá blá", vem do que você mencionou acima ( eu não verifiquei, mas Eu acho que sim ). Para ser franco, resolvi esse problema, mas minha pergunta é como depurar nesses modelos de email?
Mr_Green

Respostas:

2

Você também pode tentar Mage::log($your_object->debug());isso, esperançosamente, fornecer as informações necessárias.

Ele mostrará todos os dados dos objetos como uma matriz de key => value e mostrará a classe de qualquer sub-dados que seja um objeto.

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);
}
David Manners
fonte