File: /home/emblazeone/www/master-template/frontend/controllers/CartController.php
<?php
namespace frontend\controllers;
use backend\modules\exercises\models\Exercises;
use backend\modules\pages\models\Pages;
use backend\modules\pages\models\PagesSites;
use backend\modules\products\models\Products;
use backend\modules\subscribe\models\Subscribe;
use common\models\Identity;
use frontend\actions\GetProfileImageAction;
use frontend\models\Cart;
use wbp\images\models\Image;
use Yii;
use yii\filters\AccessControl;
use yii\filters\VerbFilter;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
/**
* Site controller
*/
class CartController extends BaseController
{
public function actionIndex(){
$cart=Cart::getInstance();
return $this->render('index', ['cart'=>$cart]);
}
public function actionStep1(){
$cart=Cart::getInstance();
$post=Yii::$app->request->post();
if($cart->load($post)){
}
if(!$cart->getCount()) return $this->redirect(['index']);
$cart->scenario='step1';
$this->layout='no-footer';
return $this->render('step1', ['cart'=>$cart]);
}
public function actionAddToCart(){
$id=Yii::$app->request->post('id', false);
$qty=Yii::$app->request->post('qty', 1);
$variant_1=Yii::$app->request->post('variant_1', false);
$variant_2=Yii::$app->request->post('variant_2', false);
if(!$id){throw new NotFoundHttpException('Page Not Found');}
if(!$qty) $qty=1;
$cart=Cart::getInstance();
$product=$this->site->getProducts()->andWhere(['id'=>$id])->one();
if(!$product){throw new NotFoundHttpException('Page Not Found');}
$cart->addItem($product,$qty,$variant_1,$variant_2);
return $this->redirect(['index']);
}
public function actionChangeQty(){
$cart=Cart::getInstance();
$num=Yii::$app->request->get('num');
$qty=Yii::$app->request->get('qty');
$item=$cart->changeQty($num,$qty);
echo $item->getSubtotal();
exit();
}
public function actionGetCartSubtotal(){
$cart=Cart::getInstance();
echo $cart->getPrice();
exit();
}
public function actionRemoveItem(){
$num=Yii::$app->request->get('num');
$cart=Cart::getInstance();
$cart->removeItem($num);
return $this->redirect(['index']);
}
public function actionClear(){
$cart=Cart::getInstance();
$cart->clean();
}
}