首页 > 解决方案 > MagicZoomPlus:未捕获错误:调用成员函数 getShowSwatchTooltip() module-swatches/view/frontend/templates/product/view/renderer.phtml

问题描述

MagicZoomPlus:致命错误-未捕获错误:调用成员函数 getShowSwatchTooltip() 模块-swatches/view/frontend/templates/product/view/renderer.phtml 文件:catalog_product_view_type_configurable

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="product.info.options.wrapper">
            <block class="MagicToolbox\MagicZoomPlus\Block\Product\View\Type\Configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="Magento_ConfigurableProduct::product/view/type/options/configurable.phtml"/>
            <block class="MagicToolbox\MagicZoomPlus\Block\Product\Renderer\Configurable" name="product.info.options.swatches" as="swatch_options" before="-" />
        </referenceBlock>
    </body>
</page>

由于 Magento 版本升级缺少 ViewModel 导致的问题

标签: phpxmlmagentomagento2magiczoomplus

解决方案


这个答案是从问题本身得出的


解决方案 1:编辑同一文件

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="product.info.options.wrapper">
            <block class="MagicToolbox\MagicZoomPlus\Block\Product\View\Type\Configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="Magento_ConfigurableProduct::product/view/type/options/configurable.phtml"/>
            <referenceBlock class="MagicToolbox\MagicZoomPlus\Block\Product\Renderer\Configurable" name="product.info.options.swatches" />
        </referenceBlock>
    </body>
</page>

解决方案 2:创建新的模块覆盖布局

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="product.info.options.configurable" remove="true"/>
        <referenceBlock name="product.info.options.wrapper">
            <referenceBlock name="product.info.options.swatches" remove="true"/>
            <block class="MagicToolbox\MagicZoomPlus\Block\Product\Renderer\Configurable" name="product.info.options.swatches.modified"
                   as="swatch_options_modied" before="-">
                <arguments>
                    <argument name="configurable_view_model"
                              xsi:type="object">Codilar\MagicZoomPlus\ViewModel\Configurable</argument>
                </arguments>
            </block>
        </referenceBlock>
    </body>
</page>

推荐阅读