MOON
Server: Apache
System: Linux u18017238.onlinehome-server.com 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User: emblazeone (1003)
PHP: 7.3.33
Disabled: exec,passthru,shell_exec,system
Upload Files
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();
    }


}