是的......我想我已经找到了解决方案。我添加了名为“LLC”的捆绑项目,并将简单产品添加为复选框。我需要做的是显示我在 LLC 捆绑项目下添加的简单产品的名称,而不是显示 LLC 及其复选框(默认情况下)。
显示复选框的方式在文件中定义:app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/checkbox.phtml
所以我在那里定义了一个函数,就像这样..
<?php
if($this->htmlEscape($_option->getTitle())=="LLC")
{
$current_product=Mage::registry('current_product');
echo $this->getpackagedetails($current_product,$this->htmlEscape($_option->getTitle()));
}
?>
如您所见,我检查了捆绑商品的名称是否为 LLC。如果是,将当前产品放入一个变量,然后我调用了一个函数“getpackagedetails()”,该函数在复选框块中定义,您可以在此处找到 /app/code/core/Mage/Bundle/Block/Catalog/Product /View/Type/Bundle/Option.php。此函数传递两个参数:当前产品和捆绑商品名称。
现在将我们的函数添加到块文件中。它在下面给出。
<?php
public function getpackagedetails($currentproduct,$optid)
{
$display="";
$bundled = Mage::getModel('catalog/product');
$bundled->load($currentproduct->getId());
$selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
$bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);
foreach($selectionCollection as $option)
{
$sku=$option->getSku();
if($optid=="LLC" && $optid==$bistype)
{
if(strpos($sku,"llc")!== false)
{
$display.=$option->getName();
}
}
}
return($display);
}
我在这里所做的是我使用变量 $bundled 加载了我当前的产品。然后,我将添加到我的捆绑产品中的所有选择类型选项都添加到变量 $selectionCollection 中。为了将选项与LLC捆绑项目分开,我检查了每个选项的sku中是否有'llc'字符串(所有简单的产品都对应于LLC捆绑项目,我在那里设置了'llc'字符串) . 如果是,则获取名称并将其存储到变量 $display 中。然后返回变量。
而已。现在您只能看到我为名为 LLC 的捆绑商品添加的简单产品名称。