Saya mencoba untuk memindahkan blok Opsi Hadiah (formulir pesan hadiah) dari halaman Keranjang belanja saat ini ke langkah pertama Checkout (Pengiriman). Saya harus meletakkannya tepat di bawah Metode Pengiriman. Saya mencoba menambahkan modul GiftMessage ke tema saya dan di dalam ini memodifikasi file layout checkout_index_index.xml untuk referensi blokir checkout untuk penyisipan Pesan Hadiah, tetapi tidak ada gunanya. Bantuan apa pun akan sangat dihargai. Terima kasih!
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="checkout.root">
<block class="Magento\GiftMessage\Block\Cart\GiftOptions" name="checkout.cart.order.actions.gift_options" template="cart/gift_options.phtml" cacheable="false">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="types" xsi:type="array"/>
<item name="components" xsi:type="array">
<item name="giftOptionsCart" xsi:type="array">
<item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item>
<item name="config" xsi:type="array">
<item name="template" xsi:type="string">Magento_GiftMessage/gift-message</item>
<item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item>
</item>
</item>
</item>
</argument>
</arguments>
</block>
</referenceBlock>
</body>
magento2
checkout
giftmessage
maquina
sumber
sumber
Jawaban:
Pertama-tama, kita perlu memahami cara kerja Pesan Hadiah Magento di Halaman Keranjang.
File ini adalah cahaya kita. Kami akan menghemat banyak waktu jika kami memahami logikanya.
window.giftOptionsConfig
: variabel global ini digunakan untuk konfigurasi. Kita harus membuatnya kembali saat checkout.Mari kita mulai menerapkan logika kebiasaan kita. Buat modul baru, tambahkan logika berikut:
app / code / Vendor / CheckoutDemo / view / frontend / layout / checkout_index_index.xml
Ada 3 catatan:
-Pengiriman langkah akan menggunakan template html pengiriman kustom kami. Lebih mudah untuk menambahkan wilayah khusus kami.
-Bidang Hadiah Kami: Saya menyalin konten dari
vendor/magento/module-gift-message/view/frontend/layout/checkout_cart_index.xml
.Konfigurasi hadiah
Buat aplikasi / kode / Vendor / CheckoutDemo / view / frontend / templates / gift_options.phtml
Kami menggunakan
giftOptionsConfig
variabel global karena logika pesan hadiah akan menggunakannya.app / code / Vendor / CheckoutDemo / etc / frontend / di.xml
app / code / Vendor / CheckoutDemo / Model / GiftMessageConfigProvider.php
Buat html pengiriman, salin konten dari
vendor/magento/module-checkout/view/frontend/web/template/shipping.html
ke kebiasaan kamiapp/code/Vendor/CheckoutDemo/view/frontend/web/template/shipping.html
. Dan, tambahkan wilayah pesan hadiah khusus kami:app / code / Vendor / CheckoutDemo / view / frontend / web / template / shipping.html
Hasil:
sumber
Coba kode di bawah ini
Sebelumnya saya telah membuat satu ekstensi gateway pembayaran di mana saya telah memberikan file template khusus saya di bagian pembayaran. Saya juga menambahkan kode itu di sini, Silakan tambahkan Jika saya melewatkan sesuatu. (Cirkle_Behalf) adalah nama Modul.
sumber