Ceci est ma première réponse sur ce site. J'ai eu du mal à essayer de faire fonctionner cela au cours des deux derniers jours et j'ai finalement pu le faire fonctionner, alors j'ai pensé que ce serait bien de le partager.
Tout d'abord, vous devez créer un module:
- registration.php
- etc / module.xml
- view / frontend / layout / default.xml
- voir / frontend / templates / minicart_open.phtml
- voir / frontend / web / js / view / minicart_open.js
Étape 1. Vous devez ajouter un modèle au site. Pour ce faire, utilisez le fichier default.xml
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" name="minicart.autoopen" template="Company_ModuleName::minicart_open.phtml"/>
</referenceContainer>
Étape 2. Ensuite, à l'intérieur de minicart_open.phtml, nous devons appeler notre fichier js (composant) en l'attachant à la div parent du minicart. Dans ce cas, [data-block = 'minicart']. Voir ce lien pour plus de détails.
<script type="text/x-magento-init">
{
"[data-block='minicart']" : {
"Company_ModuleName/js/view/minicart_open" : {}
}
}
</script>
Étape 3. Et enfin, dans minicart_open.js, le code magique:
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");
});
});
}
});
Fondamentalement, ce code étend les fonctionnalités du fichier vendor/magento/module-checkout/view/frontend/web/js/view/minicart.js
et indique qu'une fois l'appel AJAX terminé (contentUpdated), le minicart doit être ouvert.
Et c'est tout, une tâche simple avec beaucoup de théorie derrière. J'espère que cela aide.