Magento - 基于产品类别的有条件显示属性

时间:2014-06-16 17:51:19

标签: php magento

如果产品具有特定类别ID,我正在尝试显示属性('release')。这就是我到目前为止所做的:

<?php $category = Mage::getModel('catalog/layer')->getCurrentCategory();?>
<?php if($category->getId() == 2): ?>
<h5 style="color:#f26522" >
<?php echo $_product->getData('release') ?></h5>
<?php else: ?>
   

这很有效,但只允许我限制在默认类别下分类的产品,在本例中为'Id()== 2'。

我试图将函数限制为仅显示此根类别的子类别,但它不响应其对应的类别ID。

如何实现这一目标?感谢所有帮助!

供参考:Conditional loading content based on category id magento for product page

编辑解决方案:

<?php
  $categoryIds = $_product->getCategoryIds();
  if(in_array(20,$categoryIds)):
?>
<h5 style="color:#f26522" ><b>
<?php echo $_product->getData('release'); ?></h5></b>
<?php endif;    ?>

感谢@ R.S和@ndlinh的投入和支持。

特别感谢@programmer_rkt,他的回复here帮助澄清了这个概念。

进一步参考:Changing Display According to Product Category

2 个答案:

答案 0 :(得分:0)

看看@ Magento category ID from product ID

$product = Mage::registry('current_product');
if ($product->getId()) {
    $categoryIds = $product->getCategoryIds();
    if (is_array($categoryIds) && in_array(2 , $categoryIds)
      ...
      echo $_product->getData('release')
      ...

假设您在产品详细信息页面

答案 1 :(得分:0)

这是我的解决方案:

<?php 
    $category = Mage::getModel('catalog/layer')->getCurrentCategory();
    $parentIds = $category->getParentIds();
?>
<?php if(in_array(2, $parentIds): ?>
    <h5 style="color:#f26522" >
    <?php echo $_product->getData('release') ?></h5>
<?php else: ?>