PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.4 4.16.3 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 / Actions / UpdateSubscriptionStatus.php
give / src / Framework / PaymentGateways / Webhooks / EventHandlers / Actions Last commit date
GetEventHandlerClassByDonationStatus.php 1 year ago GetEventHandlerClassBySubscriptionStatus.php 1 year ago UpdateDonationStatus.php 2 years ago UpdateSubscriptionStatus.php 3 weeks ago
UpdateSubscriptionStatus.php
92 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions;
4
5 use Exception;
6 use Give\Framework\PaymentGateways\Log\PaymentGatewayLog;
7 use Give\Subscriptions\Models\Subscription;
8 use Give\Subscriptions\Models\SubscriptionNote;
9 use Give\Subscriptions\ValueObjects\SubscriptionStatus;
10
11 /**
12 * @since 3.6.0
13 */
14 class UpdateSubscriptionStatus
15 {
16 /**
17 * @since 4.16.0 Add note to subscription
18 * @since 3.6.0
19 *
20 * @throws Exception
21 */
22 public function __invoke(
23 Subscription $subscription,
24 SubscriptionStatus $status,
25 string $message = ''
26 ) {
27 $subscription->status = $status;
28 $subscription->save();
29
30 if (empty($message)) {
31 $message = $this->getMessageFromStatus($status);
32 }
33
34 SubscriptionNote::create([
35 'subscriptionId' => $subscription->id,
36 'content' => $message . ' ' . sprintf(
37 __('%s subscription ID: %s', 'give'),
38 $subscription->initialDonation()->gateway()->getName(),
39 $subscription->gatewaySubscriptionId
40 ),
41 ]);
42
43 PaymentGatewayLog::info(
44 $message . ' ' . sprintf('Subscription ID: %s.', $subscription->id),
45 [
46 'Payment Gateway' => $subscription->gatewayId,
47 'Gateway Subscription Id' => $subscription->gatewaySubscriptionId,
48 'Subscription ID' => $subscription->id,
49 ]
50 );
51 }
52
53
54 /**
55 * @since 4.5.0 Add support for PAUSED and PENDING statuses
56 * @since 3.6.0
57 */
58 protected function getMessageFromStatus(SubscriptionStatus $status): string
59 {
60 $message = '';
61
62 switch (true):
63 case ($status->isCompleted()):
64 $message = __('Subscription Completed.', 'give');
65 break;
66 case ($status->isExpired()):
67 $message = __('Subscription Expired.', 'give');
68 break;
69 case ($status->isActive()):
70 $message = __('Subscription Active.', 'give');
71 break;
72 case ($status->isCancelled()):
73 $message = __('Subscription Cancelled.', 'give');
74 break;
75 case ($status->isFailing()):
76 $message = __('Subscription Failing.', 'give');
77 break;
78 case ($status->isPaused()):
79 $message = __('Subscription Paused.', 'give');
80 break;
81 case ($status->isPending()):
82 $message = __('Subscription Pending.', 'give');
83 break;
84 case ($status->isSuspended()):
85 $message = __('Subscription Suspended.', 'give');
86 break;
87 endswitch;
88
89 return $message;
90 }
91 }
92