Comment déboguer un modèle d'e-mail?


8

Je travaille sur la modification des modèles d'e-mails. {themeName}/template/email/order/items/order/default.phtml

Le modèle ci-dessus se déclenche lorsque l'utilisateur ( invité ou client ) a passé la commande.

Dans le modèle ci-dessus, il existe des variables comme:

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

si j'utilise des méthodes de débogage comme Mage::logou zend_debug::dump, la page de paiement est bloquée et la commande n'est jamais traitée.

Donc, ma question est ce que dois-je utiliser pour déboguer les modèles d'e-mail ici?

J'ai également utilisé echoce qui montre toujours une chaîne vide ou arraypour une variable contenant un tableau.


Quelqu'un peut-il au moins me dire comment obtenir order_id à partir des variables ci-dessus?
Mr_Green

Avez-vous essayé d'utiliser Mage::logdans la classe de bloc ( Mage_Sales_Block_Order_Email_Items_Order_Default)?
nevvermind

@nevvermind J'ai essayé Mage::logdans Mage_Sales_Block_Items_Abstract. qui a le même problème que je l'ai mentionné ci-dessus dans mon message. Je n'ai pas eu de relation avec votre classe mentionnée.
Mr_Green

L'email tpl est dans app/locale/en_US/template/email/sales/order_new_guest.html(pour l'invité). Là, une poignée de mise en page est insérée - sales_email_order_items. Cette poignée est déclarée dans app/design/frontend/base/default/layout/sales.xml. Le modèle avec lequel vous rencontrez des problèmes a le bloc défini sur sales/order_email_items_order_default- aka Mage_Sales_Block_Order_Email_Items_Order_Default.
nevvermind

@nevvermind Merci pour l'info. En fait, je reçois les produits html à l'e-mail de {themeName}/template/email/order/items/order/default.phtml ( je l'ai vérifié à fond ) L'autre partie de l'e-mail comme "Merci d'avoir acheté .. bla bla bla" vient de ce que vous avez mentionné ci-dessus ( je n'ai pas vérifié mais Je pense que oui ). Pour être franc, j'ai résolu ce problème mais ma question est de savoir comment déboguer dans ces modèles de courrier électronique?
Mr_Green

Réponses:



2

Vous pouvez également essayer Mage::log($your_object->debug());cela vous donnera, espérons-le, les informations dont vous avez besoin.

Il vous montrera toutes les données des objets sous forme de tableau de clé => valeur et vous montrera la classe de toutes les sous-données qui sont un objet.

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);
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.