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