2014-04-11 21 views
0

我們有這樣一種說法,即檢查產品是否屬於此類別,然後顯示一些HTML,但問題是此產品被放置在多個類別中,例如時尚,男士和銷售等:在Virtuemart中檢測產品的多個類別ID

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

我試圖找出如果產品類別銷售以及以添加一些額外的HTML,但它只能如果我設置if($this->product->virtuemart_category_id == 16)

聲明至極識別僅第一類

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

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

我們是否可以確定此產品是否也屬於銷售類別?

回答

1

試試這個,

在VM您可以添加多個類別一個產品,

它會給類別ids作爲一個數組,如下所示。

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'; 
} 

希望其作品..

+0

非常感謝! – user2869931

+0

不客氣:) –

0

可以使用or運營商定義爲||,就像這樣:

$cat_id = $this->product->virtuemart_category_id; 
if ($cat_id == 16 || $cat_id == 64) { 
    echo 'your Custom HTML'; 
} 
else { 
    // do nothing 
} 

此檢測是否類別爲時尚 OR 銷售

如果你想檢測其他類別,只需添加|| $cat_id == ID,其中ID是類別ID

希望這有助於

+0

它工作但遺憾的是它並沒有看到該產品在類別64 – user2869931

+0

做noot知道爲什麼,但產品只有一個id類可能 – user2869931

+0

最有可能。我認爲在VirtueMart中,您只能將1個類別分配給一個產品,而不是多個分類 – Lodder