PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.8
GiveWP – Donation Plugin and Fundraising Platform v4.16.8
4.16.8 4.16.7.2 4.16.7.1 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 week ago PayPalStandard 3 weeks ago Stripe 2 weeks ago TestGateway 1 year ago TestOffsiteGateway 2 years ago ServiceProvider.php 2 days ago
ServiceProvider.php
182 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 4.16.8 register TestOffsiteGateway when GIVEWP_ENABLE_TEST_OFFSITE_GATEWAY is set
62 * @since 3.0.0
63 *
64 * @throws Exception
65 * @throws OverflowException
66 */
67 private function registerGateways()
68 {
69 add_action('givewp_register_payment_gateway', static function (PaymentGatewayRegister $registrar) {
70 // Not for production: it completes donations without charging anyone. The e2e suite turns it
71 // on through .wp-env.json to walk an offsite redirect end to end.
72 if (defined('GIVEWP_ENABLE_TEST_OFFSITE_GATEWAY') && GIVEWP_ENABLE_TEST_OFFSITE_GATEWAY) {
73 $registrar->registerGateway(TestOffsiteGateway::class);
74 }
75
76 $registrar->registerGateway(StripePaymentElementGateway::class);
77
78 $registrar->registerGateway(PayPalCommerceGateway::class);
79 });
80
81 $this->addLegacyStripeAdapter();
82 $this->addStripeWebhookListeners();
83 $this->addStripeFormBuilderHooks();
84 $this->addStripeTransactionMetadata();
85 $this->bootOfflineDonations();
86 }
87
88 /**
89 * @since 4.16.7
90 */
91 private function addStripeTransactionMetadata()
92 {
93 Hooks::addFilter('give_stripe_prepare_metadata', AddExtraMetadataToPaymentIntent::class, '__invoke', 10, 2);
94 }
95
96 /**
97 * @since 3.0.0
98 */
99 private function addStripeWebhookListeners()
100 {
101 Hooks::addAction(
102 'give_stripe_processing_payment_intent_succeeded',
103 PaymentIntentSucceeded::class
104 );
105
106 Hooks::addAction(
107 'give_stripe_processing_payment_intent_failed',
108 PaymentIntentPaymentFailed::class
109 );
110
111 Hooks::addAction(
112 'give_stripe_processing_charge_refunded',
113 ChargeRefunded::class
114 );
115
116 Hooks::addAction(
117 'give_recurring_stripe_processing_invoice_payment_succeeded',
118 InvoicePaymentSucceeded::class
119 );
120
121 Hooks::addAction(
122 'give_recurring_stripe_processing_invoice_payment_failed',
123 InvoicePaymentFailed::class
124 );
125
126 Hooks::addAction(
127 'give_recurring_stripe_processing_customer_subscription_created',
128 CustomerSubscriptionCreated::class
129 );
130
131 Hooks::addAction(
132 'give_recurring_stripe_processing_customer_subscription_deleted',
133 CustomerSubscriptionDeleted::class
134 );
135
136 Hooks::addAction(
137 'give_recurring_stripe_processing_customer_subscription_updated',
138 CustomerSubscriptionUpdated::class
139 );
140
141 Hooks::addAction(
142 'give_recurring_stripe_processing_customer_subscription_resumed',
143 CustomerSubscriptionResumed::class
144 );
145 }
146
147 /**
148 * @since 3.0.0
149 */
150 private function addLegacyStripeAdapter()
151 {
152 /** @var LegacyStripeAdapter $legacyStripeAdapter */
153 $legacyStripeAdapter = give(LegacyStripeAdapter::class);
154
155 $legacyStripeAdapter->addDonationDetails();
156 $legacyStripeAdapter->loadLegacyStripeWebhooksAndFilters();
157 }
158
159 /**
160 * @since 3.0.0
161 */
162 private function addStripeFormBuilderHooks()
163 {
164 Hooks::addAction('givewp_form_builder_enqueue_scripts', EnqueueStripeFormBuilderScripts::class);
165 Hooks::addAction('givewp_form_builder_new_form', AddStripeAttributesToNewForms::class);
166 Hooks::addAction('givewp_form_builder_updated', UpdateStripeFormBuilderSettingsMeta::class);
167 }
168
169 private function bootOfflineDonations()
170 {
171 Hooks::addAction('givewp_form_builder_enqueue_scripts', EnqueueOfflineFormBuilderScripts::class);
172 Hooks::addAction('givewp_form_builder_updated', UpdateOfflineMetaFromFormBuilder::class);
173 Hooks::addFilter(
174 'givewp_donation_form_enabled_gateways',
175 DisableGatewayWhenDisabledPerForm::class,
176 '__invoke',
177 10,
178 2
179 );
180 }
181 }
182