ম্যাজেন্টো ২.১.০-তে "কার্টে যুক্ত করুন" বোতামের পাঠ্য পরিবর্তন করা হচ্ছে (জেএসএস ফাইলকে ওভাররাইড করে)


13


আমি "কার্টে যুক্ত করুন" পাঠ্যকে "ওভাররাইড করে" vendor\magento\module-catalog\view\frontend\templates\product\list.phtml"এটি চাই" "তে পরিবর্তন করেছি।
তবে, যখন আমি "আমি এটি চাই" (যেমন "কার্টে যুক্ত করুন") বোতামটি ক্লিক করি তখন পণ্যটি কার্টে যুক্ত করা হয় এবং তারপরে আবার "কার্টে যুক্ত করুন" বোতামে প্রদর্শিত হয়।

আমি মনে করি এজ্যাক্স কলের মাধ্যমে পণ্য যুক্ত করা হয়েছে, এজন্য এজ্যাক্স কল এবং "কার্টে যুক্ত করুন" পাঠ্য প্রদর্শিত হওয়ার পরে একটি নতুন যুক্ত পাঠ্য প্রদর্শিত হচ্ছে না।

আমি এটি চেষ্টা করেছি:

আমি একটি কাস্টম এক্সটেনশন বেদ_মায়মডিউল তৈরি করেছি

আমি দেখেছি যে এক্সটেনশন সক্রিয় রয়েছে।

এর পরে আমি এই পদক্ষেপগুলি অনুসরণ করেছি:

অ্যাপ্লিকেশন / কোড / বেদ / Mymodule / দৃশ্য / ফ্রন্টএন্ড / requirejs-config.js:

var config = {
    map: {
        '*': {
            catalogAddToCart:'Ved_Mymodule/js/customCatalogAddToCart'
        }
    }
};

অ্যাপ্লিকেশন / কোড / বেদ / Mymodule / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / JS / customCatalogAddToCart.js:

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

$.widget('Ved_Mymodule.customCatalogAddToCart',$.mage.catalogAddToCart, {

    //Override function
    disableAddToCartButton: function(form) {
        var addToCartButtonTextWhileAdding = this.options.addToCartButtonTextWhileAdding || $t('Adding...');
        var addToCartButton = $(form).find(this.options.addToCartButtonSelector);
        addToCartButton.addClass(this.options.addToCartButtonDisabledClass);
        addToCartButton.find('span').text(addToCartButtonTextWhileAdding);
        addToCartButton.attr('title', addToCartButtonTextWhileAdding);
        console.log('Hello 1');
    },

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

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

        setTimeout(function() {
            var addToCartButtonTextDefault = 'heya..'; //self.options.addToCartButtonTextDefault || $t('Add to Cart..');
            addToCartButton.removeClass(self.options.addToCartButtonDisabledClass);
            addToCartButton.find('span').text(addToCartButtonTextDefault);
            addToCartButton.attr('title', addToCartButtonTextDefault);
        }, 1000);

        console.log('Hello 2');
    }

});

return $.Ved_Mymodule.customCatalogAddToCart;
});

আমি কনসোলে ডামি বার্তা মুদ্রণের চেষ্টা করছি।

এর পরে: আমি স্থিতিশীল বিষয়বস্তু মোতায়েন করেছি। তথ্য পুনর্নির্দেশ। ক্যাশে পরিষ্কার এবং ফ্লাশ করা হয়েছে।

তবে পরিবর্তনগুলি প্রদর্শিত হচ্ছে না।


দয়া করে নামটি পরিবর্তন করুন requirejs-config.jsএবং অবস্থানটি সংশোধন করুন app/code/Ved/Mymodule/view/frontend/requirejs-config.js
খোয়া ট্রুংডিনহ

আপনি যেমন বলেছিলেন তেমন পরিবর্তন করা হয়েছে তবে এখনও সফল হয়নি। তবে আমি যদি থিমের মাধ্যমে ওভাররাইড করি তবে এটি কাজ করছে।
বেদু

উত্তর:


10

আপনাকে জেস ফাইলটি পথ থেকে ওভাররাইড করতে হবে

vendor/magento/module-catalog/view/frontend/web/js/catalog-add-to-cart.js  

প্রতি

app/design/frontend/YourTheme/Packadge/Magento_Catalog/web/js/catalog-add-to-cart.js

আপনি এই ফাইলটি থেকে পাঠ্যটি পরিবর্তন করতে চান।

আপনার যদি কোন প্রশ্ন থাকে তবে আমাকে জানান know


আপনাকে অনেক ধন্যবাদ, এটি কাজ করে। পূর্বে, আমি এটি একটি কাস্টম মডিউল ব্যবহার করে ওভাররাইড করার চেষ্টা করছিলাম (আমি আমার প্রশ্নে এটি উল্লেখ করেছি) তবে এটি কার্যকর হয়নি। আমার থিমটিতে ফাইল অনুলিপি করে এটি কাজ করেছিল। তবে ফায়ার করবেন না: পিএইচপি বিন / ম্যাজেন্টো সেটআপ: আপগ্রেড
বেদে

@ সুরেশ চিকানী ভাষা অনুবাদকের পরে জেএস কেন আরও ভাল?
বিরজিৎসিংহ জালা

কিছু সময় সিএসভি কোড অনুবাদ করে কাজ করে না। এই ক্ষেত্রে আপনাকে জেএস পাঠ্যে পরিবর্তন করতে হবে।
সুরেশ চিকানী

7

আপনাকে পথ থেকে ওভাররাইড, ক্যাটালগ-এড-টু-কার্ট.জেএস,

vendor/magento/module-catalog/view/frontend/web/js

এজ্যাক্স কলের পরে এখান থেকে পাঠ্য পরিবর্তন হচ্ছে। আপনি এখানে পাঠ্য পরিবর্তন করতে পারেন।


6

অ্যাজাক্স কল করার পরে জাভাস্ক্রিপ্ট দ্বারা পাঠ্য পরিবর্তন হয়েছে। আমরা একবার দেখে নিতে পারি:

বিক্রেতা / Magento / মডিউল-ক্যাটালগ / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / JS / ক্যাটালগ-অ্যাড-টু-cart.js

সেরা অনুশীলনের mixinsজন্য, "ওভাররাইডিং" এর জন্য ব্যবহার করা উচিত :

আমরা একটি মডিউল তৈরি করতে পারি এবং তারপরে এই ফাইলগুলি যুক্ত করতে পারি:

অ্যাপ্লিকেশন / কোড / বিক্রেতা / মডিউল / দৃশ্য / ফ্রন্টএন্ড / requirejs-config.js

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

অ্যাপ্লিকেশন / কোড / বিক্রেতা / মডিউল / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / JS / ক্যাটালগ-অ্যাড-টু-কার্ট-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;
        };
    });

আমি আপনার পদক্ষেপ চেষ্টা করেছিলাম কিন্তু কোনও সাফল্য পাইনি। আমি আমার কোডটি দিয়ে আমার প্রশ্নটি সম্পাদনা করেছি।
বেদু

1
@ খোয়া ট্রুংডিন পারফেক্ট কাজ করছে।
ভিথাল বারিয়া

এটি আমার জন্য কাজ করা হয়।
55840

2

দ্রষ্টব্য: নীচের পরীক্ষা করা হয়েছে 2.1.7


যে কোনও মূল ফাইলকে ওভাররাইড করা খারাপ অনুশীলন হিসাবে বিবেচিত হয়।

আপনি কেবল ক্যাটালগএডডোটোকার্ট ফাংশনে প্যারামিটারগুলি পাস করতে পারেন যা list.phtml এর নীচের দিকে পাওয়া যাবে

আপনি দেখুন ক্যাটালগ-অ্যাড-টু-cart.js দিকে (সম্পাদনা বা কপি করবেন না) পেশ দেখা হবে এটি পরামিতি গ্রহণ করে।

বিক্রেতা / Magento / মডিউল-ক্যাটালগ / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / JS / ক্যাটালগ-অ্যাড-টু-cart.js

options: {
    processStart: null,
    processStop: null,
    bindSubmit: true,
    minicartSelector: '[data-block="minicart"]',
    messagesSelector: '[data-placeholder="messages"]',
    productStatusSelector: '.stock.available',
    addToCartButtonSelector: '.action.tocart',
    addToCartButtonDisabledClass: 'disabled',
    addToCartButtonTextWhileAdding: '',
    addToCartButtonTextAdded: '',
    addToCartButtonTextDefault: ''
},

আপনার থিমের মধ্যে পরবর্তী ওপেন list.phtml

অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / নামস্থান / থিম / Magento_Catalog / টেমপ্লেট / পণ্য / list.phtml

পৃষ্ঠার নীচের দিকে আপনি খুঁজে পাবেন

<?php if (!$block->isRedirectToCartEnabled()) : ?>
    <script type="text/x-magento-init">
    {
        "[data-role=tocart-form], .form.map.checkout": {
            "catalogAddToCart": {}
            }
        }
    </script>
<?php endif; ?>

কেবল ফাংশনে প্যারামিটার যুক্ত করুন ...

<?php if (!$block->isRedirectToCartEnabled()) : ?>
    <script type="text/x-magento-init">
    {
        "[data-role=tocart-form], .form.map.checkout": {
            "catalogAddToCart": {
                "addToCartButtonTextDefault" : "<?php /* @escapeNotVerified */ echo __('Add to Cart') ?>"
            }
        }
    }
    </script>
<?php endif; ?>

আমার ক্ষেত্রে আমি তখন en_GB.csv এর মধ্যে 'কার্টে যুক্ত করুন' এর জন্য একটি অনুবাদ যুক্ত করেছি তবে এটি আপনার উদ্দেশ্যটির পক্ষে উপযুক্ত নাও তাই এগিয়ে যান এবং সরাসরি এখানে এটি সম্পাদনা করুন।


2

দয়া করে এটি চেষ্টা করুন ... "জড়িত জোড়", "যোগ করা হচ্ছে ..." এবং জেসন প্রতিক্রিয়া দ্বারা "যুক্ত" এর পাঠ্যটি অনুবাদ করতে নীচের পদক্ষেপগুলি অনুসরণ করুন।

পদক্ষেপ 1: পণ্য তালিকা পৃষ্ঠায় পরিবর্তনগুলির প্রয়োজন। ফাইল পাথ অ্যাপ্লিকেশন / নকশা / সীমানা / আপনার_ধর্ম_নামস্পেস / থিম_নাম / ম্যাজেন্টো_ক্যাটালগ / টেম্পলেট / পণ্য / তালিকা.পিএইচটিএমএল এ যান এবং 121-এর কাছাকাছি লাইনের নীচে কোডটি প্রতিস্থাপন করুন

<script type="text/x-magento-init">
{
    "[data-role=tocart-form], .form.map.checkout": {
        "catalogAddToCart": {
            "product_sku": "<?php /* @escapeNotVerified */  echo $_product->getSku() ?>",
            "addToCartButtonTextDefault": "<?php echo __('Add to Cart'); ?>",
            "addToCartButtonTextWhileAdding": "<?php echo __('Adding...'); ?>",
            "addToCartButtonTextAdded": "<?php echo __('Added'); ?>"
        }
    }
 }
</script>

পদক্ষেপ 2: পরিবর্তনের জন্য পণ্য দৃশ্য পৃষ্ঠা প্রয়োজন। ফাইল পাথ অ্যাপ্লিকেশন / ডিজাইন / সীমানা / আপনার_ধর্ম_নামস্পেস / থিম_নাম / ম্যাজেন্টো_ক্যাটালগ / টেম্পলেট / পণ্য / ভিউ / অ্যাডটোকার্ট.এফটিএমএল এ যান এবং 54 এর কাছাকাছি লাইনে কোড প্রতিস্থাপন করুন

 <script>
    require([
        'jquery',
        'mage/mage',
        'Magento_Catalog/product/view/validation',
        'Magento_Catalog/js/catalog-add-to-cart'
    ], function ($) {
        'use strict';
        $('#product_addtocart_form').mage('validation', {
            radioCheckboxClosest: '.nested',
            submitHandler: function (form) {
                var widget = $(form).catalogAddToCart({
                    bindSubmit: false,
                    "addToCartButtonTextDefault": "<?php echo __('Add to Cart'); ?>",
                    "addToCartButtonTextWhileAdding": "<?php echo __('Adding...'); ?>",
                    "addToCartButtonTextAdded": "<?php echo __('Added'); ?>"
                });

                widget.catalogAddToCart('submitForm', $(form));

                return false;
            }
        });
    });
</script>

কমান্ডের নীচে চালান:

  1. পিএইচপি বিন / ম্যাজেন্টো সেটআপ: স্ট্যাটিক-বিষয়বস্তু: en_US জা_জেপি জেডএইচ_হানস_সিএন স্থাপন করুন

  2. পিএইচপি বিন / ম্যাজেন্টো ক্যাশে: ফ্লাশ আমি এটি চেষ্টা করেছি এবং এটি আমার জন্য কাজ করছে।


1

আপনি পুরো ফাইলটি ওভাররাইড না করে ক্যাটালগ অ্যাডটি কার্টে প্রসারিত করতে পারেন। এটি আপনাকে নির্দিষ্ট ফাংশনগুলিকে ওভাররাইড করতে এবং আপনার প্রয়োজন অনুসারে কাস্টম বিকল্পগুলিতে যুক্ত করার অনুমতি দেবে - দেখে মনে হচ্ছে আপনি এটি করতে চান।

এটি আরও ভাল পদ্ধতির কারণ এটি আসল কার্যকারিতাটি ব্যবহার করে এবং তারপরে আপনি সমস্ত কিছু অনুলিপি করার চেয়ে আপনার যা প্রয়োজন তা পরিবর্তন করেন।

আপনার কাস্টম ক্যাটালগের মধ্যে এটির প্রয়োজনীয়তা নিশ্চিত করুন এই উদাহরণে যেমনটি দেখানো হয়েছে তেমন কার্ট জেএসে যুক্ত করুন।

requirejs-config.js

var config = {
    map: {
        '*': {
            catalogAddToCart:'Ved_Mymodule/js/customCatalogAddToCart'
        }
    }
};

customCatalogAddToCart.js

define([
    'jquery',
    'mage/translate',
    'jquery/ui',
    'Magento_Catalog/js/catalog-add-to-cart' // Important, require the original!
], function($, $t) {
    'use strict';

    $.widget('Ved_Mymodule.catalogAddToCart', $.mage.catalogAddToCart, {
        options: {
            customOption: 'hello!'
        },

        enableAddToCartButton: function(form) {

            console.log('extended the original add to cart.');
            console.log('my new option', this.options.customOption);

        }
    });

    return $.Ved_Mymodule.catalogAddToCart;
});

আমি এই সমাধানটি সফলভাবে জেএস সম্পাদনা করতে ব্যবহার করেছি, আশা করি এটি সাহায্য করে!


0

CSV ফাইল দ্বারা এটি করা ম্যাজেন্টো 2 এর সেরা এবং সহজতম উপায়!

  1. আপনার কাস্টম মডিউলে আই 18n ফোল্ডারটি তৈরি করুন :

    অ্যাপ্লিকেশন / কোড / বিক্রেতা / মডিউল / i18n

  2. এখানে en_US.csv ফাইল তৈরি করুন এবং আপনি যে লেবেলটি পরিবর্তন করতে চান তা লিখুন:

    "Add to Cart","Custom Label"

আপনি এইভাবে লেবেলের বেশ ভাল সংখ্যক পরিবর্তন করতে পারেন:

"Add to Cart","Add to Order"
"Go to Checkout","Complete Order"
"Shopping Cart","Current Order"
"Proceed to Checkout","Proceed to Confirm"
"Summary","Details"
"Estimate Shipping and Tax","Aproximate Sum"
"You added %1 to your shopping cart.","Successfully added %1 to your current order."
"Add Your Review","Add Review"

অন্যান্য উত্তর দেখে ভাল লাগল :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.