Làm thế nào để gỡ lỗi một mẫu email?


8

Tôi đang làm việc để sửa đổi các mẫu email. {themeName}/template/email/order/items/order/default.phtml

Mẫu trên kích hoạt khi người dùng ( khách hoặc khách hàng ) đã đặt hàng.

Trong mẫu trên, có một số biến như:

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

nếu tôi sử dụng bất kỳ phương pháp gỡ lỗi nào như Mage::loghoặc zend_debug::dump, trang thanh toán sẽ bị treo và đơn hàng không bao giờ được xử lý.

Vì vậy, câu hỏi của tôi là tôi nên sử dụng những gì để gỡ lỗi các mẫu email ở đây?

Tôi cũng đã sử dụng echoluôn luôn hiển thị một chuỗi rỗng hoặc arraycho một biến giữ mảng.


Ai đó có thể vui lòng cho tôi biết làm thế nào để có được order_id từ các biến trên không?
Mr_Green

Bạn đã thử sử dụng Mage::logtrong lớp block ( Mage_Sales_Block_Order_Email_Items_Order_Default) chưa?
nevvermind

@nevvermind tôi đã cố gắng Mage::logtrong Mage_Sales_Block_Items_Abstract. có vấn đề tương tự như tôi đã đề cập ở trên trong bài viết của mình. Tôi đã không nhận được mối quan hệ với lớp được đề cập của bạn.
Mr_Green

Email tpl là trong app/locale/en_US/template/email/sales/order_new_guest.html(cho khách). Ở đó, một tay cầm bố trí được chèn - sales_email_order_items. Xử lý này được khai báo trong app/design/frontend/base/default/layout/sales.xml. Mẫu bạn đang gặp vấn đề với khối được đặt thành sales/order_email_items_order_default- aka Mage_Sales_Block_Order_Email_Items_Order_Default.
nevvermind

@nevvermind Cảm ơn thông tin. Trên thực tế, tôi đang nhận các sản phẩm html đến email từ {themeName}/template/email/order/items/order/default.phtml ( tôi đã kiểm tra kỹ ) Phần khác của email như "Cảm ơn bạn đã mua .. blah blah blah" đến từ những gì bạn đã đề cập ở trên ( Tôi không kiểm tra nhưng Tôi nghĩ vậy ). Thành thật mà nói, tôi đã giải quyết vấn đề này nhưng câu hỏi của tôi là làm thế nào để gỡ lỗi trong các mẫu email này?
Mr_Green

Câu trả lời:



2

Bạn cũng có thể thử Mage::log($your_object->debug());điều này hy vọng sẽ cung cấp cho bạn thông tin mà bạn cần.

Nó sẽ hiển thị cho bạn tất cả dữ liệu đối tượng dưới dạng một mảng của key => value và sẽ hiển thị cho bạn lớp của bất kỳ dữ liệu phụ nào là đối tượng.

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);
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.