Exemple #1
0
 public function init()
 {
     parent::init();
     //Get cart items and calculate total value
     //Cookie cart array type : ['product_id' => 'quantity', ...]
     $cart_info = \Yii::$app->request->cookies->getValue('cart');
     if ($cart_info !== null) {
         $products = unserialize($cart_info);
         if (is_array($products)) {
             $product_ids = array_keys($products);
             $product_models = ProductModel::getProducts($product_ids);
             //find()->where(['id'=>$product_ids])->all();
             foreach ($product_models as $product_model) {
                 $this->value += $product_model->price * $products[$product_model->id];
                 $this->items += $products[$product_model->id];
                 \Yii::info('Quantity of ' . $product_model->id . ' (' . $product_model->price . ') - ' . $products[$product_model->id]);
             }
         }
     }
     if ($this->value > 0) {
         $this->message = "\$('.cart').addClass('active'); \$('.cart').append(\"<span class='cart-value'> ({$this->value} ₴ - {$this->items} items)</span>\");";
     } else {
         $this->message = "";
     }
 }
Exemple #2
0
 public function actionView()
 {
     $cart_info = \Yii::$app->request->cookies->getValue('cart');
     $cart_info = unserialize($cart_info);
     if (is_array($cart_info)) {
         $products = ProductModel::getProducts(array_keys($cart_info));
         //find()->where(['id'=>array_keys($cart_info)])->all();
         $shippings = ShippingModel::getShippings();
         //find()->all();
         return $this->render('view', ['cart' => $cart_info, 'products' => $products, 'shippings' => $shippings]);
     } else {
         return $this->render('empty');
     }
 }