Magento 2.3 Показать текст с опцией доставки - PullRequest
0 голосов
/ 27 марта 2020

Я создал опцию доставки и хотел, чтобы текст отображался, если была выбрана эта опция. Прямо сейчас он отображает под всеми вариантами доставки, и я хочу, чтобы он отображался с методом (не под всеми из них), если этот метод выбран.

enter image description here

внешний интерфейс / layout / checkout_index_index. xml

<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="shipping-info-wrapper" xsi:type="array">
                        <item name="component" xsi:type="string">My_Module/js/view/customjs</item>
                        <item name="provider" xsi:type="string">checkoutProvider</item>
                        <item name="sortOrder" xsi:type="string">0</item>
                    </item>
                </item>
            </item>
        </item>
    </item>
</item>

js / view / custom js

define([
'uiComponent',
'ko',
'Magento_Checkout/js/model/quote'

], функция (Component, ko, цитата) {'использовать строгий';

return Component.extend({
    defaults: {
        template: 'My_Module/customtemp'
    },

    initObservable: function () {
        var self = this._super();
        this.showFreeShippingInfo = ko.computed(function() {
            var method = quote.shippingMethod();

            if(method && method['carrier_code'] !== undefined) {
                if(method['carrier_code'] === 'freeshipping') {
                    return true;
                }
            }

            return false;

        }, this);

        this.showPickUpShippingInfo = ko.computed(function() {
            var method = quote.shippingMethod();

            if(method && method['carrier_code'] !== undefined) {
                if(method['carrier_code'] === 'instorepickup') {
                    return true;
                }
            }

            return false;

        }, this);

        return this;
    }
});

});

web / template / customtemp. html

<div class="free-shipping-info" data-bind="visible: showFreeShippingInfo()" style="display: none;">
<div class="step-title" data-role="title" data-bind="i18n: 'Free Shipping Information'"></div>
<p class="desc" data-bind="i18n: 'Free shipping can take up to 2 weeks.'"></p>

Как показать информацию с опцией, когда она выбрана?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...