1

有没有办法在 Opencart v1.5.4.1 的产品页面中获取产品的类别 parent_id。什么正在尝试根据类别 parent_id 更改按钮 href .. 如果 parent_id = 20 那么按钮应该有 href1 else href2。

到目前为止,我已经这样做了,但它不起作用。

$this->load->model('tool/image');在“ ”之前添加

$product_cat = $this->model_catalog_product->getCategories($product_id);      
$product_cat_parent = $this->model_catalog_category->getCategory($product_cat[0]['category_id']);
            if ($product_cat_parent['parent_id'] == '20') {
                $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=12');
            } else {
                $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=13');
            }

在模板文件中:

<a class="button2 sizeguidebox" href="<?php echo $sizeguide; ?>"><?php echo $text_sizeguide; ?></a>
4

1 回答 1

1

这看起来更复杂,但作为一种万无一失的检查方法,它实际上更简单、更有效。它将选择与当前产品相关的所有类别,查找其所有类别信息,并过滤 parent_id 为 20 的类别。如果查询有任何结果(即其中一个类别是 ID 为 20 的类别的子类别) 然后它将相应地设置常见问题信息

$product_cat = $this->model_catalog_product->getCategories($product_id);
$result = $this->db->query("
SELECT
    `c`.`parent_id`
FROM
    `" . DB_PREFIX . "category` `c`
LEFT JOIN
    `" . DB_PREFIX . "product_to_category` `p2c`
ON
    `c`.`category_id` = `p2c`.`category_id`
WHERE
    `c`.`parent_id` = '20'
AND
    `p2c`.`product_id` = '" . (int) $product_id . "'
");

if($result->num_rows > 0) {
    $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=12');
} else {
    $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=13');
}

请注意,这尚未经过测试,但理论上应该可以工作

于 2012-12-15T23:22:16.737 回答