Knockout.js Magento 2 |将捆绑产品上的下拉列表值更改为自定义属性

Knockout.js Magento 2 |将捆绑产品上的下拉列表值更改为自定义属性,knockout.js,magento2,Knockout.js,Magento2,我们有带下拉选项的捆绑产品。捆绑产品的默认下拉选项包括“产品名称”和“价格”。例如: 值1=“黑色衬衫M码+9.95美元” 值2=“黑色衬衫L码+9.95美元” 我正在努力实现的目标: 下拉选项不得包含产品名称或价格,但应包含每个产品的产品属性“尺寸”。例如:捆绑产品具有下拉选项,而该选项包含同一衬衫的各种尺寸: 值1=“尺寸M” 值2=“尺寸L” 我所做的: 我重写了以下代码块: \Magento\Bundle\Block\Catalog\Product\View\Type\Bundle\O

我们有带下拉选项的捆绑产品。捆绑产品的默认下拉选项包括“产品名称”和“价格”。例如:

值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());


结果:
在源代码中,结果与预期的一样:下拉值仅由每个产品的size属性组成。

问题:
前端仍然显示“product name”+“price”。我认为这是由于某些脚本覆盖了输出。不幸的是,我不熟悉JS/Knockout

有谁能给我一个提示,如何抑制下拉值被覆盖?希望这是有意义的


非常感谢您的帮助!

正在更新标题的js文件是

vendor/magento/module-bundle/view/base/web/js/price-bundle.js
功能:
\u applyOptionNodeFix

此函数使用js更新下拉选项

您可以将其覆盖到主题文件:

app/design/theme/package/Magento_Bundle/web/js/price-bundle.js
并将函数
$option.html(模板(toTemplate));
中的最后一行注释到
/$option.html(模板(toTemplate));


有关其他更改,您可以在文件/函数中使用。

正在更新标题的js文件是

vendor/magento/module-bundle/view/base/web/js/price-bundle.js
功能:
\u applyOptionNodeFix

此函数使用js更新下拉选项

您可以将其覆盖到主题文件:

app/design/theme/package/Magento_Bundle/web/js/price-bundle.js
并将函数
$option.html(模板(toTemplate));
中的最后一行注释到
/$option.html(模板(toTemplate));


有关其他更改,您可以在文件/函数中使用。

非常感谢您的帮助,Shivanand-非常感谢!非常感谢您的帮助,Shivanand-非常感谢!