Điều đầu tiên tôi làm là tìm kiếm trong mã nguồn của Magento. Giả sử {{var payment_html}}
được xử lý ở đâu đó mà tôi đã tìm kiếm trên payment_html
. Một số kết quả phù hợp với tìm kiếm;
Mage_Sales_Model_Order
Mage_Sales_Model_Order_Creditmemo
Mage_Sales_Model_Order_Invoice
Mage_Sales_Model_Order_Shipment
Vì vậy, thông tin cho khối thanh toán đó phải ở trong đó. Tôi đã Mage_Sales_Model_Order
và đã kiểm tra biến số $paymentBlockHtml
. Điều này được chỉ ra để tiếp tục logic để điền vào khối thanh toán bằng thông tin thanh toán. Nó tạo ra một khối và có vẻ như điều này là không dễ dàng để mở rộng/thay đổi/sửa đổi trên cái nhìn đầu tiên. Có, chúng tôi có thể áp dụng mẫu cho loại khối cụ thể (thanh toán) vì có một khối được tạo nhưng chúng tôi không thể dễ dàng kiểm tra xem chúng tôi muốn tải khối nào. Ngoài ra, mẫu được bỏ qua trong cấu trúc của Mage_Payment_Block_Info
Hãy kiểm tra theo cách khác.
Hãy làm điều gì đó tuyệt vời, tại sao chúng tôi không thêm một khối vào email chứa thông tin chính xác nhưng quan trọng hơn khi có thể chuyển sang đúng trường hợp. Vì trình phân tích cú pháp mẫu được sử dụng để phân tích cú pháp các biến và xử lý bố cục, chúng tôi có thể thêm các mục sau vào thay vì khối {{var payment_html}}
và truy xuất thông tin đó trong chính khối đó.
{{block type='core/template' template='email/templatename.phtml'}}
Đoạn mã trên đang phân tích email/templatename.phtml vào email, có nghĩa là bạn có thể làm bất cứ điều gì trong mẫu đó để hiển thị dữ liệu chính xác. Trước khi chúng tôi có thể truy xuất dữ liệu thanh toán trong mẫu này, chúng tôi phải thêm đối số thứ tự với dữ liệu đơn đặt hàng. Điều đó khá đơn giản;
{{block type='core/template' order=$order template='email/templatename.phtml'}}
Trong mẫu chúng ta có thể làm $this->getOrder()->getPayment()
để lấy thông tin thanh toán, hoặc $this->getOrder->getPayment()->toHtml()
hoặc xử lý dữ liệu theo cách khác.
Tiền thưởng; Một giải pháp khác là làm việc với các bố cục bố trí và đặt đúng mẫu và nhập vào tệp layout.xml, bên dưới ví dụ cho các mục đơn đặt hàng trong cùng một email. Nó hoạt động giống như khối, nhưng chỉ với một số cài đặt trong bố cục xml.
{{layout handle="sales_email_order_items" order=$order}}