Является ли текущий товар добавленным в корзину или нет
Материал из Umicms
Задача: Возникла необходимость узнать, является ли текущий товар добавленным в корзину или не является.
Решение: Для реализации данной задачи, необходимо кастомизировать метод emarket cart, создать метод emarket is_cart($id), в метод передается id товара, метод получает текущею корзину и выбирает из нее товары:
public function is_cart($id){
$ini = cmsController::getInstance()->getModule("emarket");
$page = (int) $id;
static $pages_arr;
if(is_null($pages_arr)){
// текущая корзина покупателя
$order_object = $ini->getBasketOrder();
$order = order::get($order_object->id);
// Список элементов заказа
$orderItems = $order->getItems();
foreach($orderItems as $orderItem) {
// $page_id - id товара в корзине
$page_id = $orderItem->getItemElement()->getId();
$pages_arr[] = $page_id;
}
// если товаров нет, то ставим пустой массив
if(is_null($pages_arr)) $pages_arr = array();
if(in_array($page, $pages_arr)){
return 'in cart';
}else{
return 'not in cart';
}
}else{
if(in_array($page, $pages_arr)){
return 'in cart';
}else{
return 'not in cart';
}
}
}
}