Skip to content

Commit 0fa68a2

Browse files
committed
Display of capture, void, refund buttons
1 parent 9261197 commit 0fa68a2

File tree

4 files changed

+74
-15
lines changed

4 files changed

+74
-15
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Release Notes
22

3+
## v2.0.4 (2023-10-24)
4+
### Fixed
5+
- Display of capture, void, refund buttons
6+
37
## v2.0.3 (2023-10-10)
48
### Added
59
- Installment option provided.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
- Requires at least: 4.0
77
- Tested up to: 6.2.1
88
- Requires PHP: 5.5
9-
- Stable tag: 2.0.3
9+
- Stable tag: 2.0.4
1010
- WC requires at least: 2.4
1111
- WC tested up to: 7.5.1
1212

allsecureexchange/allsecure-exchange-additional-payment-method-abstract.php

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ public function process_payment($order_id) {
209209
throw new \Exception($errorMessage);
210210
} elseif ($result->getReturnType() == AllsecureResult::RETURN_TYPE_REDIRECT) {
211211
//redirect the user
212+
$order->delete_meta_data($this->prefix.'status');
212213
$order->add_meta_data($this->prefix.'status', 'redirected', true);
213214
$redirectLink = $result->getRedirectUrl();
214215
return [
@@ -217,6 +218,7 @@ public function process_payment($order_id) {
217218
];
218219
} elseif ($result->getReturnType() == AllsecureResult::RETURN_TYPE_PENDING) {
219220
//payment is pending, wait for callback to complete
221+
$order->delete_meta_data($this->prefix.'status');
220222
$order->add_meta_data($this->prefix.'status', 'pending', true);
221223
$order->save_meta_data();
222224
if ($action == 'debit') {
@@ -238,6 +240,7 @@ public function process_payment($order_id) {
238240
} elseif ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
239241
//payment is finished, update your cart/payment transaction
240242
if ($action == 'debit') {
243+
$order->delete_meta_data($this->prefix.'status');
241244
$order->add_meta_data($this->prefix.'status', 'debited', true);
242245
$order->save_meta_data();
243246
$comment1 = __('Allsecure Exchange payment is successfully debited. ', $this->domain);
@@ -254,6 +257,7 @@ public function process_payment($order_id) {
254257
'redirect' => add_query_arg( 'order_id', $order_id, $this->get_return_url( $order ))
255258
];
256259
} else {
260+
$order->delete_meta_data($this->prefix.'status');
257261
$order->add_meta_data($this->prefix.'status', 'preauthorized', true);
258262
$order->save_meta_data();
259263
$order->payment_complete();
@@ -471,7 +475,8 @@ public function payment_webhook_handler() {
471475
}
472476

473477
$order->add_meta_data($this->prefix.'debit_uuid', $gatewayReferenceId);
474-
$order->add_meta_data($this->prefix.'status', 'debited');
478+
$order->delete_meta_data($this->prefix.'status');
479+
$order->add_meta_data($this->prefix.'status', 'debited', true);
475480
$order->save_meta_data();
476481

477482
$comment1 = __('Allsecure Exchange payment is successfully debited. ', $this->domain);
@@ -483,7 +488,8 @@ public function payment_webhook_handler() {
483488
} else if ($callbackResult->getTransactionType() == AllsecureCallbackResult::TYPE_CAPTURE) {
484489
//result capture
485490
$order->add_meta_data($this->prefix.'capture_uuid', $gatewayReferenceId);
486-
$order->add_meta_data($this->prefix.'status', 'captured');
491+
$order->delete_meta_data($this->prefix.'status');
492+
$order->add_meta_data($this->prefix.'status', 'captured', true);
487493
$order->save_meta_data();
488494

489495
$comment1 = __('Allsecure Exchange payment is successfully captured. ', $this->domain);
@@ -495,7 +501,8 @@ public function payment_webhook_handler() {
495501
} else if ($callbackResult->getTransactionType() == AllsecureCallbackResult::TYPE_VOID) {
496502
//result void
497503
$order->add_meta_data($this->prefix.'void_uuid', $gatewayReferenceId);
498-
$order->add_meta_data($this->prefix.'status', 'voided');
504+
$order->delete_meta_data($this->prefix.'status');
505+
$order->add_meta_data($this->prefix.'status', 'voided', true);
499506
$order->save_meta_data();
500507

501508
$comment1 = __('Allsecure Exchange payment is successfully voided. ', $this->domain);
@@ -513,7 +520,8 @@ public function payment_webhook_handler() {
513520
}
514521

515522
$order->add_meta_data($this->prefix.'preauthorize_uuid', $gatewayReferenceId);
516-
$order->add_meta_data($this->prefix.'status', 'preauthorized');
523+
$order->delete_meta_data($this->prefix.'status');
524+
$order->add_meta_data($this->prefix.'status', 'preauthorized', true);
517525
$order->save_meta_data();
518526
$order->payment_complete();
519527

@@ -526,7 +534,8 @@ public function payment_webhook_handler() {
526534
}
527535
} elseif ($callbackResult->getResult() == AllsecureCallbackResult::RESULT_ERROR) {
528536
//payment error
529-
$order->add_meta_data($this->prefix.'status', 'error');
537+
$order->delete_meta_data($this->prefix.'status');
538+
$order->add_meta_data($this->prefix.'status', 'error', true);
530539
$order->save_meta_data();
531540
$error = $callbackResult->getFirstError();
532541
$errorCode = $error->getCode();
@@ -866,7 +875,22 @@ public function admin_order_action_buttons($order) {
866875
$void = false;
867876
$refund = 0;
868877

869-
$status = $order->get_meta($this->prefix.'status');
878+
if (count($statuses) > 1) {
879+
$i = 0;
880+
$j = count($statuses)-1;
881+
foreach ($statuses as $statusObj) {
882+
if ($i == $j) {
883+
$status = $statusObj->value;
884+
$order->delete_meta_data($this->prefix.'status');
885+
$order->add_meta_data($this->prefix.'status', $status, true);
886+
$order->save_meta_data();
887+
}
888+
$i++;
889+
}
890+
} else {
891+
$status = $order->get_meta($this->prefix.'status');
892+
}
893+
870894
if ($status == 'debited' || $status == 'captured') {
871895
$refund = 1;
872896
} elseif ($status == 'preauthorized' ) {
@@ -978,6 +1002,7 @@ public function process_refund($order_id, $amount = NULL, $reason = '') {
9781002

9791003
if ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
9801004
$gatewayReferenceId = $result->getUuid();
1005+
$order->delete_meta_data($this->prefix.'status');
9811006
$order->add_meta_data($this->prefix.'status', 'refunded', true);
9821007
$order->add_meta_data($this->prefix.'transaction_id', $gatewayReferenceId, true);
9831008
$order->add_meta_data($this->prefix.'refund_uuid', $gatewayReferenceId, true);
@@ -1047,6 +1072,7 @@ public function process_capture() {
10471072

10481073
if ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
10491074
$gatewayReferenceId = $result->getUuid();
1075+
$order->delete_meta_data($this->prefix.'status');
10501076
$order->add_meta_data($this->prefix.'status', 'captured', true);
10511077
$order->add_meta_data($this->prefix.'transaction_id', $gatewayReferenceId, true);
10521078
$order->add_meta_data($this->prefix.'capture_uuid', $gatewayReferenceId, true);
@@ -1126,6 +1152,7 @@ public function process_void() {
11261152

11271153
if ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
11281154
$gatewayReferenceId = $result->getUuid();
1155+
$order->delete_meta_data($this->prefix.'status');
11291156
$order->add_meta_data($this->prefix.'status', 'voided', true);
11301157
$order->add_meta_data($this->prefix.'transaction_id', $gatewayReferenceId, true);
11311158
$order->add_meta_data($this->prefix.'void_uuid', $gatewayReferenceId, true);

allsecureexchange/woocommerce-allsecure-exchange.php

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/*
33
Plugin Name: AllSecure Exchange
44
Description: AllSecure Exchange for WooCommerce
5-
Version: 2.0.3
5+
Version: 2.0.4
66
Requires at least: 4.0
77
Tested up to: 6.2.1
88
WC requires at least: 2.4
@@ -17,7 +17,7 @@
1717
exit; // Exit if accessed directly
1818
}
1919

20-
define('ALLSECUREEXCHANGE_VERSION', '2.0.2');
20+
define('ALLSECUREEXCHANGE_VERSION', '2.0.4');
2121
define('ALLSECUREEXCHANGE_PLUGIN_URL', plugin_dir_url(__FILE__));
2222
define('ALLSECUREEXCHANGE_PLUGIN_PATH', plugin_dir_path(__FILE__));
2323

@@ -717,6 +717,7 @@ public function process_payment($order_id) {
717717
if (!empty($installment_number)) {
718718
$order->add_meta_data($this->prefix.'installment_number', $installment_number, true);
719719
}
720+
$order->delete_meta_data($this->prefix.'status');
720721
$order->add_meta_data($this->prefix.'status', 'redirected', true);
721722
$order->save_meta_data();
722723

@@ -730,6 +731,7 @@ public function process_payment($order_id) {
730731
if (!empty($installment_number)) {
731732
$order->add_meta_data($this->prefix.'installment_number', $installment_number, true);
732733
}
734+
$order->delete_meta_data($this->prefix.'status');
733735
$order->add_meta_data($this->prefix.'status', 'pending', true);
734736
$order->save_meta_data();
735737
if ($action == 'debit') {
@@ -754,6 +756,7 @@ public function process_payment($order_id) {
754756
if (!empty($installment_number)) {
755757
$order->add_meta_data($this->prefix.'installment_number', $installment_number, true);
756758
}
759+
$order->delete_meta_data($this->prefix.'status');
757760
$order->add_meta_data($this->prefix.'status', 'debited', true);
758761
$order->save_meta_data();
759762
$comment1 = __('Allsecure Exchange payment is successfully debited. ', $this->domain);
@@ -770,6 +773,7 @@ public function process_payment($order_id) {
770773
'redirect' => add_query_arg( 'order_id', $order_id, $this->get_return_url( $order ))
771774
];
772775
} else {
776+
$order->delete_meta_data($this->prefix.'status');
773777
$order->add_meta_data($this->prefix.'status', 'preauthorized', true);
774778
$order->save_meta_data();
775779
$order->payment_complete();
@@ -984,7 +988,8 @@ public function payment_webhook_handler() {
984988
}
985989

986990
$order->add_meta_data($this->prefix.'debit_uuid', $gatewayReferenceId);
987-
$order->add_meta_data($this->prefix.'status', 'debited');
991+
$order->delete_meta_data($this->prefix.'status');
992+
$order->add_meta_data($this->prefix.'status', 'debited', true);
988993
$order->save_meta_data();
989994

990995
$comment1 = __('Allsecure Exchange payment is successfully debited. ', $this->domain);
@@ -996,7 +1001,8 @@ public function payment_webhook_handler() {
9961001
} else if ($callbackResult->getTransactionType() == AllsecureCallbackResult::TYPE_CAPTURE) {
9971002
//result capture
9981003
$order->add_meta_data($this->prefix.'capture_uuid', $gatewayReferenceId);
999-
$order->add_meta_data($this->prefix.'status', 'captured');
1004+
$order->delete_meta_data($this->prefix.'status');
1005+
$order->add_meta_data($this->prefix.'status', 'captured', true);
10001006
$order->save_meta_data();
10011007

10021008
$comment1 = __('Allsecure Exchange payment is successfully captured. ', $this->domain);
@@ -1008,7 +1014,8 @@ public function payment_webhook_handler() {
10081014
} else if ($callbackResult->getTransactionType() == AllsecureCallbackResult::TYPE_VOID) {
10091015
//result void
10101016
$order->add_meta_data($this->prefix.'void_uuid', $gatewayReferenceId);
1011-
$order->add_meta_data($this->prefix.'status', 'voided');
1017+
$order->delete_meta_data($this->prefix.'status');
1018+
$order->add_meta_data($this->prefix.'status', 'voided', true);
10121019
$order->save_meta_data();
10131020

10141021
$comment1 = __('Allsecure Exchange payment is successfully voided. ', $this->domain);
@@ -1026,7 +1033,8 @@ public function payment_webhook_handler() {
10261033
}
10271034

10281035
$order->add_meta_data($this->prefix.'preauthorize_uuid', $gatewayReferenceId);
1029-
$order->add_meta_data($this->prefix.'status', 'preauthorized');
1036+
$order->delete_meta_data($this->prefix.'status');
1037+
$order->add_meta_data($this->prefix.'status', 'preauthorized', true);
10301038
$order->save_meta_data();
10311039
$order->payment_complete();
10321040

@@ -1039,7 +1047,8 @@ public function payment_webhook_handler() {
10391047
}
10401048
} elseif ($callbackResult->getResult() == AllsecureCallbackResult::RESULT_ERROR) {
10411049
//payment error
1042-
$order->add_meta_data($this->prefix.'status', 'error');
1050+
$order->delete_meta_data($this->prefix.'status');
1051+
$order->add_meta_data($this->prefix.'status', 'error', true);
10431052
$order->save_meta_data();
10441053
$error = $callbackResult->getFirstError();
10451054
$errorCode = $error->getCode();
@@ -1447,7 +1456,23 @@ public function admin_order_action_buttons($order) {
14471456
$void = false;
14481457
$refund = 0;
14491458

1450-
$status = $order->get_meta($this->prefix.'status');
1459+
$statuses = $order->get_meta($this->prefix.'status', 0);
1460+
if (count($statuses) > 1) {
1461+
$i = 0;
1462+
$j = count($statuses)-1;
1463+
foreach ($statuses as $statusObj) {
1464+
if ($i == $j) {
1465+
$status = $statusObj->value;
1466+
$order->delete_meta_data($this->prefix.'status');
1467+
$order->add_meta_data($this->prefix.'status', $status, true);
1468+
$order->save_meta_data();
1469+
}
1470+
$i++;
1471+
}
1472+
} else {
1473+
$status = $order->get_meta($this->prefix.'status');
1474+
}
1475+
14511476
if ($status == 'debited' || $status == 'captured') {
14521477
$refund = 1;
14531478
} elseif ($status == 'preauthorized' ) {
@@ -1559,6 +1584,7 @@ public function process_refund($order_id, $amount = NULL, $reason = '') {
15591584

15601585
if ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
15611586
$gatewayReferenceId = $result->getUuid();
1587+
$order->delete_meta_data($this->prefix.'status');
15621588
$order->add_meta_data($this->prefix.'status', 'refunded', true);
15631589
$order->add_meta_data($this->prefix.'transaction_id', $gatewayReferenceId, true);
15641590
$order->add_meta_data($this->prefix.'refund_uuid', $gatewayReferenceId, true);
@@ -1628,6 +1654,7 @@ public function process_capture() {
16281654

16291655
if ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
16301656
$gatewayReferenceId = $result->getUuid();
1657+
$order->delete_meta_data($this->prefix.'status');
16311658
$order->add_meta_data($this->prefix.'status', 'captured', true);
16321659
$order->add_meta_data($this->prefix.'transaction_id', $gatewayReferenceId, true);
16331660
$order->add_meta_data($this->prefix.'capture_uuid', $gatewayReferenceId, true);
@@ -1707,6 +1734,7 @@ public function process_void() {
17071734

17081735
if ($result->getReturnType() == AllsecureResult::RETURN_TYPE_FINISHED) {
17091736
$gatewayReferenceId = $result->getUuid();
1737+
$order->delete_meta_data($this->prefix.'status');
17101738
$order->add_meta_data($this->prefix.'status', 'voided', true);
17111739
$order->add_meta_data($this->prefix.'transaction_id', $gatewayReferenceId, true);
17121740
$order->add_meta_data($this->prefix.'void_uuid', $gatewayReferenceId, true);

0 commit comments

Comments
 (0)