我有一个捆绑产品,我通过管理面板添加了3个捆绑项目(类型复选框)。捆绑项中的2个只有一个选项,而第三个选项有7个选项(每个都是简单的产品)。
现在我有一种情况,我需要显示我添加到第三个捆绑产品的简单产品的名称,而不是整个捆绑项目(默认情况)。我已经尝试了很多,我找不到解决方案
提示:复选框默认显示在文件app / design / frontend / base / default / template / bundle / catalog / product / view / type / bundle / option / checkbox.phtml中定义,我认为我们需要做这个文件中的编码。
请帮助我们..我真的需要一个解决方案..
答案 0 :(得分:1)
是的......我想我找到了解决方法。我添加了一个名为'LLC'的捆绑项目,并添加了简单的产品作为复选框..我需要做的是显示我在LLC捆绑项目下添加的简单产品的名称,而不是显示LLC及其复选框(默认情况)。
显示复选框的方式在文件中定义: 应用程序/设计/前端/碱/默认/模板/束/目录/产品/视图/类型/束/选项/ 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的捆绑项目添加的简单产品名称。