Является ли текущий товар добавленным в корзину или нет

Материал из Umicms
Версия от 07:14, 25 ноября 2011; SerjK (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Задача: Возникла необходимость узнать, является ли текущий товар добавленным в корзину или не является.

Решение: Для реализации данной задачи, необходимо кастомизировать метод 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';
            }
          }
      }
      }