Ini jawaban pertama saya di situs ini. Saya telah berjuang keras untuk membuat ini berhasil selama dua hari terakhir dan akhirnya saya bisa membuatnya bekerja, jadi saya pikir akan lebih baik untuk membaginya.
Pertama-tama Anda perlu membuat modul:
- registrasi.php
- etc / module.xml
- view / frontend / layout / default.xml
- lihat / tampilan depan / templat / minicart_open.phtml
- view / frontend / web / js / view / minicart_open.js
Langkah 1. Anda perlu menambahkan templat ke situs. Cara untuk melakukannya adalah dengan menggunakan default.xml
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" name="minicart.autoopen" template="Company_ModuleName::minicart_open.phtml"/>
</referenceContainer>
Langkah 2. Kemudian di dalam minicart_open.phtml kita perlu memanggil file js (komponen) kita dengan melampirkannya ke div induk dari minicart. Dalam hal ini, [data-block = 'minicart']. Lihat tautan ini untuk lebih jelasnya.
<script type="text/x-magento-init">
{
"[data-block='minicart']" : {
"Company_ModuleName/js/view/minicart_open" : {}
}
}
</script>
Langkah 3. Dan akhirnya, di dalam minicart_open.js, kode ajaib:
define(["jquery/ui","jquery"], function(Component, $){
return function(config, element){
var minicart = $(element);
minicart.on('contentLoading', function () {
minicart.on('contentUpdated', function () {
minicart.find('[data-role="dropdownDialog"]').dropdownDialog("open");
});
});
}
});
Pada dasarnya kode ini memperluas fungsionalitas file vendor/magento/module-checkout/view/frontend/web/js/view/minicart.js
, dan mengatakan bahwa begitu panggilan AJAX selesai (contentUpdated), minicart harus dibuka.
Dan itu saja, tugas sederhana dengan banyak teori di belakang. Semoga ini bisa membantu.