PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.15.1
GiveWP – Donation Plugin and Fundraising Platform v4.15.1
4.16.5 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 / ServiceProvider.php
give / src / Framework / PaymentGateways Last commit date
Actions 2 years ago CommandHandlers 2 years ago Commands 2 years ago Contracts 1 year 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 1 year ago DonationSummary.php 3 years ago PaymentGateway.php 10 months ago PaymentGatewayRegister.php 3 years ago ServiceProvider.php 1 year 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