Magento 2 |将捆绑产品的下拉值更改为自定义属性
Magento 2 | Change dropdown values on bundle products to custom attribute
我们有带下拉选项的捆绑产品。捆绑产品的默认下拉选项包含“产品名称”和“价格”。例如:
值 1 =“黑色衬衫 M 号 +$9.95”
值 2 = „黑色衬衫 L 码 +$9.95“
我想要达到的目标:
下拉选项不应包含产品名称或价格,而是每个产品的产品属性“尺寸”。示例:捆绑产品有一个下拉选项,而此选项包含同一件衬衫的各种尺码:
值 1 =“尺寸 M”
值 2 =“尺寸 L”
我做了什么:
我重写了以下块:
\Magento\Bundle\Block\Catalog\Product\View\Type\Bundle\Option.php
我更改了“getSelectionTitlePrice”函数以获取尺寸属性并删除产品名称和价格。
$priceTitle = $this->escapeHtml($selection->getSize());
结果:
在源代码中,结果符合预期:下拉值仅包含每个产品的尺寸属性。
问题:
前端仍然显示“产品名称”+“价格”。我假设这是由某些脚本覆盖输出引起的。不幸的是,我不熟悉 JS / Knockout。
谁能告诉我如何抑制下拉值被覆盖?希望这是有道理的。
非常感谢您的帮助!
更新标题的js文件是
vendor/magento/module-bundle/view/base/web/js/price-bundle.js
函数:_applyOptionNodeFix
此函数正在使用 js 更新下拉选项。
您可以将其覆盖到主题文件:
app/design/theme/package/Magento_Bundle/web/js/price-bundle.js
并将函数 $option.html(template(toTemplate));
的最后一行注释为 //$option.html(template(toTemplate));
对于其他更改,您可以在 file/function 中进行尝试。
我们有带下拉选项的捆绑产品。捆绑产品的默认下拉选项包含“产品名称”和“价格”。例如:
值 1 =“黑色衬衫 M 号 +$9.95”
值 2 = „黑色衬衫 L 码 +$9.95“
我想要达到的目标: 下拉选项不应包含产品名称或价格,而是每个产品的产品属性“尺寸”。示例:捆绑产品有一个下拉选项,而此选项包含同一件衬衫的各种尺码:
值 1 =“尺寸 M”
值 2 =“尺寸 L”
我做了什么:
我重写了以下块:
\Magento\Bundle\Block\Catalog\Product\View\Type\Bundle\Option.php
我更改了“getSelectionTitlePrice”函数以获取尺寸属性并删除产品名称和价格。
$priceTitle = $this->escapeHtml($selection->getSize());
结果:
在源代码中,结果符合预期:下拉值仅包含每个产品的尺寸属性。
问题:
前端仍然显示“产品名称”+“价格”。我假设这是由某些脚本覆盖输出引起的。不幸的是,我不熟悉 JS / Knockout。
谁能告诉我如何抑制下拉值被覆盖?希望这是有道理的。
非常感谢您的帮助!
更新标题的js文件是
vendor/magento/module-bundle/view/base/web/js/price-bundle.js
函数:_applyOptionNodeFix
此函数正在使用 js 更新下拉选项。
您可以将其覆盖到主题文件:
app/design/theme/package/Magento_Bundle/web/js/price-bundle.js
并将函数 $option.html(template(toTemplate));
的最后一行注释为 //$option.html(template(toTemplate));
对于其他更改,您可以在 file/function 中进行尝试。