PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.4
GiveWP – Donation Plugin and Fundraising Platform v3.0.4
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / PaymentGateways / CommandHandlers / SubscriptionSyncedHandler.php
give / src / Framework / PaymentGateways / CommandHandlers Last commit date
PaymentAbandonedHandler.php 4 years ago PaymentCompleteHandler.php 4 years ago PaymentHandler.php 4 years ago PaymentPendingHandler.php 2 years ago PaymentProcessingHandler.php 4 years ago PaymentRefundedHandler.php 4 years ago RedirectOffsiteHandler.php 4 years ago RespondToBrowserHandler.php 4 years ago SubscriptionCompleteHandler.php 4 years ago SubscriptionProcessingHandler.php 3 years ago SubscriptionSyncedHandler.php 2 years ago
SubscriptionSyncedHandler.php
72 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways\CommandHandlers;
4
5 use Exception;
6 use Give\Donations\Models\Donation;
7 use Give\Framework\Http\Response\Types\JsonResponse;
8 use Give\Framework\PaymentGateways\Commands\SubscriptionSynced;
9
10 use function Give\Framework\Http\Response\response;
11
12 /**
13 * @since 2.33.0
14 */
15 class SubscriptionSyncedHandler
16 {
17 /**
18 * @since 2.33.0
19 *
20 * @throws Exception
21 */
22 public function __invoke(SubscriptionSynced $subscriptionSynced): JsonResponse
23 {
24 $dateTimeFormat = get_option('date_format') . ' ' . get_option('time_format');
25
26 $details = [
27 'currentStatus' => $subscriptionSynced->subscription->getOriginal('status'),
28 'gatewayStatus' => $subscriptionSynced->subscription->status,
29 'currentPeriod' => $subscriptionSynced->subscription->getOriginal('period'),
30 'gatewayPeriod' => $subscriptionSynced->subscription->period,
31 'currentCreatedAt' => date($dateTimeFormat,
32 $subscriptionSynced->subscription->getOriginal('createdAt')->getTimestamp()),
33 'gatewayCreatedAt' => date($dateTimeFormat, $subscriptionSynced->subscription->createdAt->getTimestamp()),
34 ];
35 $subscriptionSynced->subscription->save();
36
37 $missingTransactions = [];
38 foreach ($subscriptionSynced->missingDonations as $missingDonation) {
39 $missingTransactions[] = $this->getTransactionData($missingDonation);
40 }
41
42 $presentTransactions = [];
43 foreach ($subscriptionSynced->presentDonations as $presentDonation) {
44 $presentTransactions[] = $this->getTransactionData($presentDonation);
45 }
46
47 return response()->json([
48 'details' => $details,
49 'missingTransactions' => $missingTransactions,
50 'presentTransactions' => $presentTransactions,
51 'notice' => $subscriptionSynced->notice,
52 ]);
53 }
54
55 /**
56 * @since 2.33.0
57 */
58 private function getTransactionData(Donation $donation): array
59 {
60 $dateTimeFormat = get_option('date_format') . ' ' . get_option('time_format');
61
62 return [
63 'id' => $donation->id,
64 'gatewayTransactionId' => $donation->gatewayTransactionId,
65 'amount' => $donation->amount->getCurrency()->getCode() . ' ' . $donation->amount->formatToDecimal(),
66 'createdAt' => date($dateTimeFormat, $donation->createdAt->getTimestamp()),
67 'status' => $donation->status->getValue(),
68 'type' => $donation->type->getValue(),
69 ];
70 }
71 }
72