Questa è la mia prima risposta su questo sito. Ho faticato a cercare di far funzionare questo lavoro negli ultimi due giorni e sono stato finalmente in grado di farlo funzionare, quindi ho pensato che sarebbe stato bello condividerlo.
Prima di tutto devi creare un modulo:
- registration.php
- etc / Module.xml
- visualizzare / frontend / layout / default.xml
- visualizzare / frontend / templates / minicart_open.phtml
- view / frontend / web / js / view / minicart_open.js
Passaggio 1. È necessario aggiungere un modello al sito. Il modo per farlo è utilizzando il default.xml
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" name="minicart.autoopen" template="Company_ModuleName::minicart_open.phtml"/>
</referenceContainer>
Passaggio 2. Quindi all'interno di minicart_open.phtml dobbiamo chiamare il nostro file js (componente) collegandolo al div padre della minicart. In questo caso, [data-block = 'minicart']. Vedi questo link per maggiori dettagli.
<script type="text/x-magento-init">
{
"[data-block='minicart']" : {
"Company_ModuleName/js/view/minicart_open" : {}
}
}
</script>
Passaggio 3. E infine, all'interno di minicart_open.js, il codice magico:
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");
});
});
}
});
Fondamentalmente questo codice estende la funzionalità del file vendor/magento/module-checkout/view/frontend/web/js/view/minicart.js
e dice che una volta completata la chiamata AJAX (contentUpdated), la minicart dovrebbe essere aperta.
E questo è tutto, un compito semplice con molta teoria alle spalle. Spero che sia d'aiuto.