Skip to content

Commit 8e6c972

Browse files
committed
Added shipping and payment status to orders list and order page
1 parent f6fc936 commit 8e6c972

File tree

8 files changed

+82
-15
lines changed

8 files changed

+82
-15
lines changed

admin/controller/order/order.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
namespace Vvveb\Controller\Order;
2424

2525
use function Vvveb\__;
26-
use function Vvveb\email;
2726
use Vvveb\Controller\Base;
2827
use Vvveb\Controller\Content\AutocompleteTrait;
28+
use function Vvveb\email;
2929
use function Vvveb\orderStatusBadgeClass;
30+
use function Vvveb\paymentStatusBadgeClass;
3031
use function Vvveb\prefixArrayKeys;
32+
use function Vvveb\shippingStatusBadgeClass;
3133
use function Vvveb\siteSettings;
3234
use Vvveb\Sql\Order_LogSQL;
3335
use Vvveb\Sql\OrderSQL;
@@ -112,6 +114,8 @@ function index() {
112114
$order['shipping_data'] = json_decode($order['shipping_data'] ?? '', true);
113115
$order['payment_data'] = json_decode($order['payment_data'] ?? '', true);
114116
$order['class'] = orderStatusBadgeClass($order['order_status_id']);
117+
$order['payment_class'] = paymentStatusBadgeClass($order['payment_status_id']);
118+
$order['shipping_class'] = shippingStatusBadgeClass($order['shipping_status_id']);
115119

116120
$order += prefixArrayKeys('shipping_', $order['shipping_data']) ?? [];
117121
$order += prefixArrayKeys('payment_', $order['payment_data']) ?? [];
@@ -214,14 +218,14 @@ function saveLog() {
214218

215219
if ($notify) {
216220
$message = '';
221+
217222
if ($public) {
218223
$message = $log['note'];
219224
}
220225

221226
$email = $this->view->order['email'];
222227
$this->sendNotification($order_id, $email, $message);
223228
}
224-
225229
} else {
226230
$view->errors[] = $orderLog->error;
227231
}

admin/controller/order/orders.php

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
use function Vvveb\__;
2626
use Vvveb\Controller\Base;
2727
use function Vvveb\orderStatusBadgeClass;
28+
use function Vvveb\paymentStatusBadgeClass;
29+
use function Vvveb\shippingStatusBadgeClass;
2830
use Vvveb\Sql\OrderSQL;
2931
use Vvveb\System\Cart\Currency;
3032
use Vvveb\System\Core\View;
@@ -71,6 +73,8 @@ function index() {
7173
foreach ($results['order'] as $id => &$order) {
7274
$order['total_formatted'] = $currency->format($order['total']);
7375
$order['class'] = orderStatusBadgeClass($order['order_status_id']);
76+
$order['payment_class'] = paymentStatusBadgeClass($order['payment_status_id']);
77+
$order['shipping_class'] = shippingStatusBadgeClass($order['shipping_status_id']);
7478
$order['delete-url'] = \Vvveb\url(['module' => 'order/orders', 'action' => 'delete'] + ['order_id[]' => $order['order_id']]);
7579
}
7680
}

admin/sql/mysqli/order.sql

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
-- variables
77
IN language_id INT,
88
IN site_id INT,
9-
IN user_id INT
9+
IN user_id INT
1010

1111
IN order_status CHAR,
1212
IN order_status_id INT,
@@ -32,7 +32,7 @@
3232
)
3333
BEGIN
3434

35-
SELECT `order`.*,os.name as order_status FROM `order` AS `order`
35+
SELECT `order`.*,os.name as order_status,ops.name as payment_status,oss.name as shipping_status FROM `order` AS `order`
3636

3737
LEFT JOIN order_status AS os ON (`order`.order_status_id = os.order_status_id AND os.language_id = :language_id)
3838
LEFT JOIN shipping_status AS oss ON (`order`.shipping_status_id = oss.shipping_status_id AND oss.language_id = :language_id)

admin/sql/pgsql/order.sql

+23-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
-- variables
77
IN language_id INT,
88
IN site_id INT,
9-
IN user_id INT
9+
IN user_id INT
1010

1111
IN order_status CHAR,
1212
IN order_status_id INT,
@@ -32,7 +32,7 @@
3232
)
3333
BEGIN
3434

35-
SELECT "order".*,os.name as order_status FROM "order" AS "order"
35+
SELECT "order".*,os.name as order_status,ops.name as payment_status,oss.name as shipping_status FROM "order" AS "order"
3636

3737
LEFT JOIN order_status AS os ON ("order".order_status_id = os.order_status_id AND os.language_id = :language_id)
3838
LEFT JOIN shipping_status AS oss ON ("order".shipping_status_id = oss.shipping_status_id AND oss.language_id = :language_id)
@@ -55,7 +55,27 @@
5555
@IF isset(:order_status_id)
5656
THEN
5757
AND "order".order_status_id = :order_status_id
58-
END @IF
58+
END @IF
59+
60+
@IF isset(:shipping_status)
61+
THEN
62+
AND oss.name = :shipping_status
63+
END @IF
64+
65+
@IF isset(:shipping_status_id)
66+
THEN
67+
AND "order".shipping_status_id = :shipping_status_id
68+
END @IF
69+
70+
@IF isset(:payment_status)
71+
THEN
72+
AND ops.name = :payment_status
73+
END @IF
74+
75+
@IF isset(:payment_status_id)
76+
THEN
77+
AND "order".payment_status_id = :payment_status_id
78+
END @IF
5979

6080
@IF isset(:email) AND !empty(:email)
6181
THEN

admin/sql/sqlite/order.sql

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
-- variables
77
IN language_id INT,
88
IN site_id INT,
9-
IN user_id INT
9+
IN user_id INT
1010

1111
IN order_status CHAR,
1212
IN order_status_id INT,
@@ -32,7 +32,7 @@
3232
)
3333
BEGIN
3434

35-
SELECT `order`.*,os.name as order_status FROM `order` AS `order`
35+
SELECT `order`.*,os.name as order_status,ops.name as payment_status,oss.name as shipping_status FROM `order` AS `order`
3636

3737
LEFT JOIN order_status AS os ON (`order`.order_status_id = os.order_status_id AND os.language_id = :language_id)
3838
LEFT JOIN shipping_status AS oss ON (`order`.shipping_status_id = oss.shipping_status_id AND oss.language_id = :language_id)

admin/template/order/order.tpl

+2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ if(is_array($logs)) foreach ($logs as $index => $log) {
6262
[data-v-order] [data-v-order-site_url]|href = $this->order['site_url']
6363

6464
[data-v-order] .badge[data-v-order-order_status]|addClass = <?php echo $this->order['class'] ?? '';?>
65+
[data-v-order] .badge[data-v-order-payment_status]|addClass = <?php echo $this->order['payment_class'] ?? '';?>
66+
[data-v-order] .badge[data-v-order-shipping_status]|addClass = <?php echo $this->order['shipping_class'] ?? '';?>
6567

6668
[data-v-order-print-url]|href = $this->printUrl
6769
[data-v-order-print-shipping-url]|href = $this->printShippingUrl

admin/template/order/orders.tpl

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ if(isset($this->orders) && is_array($this->orders)) {
1515
[data-v-orders] [data-v-order] input[data-v-*]|value = $order['@@__data-v-(*)__@@']
1616
1717
[data-v-orders] [data-v-order] .badge[data-v-order_status]|addClass = <?php echo $order['class'];?>
18+
[data-v-orders] [data-v-order] .badge[data-v-payment_status]|addClass = <?php echo $order['payment_class'];?>
19+
[data-v-orders] [data-v-order] .badge[data-v-shipping_status]|addClass = <?php echo $order['shipping_class'];?>
1820
1921
[data-v-orders] [data-v-order]|after = <?php
2022
}

system/functions.php

+41-6
Original file line numberDiff line numberDiff line change
@@ -1626,17 +1626,52 @@ function nl2p($string) {
16261626

16271627
function orderStatusBadgeClass($order_status_id = 1) {
16281628
$classes = [
1629-
1 => 'bg-primary-subtle text-body',
1630-
2 => 'bg-success-subtle text-body',
1631-
3 => 'bg-danger-subtle text-body',
1632-
4 => 'bg-success',
1633-
5 => 'bg-danger',
1634-
6 => 'bg-danger',
1629+
1 => 'bg-primary-subtle text-body', //pending
1630+
2 => 'bg-info-subtle text-body', //processing
1631+
3 => 'bg-primary', //processed
1632+
4 => 'bg-success', //complete
1633+
5 => 'bg-danger', //canceled
1634+
6 => 'bg-secondary', //archived
1635+
7 => 'bg-warning', //requires_action
16351636
];
16361637

16371638
return $classes[$order_status_id] ?? 'bg-warning text-dark';
16381639
}
16391640

1641+
function paymentStatusBadgeClass($payment_status_id = 1) {
1642+
$classes = [
1643+
1 => 'bg-warning-subtle text-body', //not_paid
1644+
2 => 'bg-success-subtle text-body', //awaiting
1645+
3 => 'bg-danger-subtle text-body', //captured
1646+
4 => 'bg-success', //paid
1647+
5 => 'bg-danger', //canceled
1648+
6 => 'bg-danger', //refunded
1649+
7 => 'bg-danger', //partially_refunded
1650+
8 => 'bg-danger', //chargeback
1651+
9 => 'bg-danger', //requires_action
1652+
10 => 'bg-danger', //fraud
1653+
];
1654+
1655+
return $classes[$payment_status_id] ?? 'bg-warning text-dark';
1656+
}
1657+
1658+
function shippingStatusBadgeClass($shipping_status_id = 1) {
1659+
$classes = [
1660+
1 => 'bg-warning-subtle text-body', //not_fulfilled
1661+
2 => 'bg-success-subtle text-body', //fulfilled
1662+
3 => 'bg-success-subtle text-body', //partially_fulfilled
1663+
4 => 'bg-success', //shipped
1664+
5 => 'bg-success-subtle text-body', //partially_shipped
1665+
6 => 'bg-danger-subtle text-body', //returned
1666+
7 => 'bg-danger-subtle text-body', //partially_returned
1667+
8 => 'bg-success', //delivered
1668+
9 => 'bg-danger', //canceled
1669+
10 => 'bg-warning', //requires_action
1670+
];
1671+
1672+
return $classes[$shipping_status_id] ?? 'bg-warning text-dark';
1673+
}
1674+
16401675
function commentStatusBadgeClass($status = 0) {
16411676
$classes = [
16421677
0 => 'bg-primary-subtle text-body', //pending

0 commit comments

Comments
 (0)