При нажатии кнопки "Добавить в корзину" текст кнопки не меняется на "добавить" и "добавлено"


После нажатия кнопки "Добавить в корзину" текст кнопки не меняется на "добавить" или "добавлено".В некоторых местах он работает, но на странице описания продукта, и мы создали виджет рекомендуемого продукта на домашней странице в обоих этих местах, он не работает.где мне нужно изменить код для этого.

Author: Dilip , 2017-11-29

2 answers

Основной файл отвечает за изменение метки Adding... и Added является

Magento\Catalog\view\frontend\web\js\catalog-add-to-cart.js

Когда вы нажимаете на кнопку Add to Cart, она выполняет функцию submitForm из этого файла,

submitForm: function (form) {
        var addToCartButton, self = this;

        if (form.has('input[type="file"]').length && form.find('input[type="file"]').val() !== '') {
            self.element.off('submit');
            // disable 'Add to Cart' button
            addToCartButton = $(form).find(this.options.addToCartButtonSelector);
            addToCartButton.prop('disabled', true);
            addToCartButton.addClass(this.options.addToCartButtonDisabledClass);
            form.submit();
        } else {
            self.ajaxSubmit(form);
        }
    }

И после этого Он выполняет функцию self.ajaxSubmit(form) из того же файла,

В этой функции вы можете увидеть строку

self.disableAddToCartButton(form);

Эта строка отвечает за изменение метки Adding..

disableAddToCartButton: function (form) {
            var addToCartButtonTextWhileAdding = this.options.addToCartButtonTextWhileAdding || $t('Adding...'),
                addToCartButton = $(form).find(this.options.addToCartButtonSelector);

            addToCartButton.addClass(this.options.addToCartButtonDisabledClass);
            addToCartButton.find('span').text(addToCartButtonTextWhileAdding); // from here it change the label
            addToCartButton.attr('title', addToCartButtonTextWhileAdding);
        }

И после этого в функции успеха Ajax Он вызывает self.enableAddToCartButton(form); эта функция изменяется этикетка для Added

  enableAddToCartButton: function (form) {
            var addToCartButtonTextAdded = this.options.addToCartButtonTextAdded || $t('Added'),
                self = this,
                addToCartButton = $(form).find(this.options.addToCartButtonSelector);

            addToCartButton.find('span').text(addToCartButtonTextAdded);
            addToCartButton.attr('title', addToCartButtonTextAdded);

            setTimeout(function () {
                var addToCartButtonTextDefault = self.options.addToCartButtonTextDefault || $t('Add to Cart');

                addToCartButton.removeClass(self.options.addToCartButtonDisabledClass);
                addToCartButton.find('span').text(addToCartButtonTextDefault); // from here it change the label
                addToCartButton.attr('title', addToCartButtonTextDefault);
            }, 1000);
        }

Поэтому просто отладьте этот файл и местоположение, чтобы проверить вашу проблему. Кроме того, проверьте консоль, чтобы увидеть любую ошибку.

 4
Author: Keyur Shah, 2017-11-29 10:17:57

Взгляните на этот файл: vendor/magento/module-catalog/view/frontend/web/js/catalog-add-to-cart.js. Вы можете видеть, как это работает.

Если вам интересно знать, как его переопределить. Следует использовать mixins

Мы можем создать модуль, а затем добавить эти файлы:

App/code/Vendor/Module/view/frontend/requirejs-config.js

var config = {
    config: {
        mixins: {
            'Magento_Catalog/js/catalog-add-to-cart': {
                'Vendor_Module/js/catalog-add-to-cart-mixin': true
            }
        }
    }
};

App/code/Vendor/Module/view/frontend/web/js/catalog-add-to-cart-mixin.js

define([
        'jquery',
        'mage/translate',
        'jquery/ui'
    ],
    function ($, $t) {
        'use strict';

        return function (target) {
            $.widget('mage.catalogAddToCart', target, {
                options: {
                    addToCartButtonTextWhileAdding: $t('Adding Testing...'),
                    addToCartButtonTextAdded: $t('Added Testing'),
                    addToCartButtonTextDefault: $t('Add to Cart Testing')
                }
            });

            return $.mage.catalogAddToCart;
        };
    });
 3
Author: Khoa TruongDinh, 2017-11-29 10:51:09