Bagaimana cara men-debug templat email?

8

Saya sedang mengerjakan memodifikasi templat email. {themeName}/template/email/order/items/order/default.phtml

Templat di atas terpicu ketika pengguna ( tamu atau pelanggan ) telah melakukan pemesanan.

Dalam templat di atas, ada beberapa variabel seperti:

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

jika saya menggunakan metode debug seperti Mage::logatau zend_debug::dump, halaman checkout ditutup dan pesanan tidak pernah diproses.

Jadi, pertanyaan saya adalah apa yang harus saya gunakan untuk men-debug templat email di sini?

Saya juga menggunakan echoyang selalu menampilkan string kosong atau arrayuntuk variabel holding array.

Tuan_Green
sumber
Bisakah seseorang tolong beri tahu saya cara mendapatkan order_id dari variabel di atas?
Mr_Green
Sudahkah Anda mencoba menggunakannya Mage::logdi kelas blok ( Mage_Sales_Block_Order_Email_Items_Order_Default)?
nevvermind
@nevvermind saya mencoba Mage::logdi Mage_Sales_Block_Items_Abstract. yang memiliki masalah yang sama seperti yang saya sebutkan di atas dalam posting saya. Saya tidak memiliki hubungan dengan kelas yang Anda sebutkan.
Mr_Green
Tpl email ada di app/locale/en_US/template/email/sales/order_new_guest.html(untuk tamu). Di sana, pegangan tata letak dimasukkan - sales_email_order_items. Pegangan ini dinyatakan dalam app/design/frontend/base/default/layout/sales.xml. Templat yang sedang Anda hadapi memiliki blok yang disetel ke sales/order_email_items_order_default- alias Mage_Sales_Block_Order_Email_Items_Order_Default.
nevvermind
@nevvermind Terima kasih atas informasinya. Sebenarnya, saya mendapatkan produk dari html ke email dari {themeName}/template/email/order/items/order/default.phtml ( saya memeriksanya dengan seksama ) Bagian lain dari email seperti "Terima kasih telah membeli .. blah blah blah" berasal dari apa yang telah Anda sebutkan di atas ( saya tidak memeriksa tetapi Saya kira begitu ). Sejujurnya, saya memecahkan masalah ini tetapi pertanyaan saya adalah bagaimana cara debug di templat email ini?
Mr_Green

Jawaban:

2

Anda juga dapat mencoba Mage::log($your_object->debug());ini semoga akan memberi Anda informasi yang Anda butuhkan.

Ini akan menunjukkan kepada Anda semua objek data sebagai array nilai kunci => dan akan menunjukkan kepada Anda kelas dari setiap sub-data yang merupakan objek.

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
sumber