PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.7 4.16.6.1 4.16.6 4.16.5.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 / PaymentGateways / Gateways / ServiceProvider.php
give / src / PaymentGateways / Gateways Last commit date
Offline 1 year ago PayPalCommerce 1 year ago PayPalStandard 1 week ago Stripe 3 days ago TestGateway 1 year ago TestOffsiteGateway 2 years ago ServiceProvider.php 3 days ago
ServiceProvider.php
178 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways;
4
5 use Give\Framework\Exceptions\Primitives\Exception;
6 use Give\Framework\PaymentGateways\Exceptions\OverflowException;
7 use Give\Framework\PaymentGateways\PaymentGatewayRegister;
8 use Give\Framework\Support\Scripts\Concerns\HasScriptAssetFile;
9 use Give\Helpers\Hooks;
10 use Give\Log\Log;
11 use Give\PaymentGateways\Gateways\Offline\Actions\DisableGatewayWhenDisabledPerForm;
12 use Give\PaymentGateways\Gateways\Offline\Actions\EnqueueOfflineFormBuilderScripts;
13 use Give\PaymentGateways\Gateways\Offline\Actions\UpdateOfflineMetaFromFormBuilder;
14 use Give\PaymentGateways\Gateways\PayPalCommerce\PayPalCommerceGateway;
15 use Give\PaymentGateways\Gateways\Stripe\Actions\AddExtraMetadataToPaymentIntent;
16 use Give\PaymentGateways\Gateways\Stripe\LegacyStripeAdapter;
17 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Actions\AddStripeAttributesToNewForms;
18 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Actions\EnqueueStripeFormBuilderScripts;
19 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Actions\UpdateStripeFormBuilderSettingsMeta;
20 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\StripePaymentElementGateway;
21 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\ChargeRefunded;
22 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\CustomerSubscriptionCreated;
23 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\CustomerSubscriptionDeleted;
24 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\CustomerSubscriptionResumed;
25 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\CustomerSubscriptionUpdated;
26 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\InvoicePaymentFailed;
27 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\InvoicePaymentSucceeded;
28 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\PaymentIntentPaymentFailed;
29 use Give\PaymentGateways\Gateways\Stripe\StripePaymentElementGateway\Webhooks\Listeners\PaymentIntentSucceeded;
30 use Give\PaymentGateways\Gateways\TestGateway\TestGateway;
31 use Give\PaymentGateways\Gateways\TestOffsiteGateway\TestOffsiteGateway;
32 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
33
34 class ServiceProvider implements ServiceProviderInterface
35 {
36 use HasScriptAssetFile;
37
38 /**
39 * @since 3.0.0
40 */
41 public function register()
42 {
43 //
44 }
45
46 /**
47 * @since 3.0.0
48 */
49 public function boot()
50 {
51 try {
52 $this->registerGateways();
53 } catch (Exception $e) {
54 Log::error('Error Registering Gateways', [
55 'message' => $e->getMessage()
56 ]);
57 }
58 }
59
60 /**
61 * @since 3.0.0
62 *
63 * @throws Exception
64 * @throws OverflowException
65 */
66 private function registerGateways()
67 {
68 add_action('givewp_register_payment_gateway', static function (PaymentGatewayRegister $registrar) {
69 // Enable as needed for testing but do not push to production
70 // $registrar->registerGateway(TestOffsiteGateway::class);
71
72 $registrar->registerGateway(StripePaymentElementGateway::class);
73
74 $registrar->registerGateway(PayPalCommerceGateway::class);
75 });
76
77 $this->addLegacyStripeAdapter();
78 $this->addStripeWebhookListeners();
79 $this->addStripeFormBuilderHooks();
80 $this->addStripeTransactionMetadata();
81 $this->bootOfflineDonations();
82 }
83
84 /**
85 * @since 4.16.7
86 */
87 private function addStripeTransactionMetadata()
88 {
89 Hooks::addFilter('give_stripe_prepare_metadata', AddExtraMetadataToPaymentIntent::class, '__invoke', 10, 2);
90 }
91
92 /**
93 * @since 3.0.0
94 */
95 private function addStripeWebhookListeners()
96 {
97 Hooks::addAction(
98 'give_stripe_processing_payment_intent_succeeded',
99 PaymentIntentSucceeded::class
100 );
101
102 Hooks::addAction(
103 'give_stripe_processing_payment_intent_failed',
104 PaymentIntentPaymentFailed::class
105 );
106
107 Hooks::addAction(
108 'give_stripe_processing_charge_refunded',
109 ChargeRefunded::class
110 );
111
112 Hooks::addAction(
113 'give_recurring_stripe_processing_invoice_payment_succeeded',
114 InvoicePaymentSucceeded::class
115 );
116
117 Hooks::addAction(
118 'give_recurring_stripe_processing_invoice_payment_failed',
119 InvoicePaymentFailed::class
120 );
121
122 Hooks::addAction(
123 'give_recurring_stripe_processing_customer_subscription_created',
124 CustomerSubscriptionCreated::class
125 );
126
127 Hooks::addAction(
128 'give_recurring_stripe_processing_customer_subscription_deleted',
129 CustomerSubscriptionDeleted::class
130 );
131
132 Hooks::addAction(
133 'give_recurring_stripe_processing_customer_subscription_updated',
134 CustomerSubscriptionUpdated::class
135 );
136
137 Hooks::addAction(
138 'give_recurring_stripe_processing_customer_subscription_resumed',
139 CustomerSubscriptionResumed::class
140 );
141 }
142
143 /**
144 * @since 3.0.0
145 */
146 private function addLegacyStripeAdapter()
147 {
148 /** @var LegacyStripeAdapter $legacyStripeAdapter */
149 $legacyStripeAdapter = give(LegacyStripeAdapter::class);
150
151 $legacyStripeAdapter->addDonationDetails();
152 $legacyStripeAdapter->loadLegacyStripeWebhooksAndFilters();
153 }
154
155 /**
156 * @since 3.0.0
157 */
158 private function addStripeFormBuilderHooks()
159 {
160 Hooks::addAction('givewp_form_builder_enqueue_scripts', EnqueueStripeFormBuilderScripts::class);
161 Hooks::addAction('givewp_form_builder_new_form', AddStripeAttributesToNewForms::class);
162 Hooks::addAction('givewp_form_builder_updated', UpdateStripeFormBuilderSettingsMeta::class);
163 }
164
165 private function bootOfflineDonations()
166 {
167 Hooks::addAction('givewp_form_builder_enqueue_scripts', EnqueueOfflineFormBuilderScripts::class);
168 Hooks::addAction('givewp_form_builder_updated', UpdateOfflineMetaFromFormBuilder::class);
169 Hooks::addFilter(
170 'givewp_donation_form_enabled_gateways',
171 DisableGatewayWhenDisabledPerForm::class,
172 '__invoke',
173 10,
174 2
175 );
176 }
177 }
178