PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.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 / 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
156 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 $this->addLegacyStripeAdapter();
75 $this->addStripeWebhookListeners();
76 $this->addStripeFormBuilderHooks();
77 $this->bootOfflineDonations();
78 }
79
80 /**
81 * @since 3.0.0
82 */
83 private function addStripeWebhookListeners()
84 {
85 Hooks::addAction(
86 'give_stripe_processing_payment_intent_succeeded',
87 PaymentIntentSucceeded::class
88 );
89
90 Hooks::addAction(
91 'give_stripe_processing_payment_intent_failed',
92 PaymentIntentPaymentFailed::class
93 );
94
95 Hooks::addAction(
96 'give_stripe_processing_charge_refunded',
97 ChargeRefunded::class
98 );
99
100 Hooks::addAction(
101 'give_recurring_stripe_processing_invoice_payment_succeeded',
102 InvoicePaymentSucceeded::class
103 );
104
105 Hooks::addAction(
106 'give_recurring_stripe_processing_invoice_payment_failed',
107 InvoicePaymentFailed::class
108 );
109
110 Hooks::addAction(
111 'give_recurring_stripe_processing_customer_subscription_created',
112 CustomerSubscriptionCreated::class
113 );
114
115 Hooks::addAction(
116 'give_recurring_stripe_processing_customer_subscription_deleted',
117 CustomerSubscriptionDeleted::class
118 );
119 }
120
121 /**
122 * @since 3.0.0
123 */
124 private function addLegacyStripeAdapter()
125 {
126 /** @var LegacyStripeAdapter $legacyStripeAdapter */
127 $legacyStripeAdapter = give(LegacyStripeAdapter::class);
128
129 $legacyStripeAdapter->addDonationDetails();
130 $legacyStripeAdapter->loadLegacyStripeWebhooksAndFilters();
131 }
132
133 /**
134 * @since 3.0.0
135 */
136 private function addStripeFormBuilderHooks()
137 {
138 Hooks::addAction('givewp_form_builder_enqueue_scripts', EnqueueStripeFormBuilderScripts::class);
139 Hooks::addAction('givewp_form_builder_new_form', AddStripeAttributesToNewForms::class);
140 Hooks::addAction('givewp_form_builder_updated', UpdateStripeFormBuilderSettingsMeta::class);
141 }
142
143 private function bootOfflineDonations()
144 {
145 Hooks::addAction('givewp_form_builder_enqueue_scripts', EnqueueOfflineFormBuilderScripts::class);
146 Hooks::addAction('givewp_form_builder_updated', UpdateOfflineMetaFromFormBuilder::class);
147 Hooks::addFilter(
148 'givewp_donation_form_enabled_gateways',
149 DisableGatewayWhenDisabledPerForm::class,
150 '__invoke',
151 10,
152 2
153 );
154 }
155 }
156