7
7
namespace mediabeastnz \abandonedcart \controllers ;
8
8
9
9
use mediabeastnz \abandonedcart \AbandonedCart ;
10
+ use mediabeastnz \abandonedcart \records \AbandonedCart as CartRecord ;
11
+ use mediabeastnz \abandonedcart \models \AbandonedCart as CartModel ;
12
+
10
13
11
14
use Craft ;
12
15
use craft \web \Controller ;
13
16
use craft \helpers \UrlHelper ;
14
17
use craft \commerce \elements \Order ;
18
+ use craft \db \Paginator ;
19
+ use craft \db \Query ;
20
+ use craft \web \twig \variables \Paginate ;
15
21
16
22
use yii \web \Response ;
17
23
@@ -37,13 +43,44 @@ public function actionSettings()
37
43
38
44
public function actionIndex ()
39
45
{
40
- $ carts = AbandonedCart::$ plugin ->carts ->getAbandonedCarts (25 );
41
- return $ this ->renderTemplate ('abandoned-cart/index ' , array (
42
- 'carts ' => $ carts ,
43
- 'totalCarts ' => AbandonedCart::$ plugin ->carts ->getAbandonedCartsTotal (),
44
- 'totalRecovered ' => AbandonedCart::$ plugin ->carts ->getAbandonedCartsRecovered (),
45
- 'conversionRate ' => AbandonedCart::$ plugin ->carts ->getAbandondedCartsConversion ()
46
- ));
46
+ $ c = new Query ();
47
+ $ c ->select ('* ' )->from (['{{%abandonedcart_carts}} ' ])->orderBy ('dateUpdated desc ' );
48
+ $ paginator = new Paginator ($ c , [
49
+ 'pageSize ' => 20 ,
50
+ 'currentPage ' => \Craft::$ app ->request ->pageNum ,
51
+ ]);
52
+
53
+ $ pageResults = $ paginator ->getPageResults ();
54
+ if ($ pageResults && count ($ pageResults )) {
55
+ $ carts = [];
56
+ foreach ($ pageResults as $ pageResult ) {
57
+ $ carts [] = new CartModel ($ pageResult );
58
+ }
59
+
60
+ $ pageOffset = $ paginator ->getPageOffset ();
61
+ $ page = Paginate::create ($ paginator );
62
+
63
+ return $ this ->renderTemplate ('abandoned-cart/index ' , [
64
+ 'carts ' => $ carts ,
65
+ 'pageInfo ' => [
66
+ 'first ' => $ pageOffset + 1 ,
67
+ 'last ' => $ pageOffset + count ($ pageResults ),
68
+ 'total ' => $ paginator ->getTotalResults (),
69
+ 'currentPage ' => $ paginator ->getCurrentPage (),
70
+ 'totalPages ' => $ paginator ->getTotalPages (),
71
+ 'prevUrl ' => $ page ->getPrevUrl (),
72
+ 'nextUrl ' => $ page ->getNextUrl (),
73
+ ],
74
+ 'totalRecovered ' => AbandonedCart::$ plugin ->carts ->getAbandonedCartsRecovered (),
75
+ 'conversionRate ' => AbandonedCart::$ plugin ->carts ->getAbandondedCartsConversion ()
76
+ ]);
77
+ } else {
78
+ return $ this ->renderTemplate ('abandoned-cart/index ' , [
79
+ 'carts ' => false ,
80
+ 'totalRecovered ' => AbandonedCart::$ plugin ->carts ->getAbandonedCartsRecovered (),
81
+ 'conversionRate ' => AbandonedCart::$ plugin ->carts ->getAbandondedCartsConversion ()
82
+ ]);
83
+ }
47
84
}
48
85
49
86
public function actionFindCarts ()
0 commit comments