在Virtuemart中检测产品的多个类别ID

时间:2014-04-11 09:32:11

标签: php joomla joomla2.5 joomla1.5 virtuemart

我们有这样的声明,检查产品是否属于此类别然后显示一些HTML,但问题是该产品被分为多个类别,例如时尚,男性和销售,所以:

fashion category id is 16
men category id is 12
and sale category is 64

我尝试确定产品是否属于SALE类别,以便添加一些额外的HTML,但仅当我设置if($this->product->virtuemart_category_id == 16)

时它才有效

仅识别第一类

的声明
if($this->product->virtuemart_category_id == 64){

   echo 'your Custom HTML';
}
else{
 //nothing
}

我们是否可以确定该产品是否也属于SALE类别?

2 个答案:

答案 0 :(得分:1)

试试这个,

在VM中您可以为产品添加多个类别

它会将类别ID设为如下数组。

print_r($this->product->categories );

因此,如果您预定义了需要自定义样式的类别列表。

if(in_array(16,$this->product->categories) || in_array(64,$this->product->categories) || in_array(12,$this->product->categories)){
echo 'your styles';
}

为了更好的方法,你可以试试这样的东西

$custom_cats          = array(12,16,64);//your custom categories that required additional styles
$current_product_cats = $this->product->categories;
$checkstatus          = array_intersect($custom_cats , $current_product_cats);

if(sizeof($checkstatus)>0){ // check your first array element found in second array
echo 'your custom styles';
}

希望它的作品......

答案 1 :(得分:0)

您可以使用定义为or的{​​{1}}运算符,如下所示:

||

检测该类别是时尚还是促销

如果要检测其他类别,只需添加$cat_id = $this->product->virtuemart_category_id; if ($cat_id == 16 || $cat_id == 64) { echo 'your Custom HTML'; } else { // do nothing } ,其中ID是类别ID

希望这有帮助