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