Skip to content

Commit a16a579

Browse files
feat: change order status to failed when recieve charge.payment_failed webhook
1 parent 3824717 commit a16a579

File tree

5 files changed

+32
-5
lines changed

5 files changed

+32
-5
lines changed
70 Bytes
Binary file not shown.

languages/woo-pagarme-payments-pt_BR.po

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ msgstr ""
55
"Project-Id-Version: WooCommerce Pagar.me Payments 1.0\n"
66
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-pagarme-payments\n"
77
"POT-Creation-Date: 2018-06-22 13:58-0300\n"
8-
"PO-Revision-Date: 2024-05-07 10:10-0300\n"
8+
"PO-Revision-Date: 2024-05-15 10:20-0300\n"
99
"Last-Translator: Pagar.me\n"
1010
"Language-Team: \n"
1111
"Language: pt_BR\n"
1212
"MIME-Version: 1.0\n"
1313
"Content-Type: text/plain; charset=UTF-8\n"
1414
"Content-Transfer-Encoding: 8bit\n"
1515
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
16-
"X-Generator: Poedit 3.4.2\n"
16+
"X-Generator: Poedit 3.4.4\n"
1717
"X-Poedit-SourceCharset: UTF-8\n"
1818
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c;_nc:1,2;_x:1,2c;_ex:1,2c;"
1919
"_nx:4c,1,2;_nx_noop:4c,1,2\n"
@@ -1368,3 +1368,6 @@ msgstr "O campo Nome impresso no cartão é obrigatório."
13681368

13691369
msgid "The field exp_month must be between 1 and 12."
13701370
msgstr "O mês de expiração do cartão deve estar entre 01 e 12."
1371+
1372+
msgid "Pagar.me: Payment failed."
1373+
msgstr "Pagar.me: Pagamento falhou."

src/Model/Order.php

+18
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,22 @@ public function payment_canceled()
118118
$this->log($statusArray);
119119
}
120120

121+
public function paymentFailed()
122+
{
123+
$current_status = $this->wc_order->get_status();
124+
125+
if ($current_status !== 'failed') {
126+
$this->wc_order->update_status('failed', __('Pagar.me: Payment failed.', 'woo-pagarme-payments'));
127+
}
128+
129+
$statusArray = [
130+
'previous_status' => $current_status,
131+
'new_status' => $this->wc_order->get_status()
132+
];
133+
134+
$this->log($statusArray);
135+
}
136+
121137
public function update_by_pagarme_status($pagarme_status)
122138
{
123139
switch ($pagarme_status) {
@@ -129,6 +145,8 @@ public function update_by_pagarme_status($pagarme_status)
129145
$this->payment_paid();
130146
break;
131147
case 'failed':
148+
$this->paymentFailed();
149+
break;
132150
case 'canceled':
133151
$this->payment_canceled();
134152
break;

vendor/pagarme/ecommerce-module-core/src/Kernel/Aggregates/Order.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,18 @@ public function applyOrderStatusFromCharges()
152152
}
153153

154154
if (
155-
in_array(ChargeStatus::failed()->getStatus(), $listChargeStatus) &&
156155
in_array(ChargeStatus::canceled()->getStatus(), $listChargeStatus)
157156
) {
158157
$this->setStatus(OrderStatus::canceled());
159158
}
160159

160+
if (
161+
in_array(ChargeStatus::failed()->getStatus(), $listChargeStatus)
162+
)
163+
{
164+
$this->setStatus(OrderStatus::failed());
165+
}
166+
161167
if (
162168
$chargesStatusEquals &&
163169
!$this->getCharges()[0]->getStatus()->equals(ChargeStatus::underpaid())

vendor/pagarme/ecommerce-module-core/src/Payment/Services/ResponseHandlers/OrderHandler.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ private function handleOrderStatusFailed(Order $order)
267267
$historyComment
268268
);
269269

270-
$order->setStatus(OrderStatus::canceled());
270+
$order->setStatus(OrderStatus::failed());
271271
$order->getPlatformOrder()->setState(OrderState::canceled());
272272
$order->getPlatformOrder()->save();
273273

@@ -291,7 +291,7 @@ private function handleOrderStatusFailed(Order $order)
291291
$sender = $platformOrder->sendEmail($messageComplementEmail);
292292

293293
$order->getPlatformOrder()->addHistoryComment(
294-
$i18n->getDashboard('Order canceled.'),
294+
$i18n->getDashboard('Order payment failed.'),
295295
$sender
296296
);
297297

0 commit comments

Comments
 (0)