PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.2
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 / Webhooks / EventHandlers / SubscriptionFirstDonationCompleted.php
give / src / Framework / PaymentGateways / Webhooks / EventHandlers Last commit date
Actions 2 years ago DonationAbandoned.php 2 years ago DonationCancelled.php 2 years ago DonationCompleted.php 2 years ago DonationFailed.php 2 years ago DonationPending.php 2 years ago DonationPreapproval.php 2 years ago DonationProcessing.php 2 years ago DonationRefunded.php 2 years ago DonationRevoked.php 2 years ago SubscriptionActive.php 2 years ago SubscriptionCancelled.php 2 years ago SubscriptionCompleted.php 2 years ago SubscriptionExpired.php 2 years ago SubscriptionFailing.php 2 years ago SubscriptionFirstDonationCompleted.php 2 years ago SubscriptionRenewalDonationCreated.php 2 years ago SubscriptionSuspended.php 2 years ago
SubscriptionFirstDonationCompleted.php
55 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways\Webhooks\EventHandlers;
4
5 use Exception;
6 use Give\Donations\ValueObjects\DonationStatus;
7 use Give\Framework\PaymentGateways\Log\PaymentGatewayLog;
8 use Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions\UpdateDonationStatus;
9 use Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions\UpdateSubscriptionStatus;
10 use Give\Subscriptions\ValueObjects\SubscriptionStatus;
11
12 /**
13 * @since 3.6.0
14 */
15 class SubscriptionFirstDonationCompleted
16 {
17 /**
18 * @since 3.6.0
19 */
20 public function __invoke(string $gatewayTransactionId, string $message = '', bool $setSubscriptionActive = true)
21 {
22 $donation = give()->donations->getByGatewayTransactionId($gatewayTransactionId);
23
24 if ( ! $donation || ! $donation->type->isSubscription() || $donation->id !== $donation->subscription->initialDonation()->id) {
25 return;
26 }
27
28 try {
29 if ( ! $donation->status->isComplete()) {
30 if (empty($message)) {
31 $message = __('Subscription First Donation Completed.', 'give');
32 }
33
34 (new UpdateDonationStatus())($donation, DonationStatus::COMPLETE(), $message);
35 }
36
37 if ($setSubscriptionActive && ! $donation->subscription->status->isActive()) {
38 (new UpdateSubscriptionStatus())($donation->subscription, SubscriptionStatus::ACTIVE(),
39 __('Subscription Active After The First Donation Got Completed.', 'give'));
40 }
41 } catch (Exception $e) {
42 PaymentGatewayLog::error(
43 sprintf('Subscription First Donation Failed! Error: %s',
44 $e->getCode() . ' - ' . $e->getMessage()),
45 [
46 'Donation Id' => $donation->id,
47 'Gateway Transaction Id' => $gatewayTransactionId,
48 'Gateway Subscription Id' => $donation->subscriptionId,
49 'message' => $message,
50 ]
51 );
52 }
53 }
54 }
55