Commit 363d62a0eb6870baac634ecb869e3db9c7cbc706
1 parent
ffdb531c
Added basket cookies
Showing
1 changed file
with
25 additions
and
0 deletions
Show diff stats
models/Basket.php
| @@ -3,6 +3,8 @@ | @@ -3,6 +3,8 @@ | ||
| 3 | namespace artweb\artbox\ecommerce\models; | 3 | namespace artweb\artbox\ecommerce\models; |
| 4 | 4 | ||
| 5 | use yii\base\Component; | 5 | use yii\base\Component; |
| 6 | + use yii\helpers\Json; | ||
| 7 | + use yii\web\Cookie; | ||
| 6 | use yii\web\NotFoundHttpException; | 8 | use yii\web\NotFoundHttpException; |
| 7 | 9 | ||
| 8 | /** | 10 | /** |
| @@ -30,6 +32,16 @@ | @@ -30,6 +32,16 @@ | ||
| 30 | $this->session = \Yii::$app->session; | 32 | $this->session = \Yii::$app->session; |
| 31 | if (!$this->session->has('basket')) { | 33 | if (!$this->session->has('basket')) { |
| 32 | $this->session->set('basket', []); | 34 | $this->session->set('basket', []); |
| 35 | + } elseif(!empty($this->session->get('basket'))) { | ||
| 36 | + $cookies = \Yii::$app->response->cookies; | ||
| 37 | + $cookies->add( | ||
| 38 | + new Cookie( | ||
| 39 | + [ | ||
| 40 | + 'name' => 'basket', | ||
| 41 | + 'value' => Json::encode($this->session->get('basket')), | ||
| 42 | + ] | ||
| 43 | + ) | ||
| 44 | + ); | ||
| 33 | } | 45 | } |
| 34 | parent::__construct($config); | 46 | parent::__construct($config); |
| 35 | } | 47 | } |
| @@ -131,6 +143,19 @@ | @@ -131,6 +143,19 @@ | ||
| 131 | public function setData(array $data) | 143 | public function setData(array $data) |
| 132 | { | 144 | { |
| 133 | $this->session->set('basket', $data); | 145 | $this->session->set('basket', $data); |
| 146 | + $cookies = \Yii::$app->response->cookies; | ||
| 147 | + if(empty($data)) { | ||
| 148 | + $cookies->remove('basket'); | ||
| 149 | + } else { | ||
| 150 | + $cookies->add( | ||
| 151 | + new Cookie( | ||
| 152 | + [ | ||
| 153 | + 'name' => 'basket', | ||
| 154 | + 'value' => Json::encode($data), | ||
| 155 | + ] | ||
| 156 | + ) | ||
| 157 | + ); | ||
| 158 | + } | ||
| 134 | } | 159 | } |
| 135 | 160 | ||
| 136 | /** | 161 | /** |