magento 2 видалити сторінку міні-кошика оновити сторінку?


15

Як я можу завантажити сторінку, коли видаляю міні-кошик?
Я знаю, що це Magento 2помилка.

На сторінці кошика під замовлення є багато продуктів, як у міні-кошику, так і на сторінці кошика під замовлення, коли я виймаю. У міні-кошику вміст не оновлюється, і я знаю, що це велика річ оновити вміст сторінки каси за допомогою Ajax, тому я замислююся про те, коли клієнт вилучить товар з кошика Мені потрібно перезавантажити сторінку.


спробуйте це працює для мене magento.stackexchange.com/a/141334/36463
Bilal Usean

1
Ви можете поставити оновлення сторінки javascript window.location.reload();після того, як видалення ajax успішно завершиться.
Jaimin Sutariya

Відповіді:


1

Виправлена ​​проблема на всій сторінці оформлення замовлення magento 2

додаток / дизайн / frontend / Magento / yourtheme / Magento_Checkout / web / js / sidebar.js

=> покласти код коментаря після завершення функції

.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

Якщо у вас є будь-який модуль, /app/code то всередині цього модуля ящик або відредагуйте файл під Namespace/Your module/etc/frontend/sections.xml.

І напишіть і всередині цього файлу:

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

Це має бути написано під дійсною декларацією конфігурації, ви можете побачити, як записати це в модульному оформленні під замовленням vendor / magento.


0

Просте виправлення цього питання.

Скопіюйте файл

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

до

your_theme_path / Magento_Checkout / web / js / view / minicart.js

У функції ініціалізації

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

Додайте цей код у функцію contentLoading, як це

$('[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();
            }
        });
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.