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 | /** |