пятница, 5 июня 2020 г.

VirtueMart - получить Корневые категории товара

PHP-код на тот случай, когда надо для определенного товара получить все корневые категории, в которых состоит этот товар (или единственную корневую категорию (1-го уровня), в которой состоит товар).

Сначала получаем объект товара, примерно так или аналогично:
$product = $product_model->getProduct(...);

В объекте у нас есть категории, назначенные товару непосредственно (которые можно увидеть при редактировании товара в админке):
print_r($product->categories);

Складываем в массив корневые категории:
$category_model = VmModel::getModel('category');
$root_cats = [];
foreach ($product->categories as $the_cat) {
    $parents = $category_model->getParentsList($the_cat);
    if ($parents[0]->published) $root_cats[] = $parents[0]->virtuemart_category_id;
    unset($parents);
}
  
Теперь корневые категории (одна или несколько) - в массиве $root_cats.

Комментариев нет:

Отправить комментарий