我们有一个 Magento 商店,其中一些产品具有自定义选项作为单选按钮。默认情况下,每个非必需选项都会选中第一个按钮,但不会选中必需的按钮。我怎样才能让他们检查?
我已经安装了扩展依赖自定义选项(图库)。这使我可以选择设置默认情况下应检查哪个自定义选项,但这不会将价格更新为正确的值。
感谢您的帮助
这个解决方案可能不是最适合你的,但我遇到了同样的问题,只是修复了它。
首先,我必须使用一种复杂的方法在 Magento 中正确安装 jQuery。我相信部分问题来自于最新的 Magento 版本过时的 Spriptaculous 效果文件。所以我去了网站 www.script.aculo.us 并下载了最新版本。然后我拉出 effects.js 文件并用它来覆盖 effects.js :
[Magento]/js/scriptaculous
然后我从 jQuery 站点下载了 jQuery,并在以下位置创建了一个名为 jquery 的文件夹:
[Magento]/js/
并将jquery文件转储在那里。
然后我打开文件:
[Magento]/app/design/frontend/default/default/layout/page.xml
并找到了如下所示的行列表:
<action method="addJs"><script>scriptaculous/effects.js</script></action>
我复制了其中一个并将路径替换为 jquery 文件的路径,如下所示。
<action method="addJs"><script>jquery/jquery-1.6.1.min.js</script></action>
现在 jQuery 将包含在您的所有页面中。
重要的!你必须在 noConflict() 模式下运行 jQuery。所以这就是 JS 的样子(对我而言),它可以在任何带有自定义选项的页面上选择第一个单选按钮。
var $j = jQuery.noConflict();
$j(document).ready(function(){
// auto selects the first input with radio class
$j('.options-list input.radio:first').attr('checked','checked');
});
我将该文件保存到我的 jquery 文件夹中,并以与链接到 jQ 库相同的方式链接到它。
刷新了我的缓存,瞧!
我希望这有帮助!
正如 Gordon 所说,您可以使用 jQuery,但要更新价格,您需要在检查时运行 opConfig.reloadPrice() 函数。所以代码将是这样的:
var $j = jQuery.noConflict();
$j(document).ready(function(){
// auto selects the first input with radio class
$j('.options-list input.radio:first').attr('checked','checked');
opConfig.reloadPrice();
});
有一个名为类似的 javascript 函数optionsConfig.reloadPrice()
,当调用它时,会根据选项更新价格。您可能需要在dom:loaded
活动期间触发此操作。
转到 app\code\core\Mage\Catalog\Block\Product\View\Options\Type\select.php
您可以在此处找到您的自定义选项标题,并使用您的标题设置 if 条件。
例如,我的自定义选项标题是价格:
if($this->htmlEscape($_option->getTitle()=='Price'))