magento 2 usunąć stronę mini koszyka ponownie załadować stronę?


15

Jak mogę ponownie załadować stronę po usunięciu przedmiotu z mini koszyka?
Wiem, że to Magento 2błąd.

Na stronie koszyka kasy jest wiele produktów W mini koszyku, a także na stronie koszyka kasy podczas usuwania W mini koszyku zawartość nie jest aktualizowana i wiem, że aktualizowanie zawartości strony koszyka kasy za pomocą Ajaxa jest duże, więc zastanawiam się, kiedy klient usuwa przedmiot z koszyka Muszę ponownie załadować stronę.



1
Możesz przeładować stronę javascript window.location.reload();po pomyślnym usunięciu ajax.
Jaimin Sutariya

Odpowiedzi:


1

Naprawiono problem we wszystkich Magento 2 na stronie kasy

app / design / frontend / Magento / yourtheme / Magento_Checkout / web / js / sidebar.js

=> wstaw kod komentarza po zakończeniu funkcji

.done(function (response) {
    var msg;
    if (response.success) {
        callback.call(this, elem, response);
       /** **page reload code */
        if(this.options.url.remove == url && window.location.href.indexOf("checkout") > -1){
            window.location.reload(true);
        }**
        /** page reload code */
    } else {
        msg = response['error_message'];

        if (msg) {
            alert({
                content: msg
            });
        }
    }
    })

0

Jeśli masz jakiś moduł w /app/code środku, to w skrzynce tego modułu lub edytuj plik pod Namespace/Your module/etc/frontend/sections.xml.

I napisz i wewnątrz Ten plik:

<action name="checkout/sidebar/removeItem">
<section name="cart"/>
</action> 

To powinno być napisane pod prawidłową deklaracją konfiguracji, możesz zobaczyć, jak napisać to w module kasowym w dostawcy / magento.


0

Prosta poprawka tego problemu.

Skopiuj plik

vendor / magento / module-checkout / view / frontend / web / js / view / minicart.js

do

twoja_theme_path / Magento_Checkout / web / js / view / minicart.js

W funkcji inicjalizacji

if(window.location.href.indexOf("checkout/cart") > -1) {
         location.reload();
     }

Dodaj ten kod do funkcji contentLoading w ten sposób

$('[data-block="minicart"]').on('contentLoading', function (event) {
            addToCartCalls++;
            self.isLoading(true);
                $('[data-block="minicart"]').on('contentUpdated', function ()  {
                    $('[data-block="minicart"]').find('[data-role="dropdownDialog"]').dropdownDialog("open");       
                    setTimeout(function() {
                    $('[data-block="minicart"]').find('[data-role="dropdownDialog"]').dropdownDialog("close");
                }, 4000);
            });
            if(window.location.href.indexOf("checkout/cart") > -1) {
                location.reload();
            }
        });
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.