Это мой первый ответ на этом сайте. Я изо всех сил пытался сделать эту работу в течение последних двух дней, и я наконец-то смог заставить ее работать, поэтому я подумал, что было бы неплохо поделиться ею.
Прежде всего вам нужно создать модуль:
- registration.php
- и т.д. / module.xml
- просмотреть / интерфейс / макет / default.xml
- просмотреть / интерфейс / шаблоны / minicart_open.phtml
- вид / интерфейс / веб / JS / просмотр / 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-файл (компонент), прикрепив его к родительскому div мини-карты. В этом случае [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) необходимо открыть миникарту.
И это все, простая задача с большим количеством теории позади. Надеюсь, это поможет.