简体   繁体   中英

Get Parent Category of Product in Sub-Category Open Cart

If I am trying to add a php statement on my product page template that looks like this:

<?php if (Product Has Parent Category = 146) {
// Do this 
} elseif (Product Has Parent Category = 130) {
// Do this 
} else {
// Do this } ?>

Ofcourse this isnt the code, but how would I do this? Im basically trying to get the parent category that the subcategory is in. Any help would be greatly appreciated. Thanks!

UPDATE:

Each product is placed in multiple categories.. So I should have an array of Parent categories. Here is the database structure that I found for this.

product_to_category

product_id | category_id

category

category_id | parent_id | ...

In catalog/controller/product/product.php find

$this->load->model('catalog/product');
//this will load product model

add after

$cat_info = $this->model_catalog_product->getCategories($this->request->get['product_id']);
// this will give all the category of product

    foreach($cat_info as $cat_id){
    $cat = $this->model_catalog_category->getParentCategories($cat_id['category_id']);
    //this will give the parent category    

         if(!empty($cat)){
          foreach($cat as $ids){
          $this->data['path_id'][] = $ids['path_id'];   
         }
       }
    }

In catalog/model/catalog/category.php add

public function getParentCategories($category_id) {
    $query = $this->db->query("SELECT path_id FROM " . DB_PREFIX . "category_path WHERE category_id = '" . (int)$category_id . "' AND '" . (int)$category_id . "'!=path_id");

    return $query->rows;
}

now in product.tpl

<?php 
if(in_array(20,$path_id)){
  echo 'exists';
}else{
  echo 'not exists';
}
?>

I was able to figure it out. I wrote this code and am using it on my product.tpl .

 <?php 
    $current_product_id = "SELECT `product_id`,`category_id` FROM `oc_product_to_category` WHERE `product_id`='$product_id' ";   
    $current_product_ids = mysql_query($current_product_id);  
    $current_product_cat_ids='';

    while($current_product_cat_id = mysql_fetch_array($current_product_ids)){
        $current_product_cat_ids.=$current_product_cat_id['category_id'].',';
    }

    $parent_cat_path = mysql_query("SELECT `category_id`,`path_id` FROM `oc_category_path` WHERE `category_id` IN (" . rtrim($current_product_cat_ids, ',') . ")");
    $parent_cat_id_array='';
    while ($parent_cat_paths = mysql_fetch_array($parent_cat_path)) {  
        $parent_cat_id_array.=$parent_cat_paths['path_id'].','; 
    }

    $parent_cat_id_array_str = implode(',',array_unique(explode(',', $parent_cat_id_array)));

    if (strpos($parent_cat_id_array_str,'132') !== false) {
    // Do This Here
    } else { 
    //Do This Here 
    } ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM