BasketModal.php
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
namespace artweb\artbox\ecommerce\widgets;
use artweb\artbox\ecommerce\models\ProductVariant;
use yii\base\Widget;
class BasketModal extends Widget
{
public function init()
{
parent::init();
}
public function run()
{
$sessionData = \Yii::$app->session->get('order');
unset( $sessionData[ 'order_id' ] );
$count = count($sessionData);
$price = 0;
if (is_array($sessionData) && !empty( $sessionData )) {
$variant = ProductVariant::find()
->where([ 'product_variant_id' => array_keys($sessionData) ])
->indexBy('product_variant_id')
->all();
foreach ($sessionData as $k => $item) {
$sessionData[ $k ][ 'item' ] = $variant[ $k ];
$price += $variant[ $k ]->price * $sessionData[ $k ][ 'num' ];
}
return $this->render(
'basket_modal',
[
'items' => $sessionData,
'count' => $count,
'price' => $price,
]
);
}
}
}