पहली बात मैंने Magento के स्रोत कोड में खोज की थी। {{var payment_html}}
मानते हैं कि कहीं भी payment_html
पर खोज की गई है। कई परिणाम खोज से मेल खाते हैं;
Mage_Sales_Model_Order
Mage_Sales_Model_Order_Creditmemo
Mage_Sales_Model_Order_Invoice
Mage_Sales_Model_Order_Shipment
तो उस भुगतान ब्लॉक की जानकारी वहां मौजूद है। मैंने Mage_Sales_Model_Order
लिया और चर $paymentBlockHtml
को चेक किया। यह भुगतान जानकारी द्वारा भुगतान ब्लॉक भरने के लिए और तर्क के लिए इंगित किया गया है। यह एक ब्लॉक बना रहा है और ऐसा लगता है कि पहली बार विस्तार/परिवर्तन/संशोधित करना आसान नहीं है। हां, हम विशिष्ट (भुगतान) ब्लॉक प्रकार पर एक टेम्पलेट लागू कर सकते हैं क्योंकि एक ब्लॉक बनाया गया है, लेकिन हम आसानी से जांच नहीं सकते कि हम कौन सा ब्लॉक लोड करना चाहते हैं। इसके अलावा टेम्पलेट Mage_Payment_Block_Info
के निर्माण में ओवरराल्ड किया गया है चलिए दूसरी तरफ जांचें।
चलो कुछ अच्छा करते हैं, हम ईमेल में एक ब्लॉक क्यों नहीं जोड़ते हैं जिसमें सही जानकारी होती है लेकिन अधिक महत्वपूर्ण है जहां सही मामले में स्विच करना संभव है। चूंकि टेम्पलेट पार्सर का उपयोग चर और लेआउट हैंडल को पार्स करने के लिए किया जाता है, इसलिए हम {{var payment_html}}
ब्लॉक के बजाय निम्नलिखित को जोड़ सकते हैं और उस जानकारी को ब्लॉक में ही पुनर्प्राप्त कर सकते हैं।
{{block type='core/template' template='email/templatename.phtml'}}
ऊपर कोड ईमेल, जिसका अर्थ है आप उस टेम्पलेट में कुछ भी कर सकता है कि सही डेटा दिखाने के लिए में ई-मेल/templatename.phtml को पार्स कर रहा है। इससे पहले कि हम इस टेम्पलेट में भुगतान डेटा पुनर्प्राप्त कर सकें, हमें ऑर्डर डेटा के साथ ऑर्डर तर्क जोड़ना होगा। यह काफी सरल है;
{{block type='core/template' order=$order template='email/templatename.phtml'}}
टेम्पलेट में हम किसी अन्य तरीके से डेटा भुगतान जानकारी प्राप्त कर सके, या $this->getOrder->getPayment()->toHtml()
या की प्रक्रिया $this->getOrder()->getPayment()
कर सकते हैं।
बोनस; एक और समाधान लेआउट हैंडल के साथ काम कर रहा है और सही टेम्पलेट सेट करता है और उसी ईमेल में ऑर्डर आइटम्स के उदाहरण के नीचे लेआउट.एक्सएमएल में टाइप करता है। यह ब्लॉक के समान काम कर रहा है, लेकिन केवल लेआउट xml में कुछ सेटिंग्स के साथ।
{{layout handle="sales_email_order_items" order=$order}}
स्रोत
2013-02-05 22:14:30