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 / ServiceProvider.php
give / src / Framework / PaymentGateways Last commit date
Actions 2 years ago CommandHandlers 2 years ago Commands 2 years ago Contracts 11 months ago Controllers 2 years ago DataTransferObjects 3 years ago Exceptions 4 years ago Log 4 years ago Routes 3 years ago Traits 2 years ago Webhooks 11 months ago DonationSummary.php 3 years ago PaymentGateway.php 9 months ago PaymentGatewayRegister.php 2 years ago ServiceProvider.php 11 months ago SubscriptionModule.php 1 year ago
ServiceProvider.php
104 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways;
4
5 use Give\Donations\ValueObjects\DonationStatus;
6 use Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions\GetEventHandlerClassByDonationStatus;
7 use Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions\GetEventHandlerClassBySubscriptionStatus;
8 use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionFirstDonationCompleted;
9 use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionRenewalDonationCreated;
10 use Give\Helpers\Hooks;
11 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
12 use Give\Subscriptions\ValueObjects\SubscriptionStatus;
13
14 /**
15 * @since 4.5.0
16 */
17 class ServiceProvider implements ServiceProviderInterface
18 {
19 /**
20 * @since 4.5.0
21 */
22 public function register()
23 {
24 // TODO: Implement register() method.
25 }
26
27 /**
28 * @since 4.5.0
29 */
30 public function boot()
31 {
32 $this->registerWebhookEventHandlers();
33 }
34
35 /**
36 * @since 4.5.0
37 */
38 private function registerWebhookEventHandlers()
39 {
40 add_action('init', function () {
41 $registeredPaymentGatewayIds = give()->gateways->getPaymentGateways();
42 foreach ($registeredPaymentGatewayIds as $gatewayId => $class) {
43 $this->addDonationStatusEventHandlers($gatewayId);
44 $this->addSubscriptionStatusEventHandlers($gatewayId);
45 $this->addSubscriptionFirstDonationEventHandler($gatewayId);
46 $this->addSubscriptionRenewalDonationEventHandler($gatewayId);
47 }
48 }, 999);
49 }
50
51 /**
52 * @since 4.5.0
53 */
54 private function addDonationStatusEventHandlers(string $gatewayId)
55 {
56 foreach (DonationStatus::values() as $status) {
57 if ($eventHandlerClass = (new GetEventHandlerClassByDonationStatus())($status)) {
58 Hooks::addAction(
59 sprintf('givewp_%s_webhook_event_donation_status_%s', $gatewayId, $status->getValue()),
60 $eventHandlerClass, '__invoke', 10, 3
61 );
62 }
63 }
64 }
65
66 /**
67 * @since 4.5.0
68 */
69 private function addSubscriptionStatusEventHandlers(string $gatewayId)
70 {
71 foreach (SubscriptionStatus::values() as $status) {
72 if ($eventHandlerClass = (new GetEventHandlerClassBySubscriptionStatus())($status)) {
73 $parameterCount = $status->isActive() ? 3 : 2;
74 Hooks::addAction(
75 sprintf('givewp_%s_webhook_event_subscription_status_%s', $gatewayId, $status->getValue()),
76 $eventHandlerClass, '__invoke', 10, $parameterCount
77 );
78 }
79 }
80 }
81
82 /**
83 * @since 4.5.0
84 */
85 private function addSubscriptionFirstDonationEventHandler(string $gatewayId)
86 {
87 Hooks::addAction(
88 sprintf('givewp_%s_webhook_event_subscription_first_donation', $gatewayId),
89 SubscriptionFirstDonationCompleted::class, '__invoke', 10, 5
90 );
91 }
92
93 /**
94 * @since 4.5.0
95 */
96 private function addSubscriptionRenewalDonationEventHandler(string $gatewayId)
97 {
98 Hooks::addAction(
99 sprintf('givewp_%s_webhook_event_subscription_renewal_donation', $gatewayId),
100 SubscriptionRenewalDonationCreated::class, '__invoke', 10, 2
101 );
102 }
103 }
104