Це моя перша відповідь на цьому сайті. Я намагаюся зробити цю роботу останні два дні, і, нарешті, мені вдалося змусити її працювати, тому мені хотілося б поділитися нею.
Перш за все вам потрібно створити модуль:
- registration.php
- тощо / module.xml
- view / frontend / layout / default.xml
- view / frontend / templates / minicart_open.phtml
- view / frontend / web / js / view / minicart_open.js
Крок 1. Вам потрібно додати шаблон на сайт. Це можна зробити за допомогою default.xml
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" name="minicart.autoopen" template="Company_ModuleName::minicart_open.phtml"/>
</referenceContainer>
Крок 2. Потім всередині minicart_open.phtml нам потрібно викликати наш js файл (компонент), приєднавши його до батьківського діви minicart. У цьому випадку [data-block = 'minicart']. Дивіться це посилання для отримання більш детальної інформації.
<script type="text/x-magento-init">
{
"[data-block='minicart']" : {
"Company_ModuleName/js/view/minicart_open" : {}
}
}
</script>
Крок 3. І, нарешті, всередині minicart_open.js магічний код:
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");
});
});
}
});
В основному цей код розширює функціональність файлу vendor/magento/module-checkout/view/frontend/web/js/view/minicart.js
, і він говорить про те, що після завершення виклику AJAX (contentUpdated) міні-картка повинна бути відкрита.
І це все, просте завдання з великою кількістю теорії. Сподіваюся, це допомагає.