Tampilkan baris dalam email transaksional jika metode pembayarannya
8
Saya ingin menampilkan garis hanya ketika pelanggan memilih metode pembayaran checkout wesel. Ketika seorang pelanggan memilih wesel sebagai metode pembayaran, saya ingin menampilkan <li>garis tambahan ke email transaksi.
Jika pelanggan memilih metode pembayaran lain, tambahan itu <li>harus disembunyikan.
Dalam hal ini Anda dapat mengatur ini dengan handler.
Gunakan Handler:
Buat handler dan definisikan di file layout:
create a handlerdan menggunakan penangan ini membuat file phtml. Aktif local.xmldi app/design/frontend/YOUR_PAackage/YOUR_template/layoutdefine handler.
Kode file tata letak seperti:
<?xml version="1.0"?><layoutversion="0.1.0"><!-- add new handler --><amit_customer_addhan><blocktype="core/template"name="addNewLi"template="sales/showcheckmo.phtml"/></amit_customer_addhan></layout>
Panggil penangan ini di templat email
Kemudian on email html call this handler(locale/YourLANG/template/email/)
Saya akan mencoba menjawab pertanyaan awal Anda - bagaimana menggunakan arahan dengan syarat. Untuk debug saya menggunakan xDebug. Dan menurut saya sangat sulit untuk men-debug email. Dalam hal ini saya tunjukkan contoh dengan struktur yang sama di bagian lain dari magento.
Pada bagian penjualan / pesanan / tampilan ada struktur yang sama. Struktur keluaran alamat ditentukan di Mage/Core/etc/config.xmldalam default/customer/address_templates/text.
Tugas kita akan menambahkan kondisi apa pun untuk menunjukkan atau tidak menunjukkan 'nama perusahaan'. Arahan seperti var , depend , jika diuraikan Varien_Filter_Templatedalam metode filter ($ value) . Dalam metode ini ada iterasi dari semua $ konstruksi (jika / depend / var) dan setiap $ konstruksi yang digunakan dalam panggilan ini:
// If object calling methods or getting properties
Jadi untuk membuat kondisi $ stackVars kita harus menjadi objek dan menjadi instace Varien_Object (sebagian besar model memanjang dari Mage_Core_Model_Abstract, yang memanjang dari Varien_Object). Mari kita naik beberapa langkah di atas. Kita perlu menambahkan ke stackVars dan objek.
Dalam contoh saya di kelas Mage_Customer_Block_Address_Renderer_Default metode filter panggilan magento ($ value), yang saya sebutkan di atas.
Di sini saya memberikan solusinya. Peringatan! Solusi ini tidak terlalu bersih. Ini bertujuan untuk menunjukkan perilaku magento. Tolong lakukan semua penulisan ulang sendiri.
Dalam metode ini kita akan menambahkan objek pesanan ke $ data array. Menurut tugas saya, mari kita tambahkan objek pesanan ke array ini. Lakukan sebelum '$ formater-> setVariables ($ data);'
$data['order_object']= $address->getOrder();
Setelah magento ini akan menguraikan objek ini dan memanggil metode apa pun itu. Sebagai contoh, kami menambahkan metode getPaymentOutput () baru. Masukkan fungsionalitas sederhana ke dalam kelas Order:
sumber
Saya akan mencoba menjawab pertanyaan awal Anda - bagaimana menggunakan arahan dengan syarat. Untuk debug saya menggunakan xDebug. Dan menurut saya sangat sulit untuk men-debug email. Dalam hal ini saya tunjukkan contoh dengan struktur yang sama di bagian lain dari magento.
Pada bagian penjualan / pesanan / tampilan ada struktur yang sama. Struktur keluaran alamat ditentukan di
Mage/Core/etc/config.xml
dalamdefault/customer/address_templates/text
.Tugas kita akan menambahkan kondisi apa pun untuk menunjukkan atau tidak menunjukkan 'nama perusahaan'. Arahan seperti var , depend , jika diuraikan
Varien_Filter_Template
dalam metode filter ($ value) . Dalam metode ini ada iterasi dari semua $ konstruksi (jika / depend / var) dan setiap $ konstruksi yang digunakan dalam panggilan ini:Untuk setiap if / depende / var ada metode sendiri. Mari lihat
public function ifDirective($construction)
Sekarang mari kita lihat metode yang dilindungi _getVariable. Saya ingin menarik perhatian Anda pada satu baris:
dan lihat komentar di bawah ini:
Jadi untuk membuat kondisi $ stackVars kita harus menjadi objek dan menjadi instace Varien_Object (sebagian besar model memanjang dari Mage_Core_Model_Abstract, yang memanjang dari Varien_Object). Mari kita naik beberapa langkah di atas. Kita perlu menambahkan ke stackVars dan objek.
Dalam contoh saya di kelas Mage_Customer_Block_Address_Renderer_Default metode filter panggilan magento ($ value), yang saya sebutkan di atas.
Di sini saya memberikan solusinya. Peringatan! Solusi ini tidak terlalu bersih. Ini bertujuan untuk menunjukkan perilaku magento. Tolong lakukan semua penulisan ulang sendiri.
Dalam metode ini kita akan menambahkan objek pesanan ke $ data array. Menurut tugas saya, mari kita tambahkan objek pesanan ke array ini. Lakukan sebelum '$ formater-> setVariables ($ data);'
Setelah magento ini akan menguraikan objek ini dan memanggil metode apa pun itu. Sebagai contoh, kami menambahkan metode getPaymentOutput () baru. Masukkan fungsionalitas sederhana ke dalam kelas Order:
dan hanya setelah itu kami membuat perubahan dalam direktif xml dengan ini:
sumber