শিপিং পদ্ধতিতে কাস্টম ব্লকটি কীভাবে দেখানো যায় সেগুলি Magento 2 এ নির্বাচন করুন


15

রেফারেন্স লিঙ্কটি ব্যবহার করে নীচে অনপেজ চেকআউটটিতে শিপিং পদ্ধতিতে কাস্টম ব্লক কীভাবে যুক্ত করবেন? , আমি নীচে অতিরিক্ত শিপিং ব্লক তৈরি করতে সক্ষম।

তবে, আমি কেবল সামগ্রীটি দেখাতে চাই, যখন শিপিং পদ্ধতিটি নির্বাচন করা হয়। যখন কোনও শিপিং পদ্ধতি গ্রাহক দ্বারা নির্বাচিত হয়, কার্সারটি অতিরিক্ত তথ্য এবং কাস্টম ক্ষেত্রে যেতে হবে এবং ব্যবহারকারীর ডেটা প্রবেশ করা উচিত enter

যখন আমরা অন্য শিপিং পদ্ধতিটি নির্বাচন করি, এর সাথে সম্পর্কিত তথ্য উপস্থিত থাকলে অন্য ডিভটি গোপন করা উচিত।

মত একই http://excellencemagentoblog.com/blog/2011/11/07/magento-advanced-shipping-method-development/ Magento 2. আমি Magento 1 বাস্তবায়ন করেছে।

উত্তর:


13

প্রথমত, আপনি এই জাতীয় shippingAdditionalফাইল তৈরি করে একটি নতুন উপাদানকে সংজ্ঞায়িত করেনview/frontend/layout/checkout_index_index.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="checkout.root">
            <arguments>
                <argument name="jsLayout" xsi:type="array">
                    <item name="components" xsi:type="array">
                        <item name="checkout" xsi:type="array">
                            <item name="children" xsi:type="array">
                                <item name="steps" xsi:type="array">
                                    <item name="children" xsi:type="array">
                                        <item name="shipping-step" xsi:type="array">
                                            <item name="children" xsi:type="array">
                                                <item name="shippingAddress" xsi:type="array">
                                                    <item name="children" xsi:type="array">
                                                        <item name="shippingAdditional" xsi:type="array">
                                                            <item name="component" xsi:type="string">uiComponent</item>
                                                            <item name="displayArea" xsi:type="string">shippingAdditional</item>
                                                            <item name="children" xsi:type="array">
                                                                <item name="carrier_custom" xsi:type="array">
                                                                    <item name="component" xsi:type="string">Vendor_Module/js/view/checkout/shipping/carrier_custom</item>
                                                                </item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

তারপর ফাইল তৈরি view/frontend/web/js/view/checkout/shipping/carrier_custom.jsএই

define([
    'jquery',
    'ko',
    'uiComponent',
    'Magento_Checkout/js/model/quote'
], function ($, ko, Component, quote) {
    'use strict';

    return Component.extend({
        defaults: {
            template: 'Vendor_Module/checkout/shipping/carrier_custom'
        },

        initObservable: function () {

            this.selectedMethod = ko.computed(function() {
                var method = quote.shippingMethod();
                var selectedMethod = method != null ? method.carrier_code + '_' + method.method_code : null;
                return selectedMethod;
            }, this);

            return this;
        },
    });
});

এবং তারপরে একটি ফাইল তৈরি করুন view/frontend/web/template/checkout/shipping/carrier_custom.html

<div id="my-carrier-custom-block-wrapper" data-bind="visible: selectedMethod() == 'mycarrier_mymethod'">
    <p data-bind="i18n: 'This is custom block shown only when selected specific method'"></p>
</div>

মূলত এক্সএমএল ফাইল চেকআউটকে জেএস ফাইল শুরু করতে বলে যা একটি ইউআইকমপোনেন্ট। এটি নকআউট টেমপ্লেট আরম্ভ করে এবং selectedMethodবর্তমানে নির্বাচিত শিপিংয়ের মূল্য (ক্যারিয়ার_মোথড) পেতে ফাংশনটি ব্যবহার করে। মানটি যা চাইলে তা ব্লকটি প্রদর্শন করবে। আপনি আপনার প্রয়োজন অনুযায়ী এটি পরিবর্তন করতে পারেন, অর্থাত্‍। শুধুমাত্র নির্বাচিত ক্যারিয়ার পরীক্ষা করা। কারণ selectedMethodএটি নির্ধারিত কারণ knockout.computed()এটি প্রতিবার মূল্যায়িত হবে যখনই ব্যবহারকারী ক্যারিয়ার পরিবর্তন করে কারণ quote.shippingMethod()এটি একটি পর্যবেক্ষণযোগ্য।

আমি আপডেট করেছি কারণ টেমপ্লেটের পথটি ভুল ছিল


আমার কাস্টম ব্লকে একটি পাঠ্য অঞ্চল রয়েছে। টেক্সারিয়ায় প্রবেশ করা ডেটা কীভাবে সংরক্ষণ করতে হবে তা উদ্ধৃতি এবং ক্রমে অর্ডার করুন।
santhoshnsscoe
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.