Magento 2 - 将价格块复制到产品布局中的另一个位置

时间:2018-04-14 15:57:45

标签: magento2

我正在尝试找到一种复制价格块的方法,以便它通过使用设计选项卡中的布局更新XML 字段显示在特定产品的产品页面的两个位置。产品编辑页面(Magento Admin)。

我已成功通过为特定产品创建修改后的布局XML文件来复制价格块,例如:

theme_folder\Magento_Catalog\layout\catalog_product_view_id_178.xml

在此文件中,我在所需位置添加了以下内容:

<block class="Magento\Catalog\Pricing\Render" name="product.price.final.second.location" after="product.info.options.wrapper">
<arguments>
<argument name="price_render" xsi:type="string">product.price.render.default</argument>
<argument name="price_type_code" xsi:type="string">final_price</argument>
<argument name="zone" xsi:type="string">item_view</argument>
</arguments>
</block>  

然而,有太多的产品使用这种修改过的布局,如果我只使用布局更新XML 字段并输入一个简单的指令就可以实现同样的目的,那么管理产品目录会更容易像:

<copy element="product.price.final" destination="second.price.container">

除了没有 copy 指令外,只有 move 指令不是我想要的。

另一种解决方案是从产品编辑页面中选择要使用的布局XML,例如是/否属性。

有没有办法实现这个结果?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。插入布局更新XML 字段的以下XML将价格块复制到referenceBlock(或referenceContainer):

<referenceBlock name="my.reference.block">
<block class="Magento\Catalog\Pricing\Render" name="product.price.final.lower">
<arguments>
<argument name="price_render" xsi:type="string">product.price.render.default</argument>
<argument name="price_type_code" xsi:type="string">final_price</argument>
<argument name="zone" xsi:type="string">item_view</argument>
</arguments>
</block>
</referenceBlock>