Это мой первый ответ на этом сайте. Я изо всех сил пытался сделать эту работу в течение последних двух дней, и я наконец-то смог заставить ее работать, поэтому я подумал, что было бы неплохо поделиться ею.
Прежде всего вам нужно создать модуль:
- 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) необходимо открыть миникарту.
И это все, простая задача с большим количеством теории позади. Надеюсь, это поможет.
Это можно сделать, просто изменив файл minicart.js.
Перейдите к
vendor/magento/Magento_Checkout/view/web/js/view/minicart.js
Под Initialize: функция, вы увидите
Замените функцию этим кодом.
Вы можете изменить время ожидания согласно вашему требованию.
загрузить файл и очистить кеш, запустив команду
Ура!
источник
альтернативное решение:
vendor/magento/module-catalog/view/frontend/web/js/catalog-add-to-cart.js
строка проверки : 100Мы могли бы добавить собственный файл js:
В JS:
источник
Просто вы можете использовать этот код в вашем minicart.phtml ниже вашего шаблонного кода. Я использую этот код, и он работает в лучшую сторону. можешь попробовать. Благодарю.
источник
Этот ответ выше работает, но отсутствует закрывающая скобка:
источник