Magento 2 中定义 options_container 模板的位置

Where are defined options_container template in Magento 2

我的 form.phtml

中有此代码
/**
* Product view template
*
* @var $block \Magento\Catalog\Block\Product\View
*/
<?php if ($_product->isSaleable() && $block->hasOptions() && $block->getOptionsContainer() == 'container2'): ?>
    <?php echo $block->getChildChildHtml('options_container'); ?>
<?php endif;?>

布局如下catalog_product_view

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <css src="MM_Catalog::css/magnific-popup.css"/>
    </head>
    <body>
        <referenceContainer name="content">
            <referenceBlock name="product.info">
                <action method="setTemplate">
                    <argument name="template" xsi:type="string">MM_Catalog::product/view/form.phtml</argument>
                </action>
            </referenceBlock>
        </referenceContainer>
    </body>
</page>

这可行,但我需要将更多字段添加到打印的字段集中。但是我不知道应该在哪里以及如何指定打印到字段集中的这些字段。

感谢您的帮助

查看默认布局文件catalog_product_view.xml你会发现

"options_container" 包含另一个名为 "product_options_wrapper" 的辅助块,其中包含以下模板

Magento_Catalog::product/view/options/wrapper.phtml

您可以通过在自定义模块中覆盖它来在此处添加更多字段。

"product_options_wrapper" 包含另一个辅助块"product_options",它负责选项的渲染。

因此,如果您想根据选项添加更多字段,您可以在此处为每个选项找到相应的模板,例如文本输入

Magento_Catalog::product/view/options/type/text.phtml

您可以通过在您的自定义模块中覆盖它来在此模板中添加字段。