0

想在 magento 2 结帐页面的运输方式后添加自定义字段。我已经使用 checkout_index_index.xml 创建了自定义模块,并且能够在发货地址之后添加自定义字段块,<item name="before-form" xsi:type="array">但我希望在发货方式之后使用它。

当客户选择运输方式时,此块显示和隐藏以提供有关所选运输方式的更多信息

查找下面的图片以获取更多信息。

在此处输入图像描述

谢谢!

4

1 回答 1

0

我需要做同样的事情。Magento 的结帐使用以下方式呈现运输方式下的区域:

<div id="onepage-checkout-shipping-method-additional-load">
    <each args="getRegion('shippingAdditional')" render="" />
</div>

但是,该shippingAdditional项目实际上并未在 magento 代码库中定义。因此,要让您的字段显示在运输方式下,您可以使用上述区域。为此,您需要将父项更改为<item name="shippingAddress" xsi:type="array"><item name="before-form" xsi:type="array">并确保您的项目被调用 <item name="shippingAdditional" xsi:type="array">。像这样的东西:

...
<item name="shippingAddress" xsi:type="array">
    <item name="children" xsi:type="array">
        <item name="shippingAdditional" xsi:type="array">
            <item name="displayArea" xsi:type="string">shippingAdditional</item>
            <!-- The rest of your items config here... -->
        </item>
    </item>
</item>
...

请注意,您需要将其定义<item name="displayArea" xsi:type="string">shippingAdditional</item>为不渲染。

然后,您可以使用一些 javascript/knockout 根据所选的运输方式显示和隐藏这些字段。

于 2019-01-10T12:41:50.373 回答