Dies ist meine erste Antwort auf dieser Seite. Ich hatte in den letzten zwei Tagen Mühe, diese Arbeit zum Laufen zu bringen, und konnte sie endlich zum Laufen bringen. Ich denke, es wäre schön, sie zu teilen.
Zunächst müssen Sie ein Modul erstellen:
- registration.php
- etc / module.xml
- view / frontend / layout / default.xml
- view / frontend / templates / minicart_open.phtml
- view / frontend / web / js / view / minicart_open.js
Schritt 1. Sie müssen der Site eine Vorlage hinzufügen. Verwenden Sie dazu die Datei default.xml
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" name="minicart.autoopen" template="Company_ModuleName::minicart_open.phtml"/>
</referenceContainer>
Schritt 2. Dann müssen wir in minicart_open.phtml unsere js-Datei (Komponente) aufrufen, indem wir sie an das übergeordnete div der minicart anhängen. In diesem Fall [data-block = 'minicart']. Siehe diesen Link für weitere Details.
<script type="text/x-magento-init">
{
"[data-block='minicart']" : {
"Company_ModuleName/js/view/minicart_open" : {}
}
}
</script>
Schritt 3. Und schließlich in minicart_open.js den magischen Code:
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");
});
});
}
});
Grundsätzlich erweitert dieser Code die Funktionalität der Datei vendor/magento/module-checkout/view/frontend/web/js/view/minicart.js
und besagt, dass nach Abschluss des AJAX-Aufrufs (contentUpdated) der Minicart geöffnet werden sollte.
Und das war es auch schon, eine einfache Aufgabe mit viel Theorie dahinter. Ich hoffe es hilft.