php - 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 导致的问题
解决方案
这个答案是从问题本身得出的
解决方案 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>
推荐阅读
- excel - 在 Excel 中创建基于 ID 的变量
- c - 从ncurses中的子进程写入窗口
- c++ - C++ 复制构造函数调用其他构造函数
- java - 加载任何模型时出现黑窗
- python - numpy和随机工作中的种子功能是否需要在每个模块中设置?
- reactjs - 使用 Express JS 服务器和 Johnny-Five 控制 Arduino
- javascript - 用这个简单的例子理解 Promise 链
- mysql - 无法将 Go 应用程序连接到 mysql(都在 gitlab 运行器内)
- linux - 如何在 Bash shell 中检查文件是否为 tar 文件?
- php - MySQL SELECT 查询在准备时返回 false