PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 / ServiceProvider.php
give / src / PaymentGateways Last commit date
Actions 1 year ago DataTransferObjects 1 year ago Exceptions 4 years ago Gateways 1 month ago Migrations 2 years ago PayPalCommerce 3 months ago Stripe 11 months ago resources 4 months ago PaymentGateway.php 4 years ago PaypalSettingPage.php 3 years ago ServiceProvider.php 1 year ago SettingPage.php 4 years ago
ServiceProvider.php
150 lines
1 <?php
2
3 namespace Give\PaymentGateways;
4
5 use Give\Framework\Migrations\MigrationsRegister;
6 use Give\Framework\PaymentGateways\PaymentGatewayRegister;
7 use Give\Framework\PaymentGateways\Routes\GatewayRoute;
8 use Give\Helpers\Hooks;
9 use Give\LegacyPaymentGateways\Actions\RegisterPaymentGatewaySettingsList;
10 use Give\PaymentGateways\Actions\RegisterPaymentGateways;
11 use Give\PaymentGateways\Gateways\PayPalStandard\Webhooks\WebhookRegister;
12 use Give\PaymentGateways\Gateways\Stripe\CheckoutGateway;
13 use Give\PaymentGateways\Gateways\Stripe\Controllers\UpdateStatementDescriptorAjaxRequestController;
14 use Give\PaymentGateways\Gateways\Stripe\Migrations\AddMissingTransactionIdForUncompletedDonations;
15 use Give\PaymentGateways\Gateways\Stripe\Migrations\AddStatementDescriptorToStripeAccounts;
16 use Give\PaymentGateways\Gateways\Stripe\Migrations\RemovePaymentIntentSecretMeta;
17 use Give\PaymentGateways\Migrations\CopyV2GatewaysSettingsToV3;
18 use Give\PaymentGateways\PayPalCommerce\Banners\GatewaySettingPageBanner;
19 use Give\PaymentGateways\PayPalCommerce\Banners\PayPalStandardToDonationsMigrationGlobalBanner;
20 use Give\PaymentGateways\PayPalCommerce\Migrations\RegisterPayPalDonationsRefreshTokenCronJobByMode;
21 use Give\PaymentGateways\PayPalCommerce\Migrations\RemoveLogWithCardInfo;
22 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
23
24 /**
25 * Class ServiceProvider - PaymentGateways
26 *
27 * The Service Provider for loading the Payment Gateways for Payment Flow 2.0
28 *
29 * @since 2.18.0
30 */
31 class ServiceProvider implements ServiceProviderInterface
32 {
33 /**
34 * @inheritDoc
35 */
36 public function register()
37 {
38 give()->singleton(PaymentGatewayRegister::class);
39 give()->singleton(WebhookRegister::class);
40 give()->alias(PaymentGatewayRegister::class, 'gateways');
41 }
42
43 /**
44 * @inheritDoc
45 */
46 public function boot()
47 {
48 $this->registerMigrations();
49
50 Hooks::addFilter('give_register_gateway', RegisterPaymentGateways::class);
51 Hooks::addFilter('give_payment_gateways', RegisterPaymentGatewaySettingsList::class);
52
53 Hooks::addAction('template_redirect', GatewayRoute::class);
54 Hooks::addAction(
55 'wp_ajax_edit_stripe_account_statement_descriptor',
56 UpdateStatementDescriptorAjaxRequestController::class
57 );
58
59 /**
60 * Stripe Checkout Redirect Handler
61 */
62 Hooks::addAction('wp_footer', CheckoutGateway::class, 'maybeHandleRedirect', 99999);
63 Hooks::addAction('give_embed_footer', CheckoutGateway::class, 'maybeHandleRedirect', 99999);
64
65 $this->registerPayPalDonationsMigrationBanners();
66 $this->maybeHidePayPalStandard();
67 }
68
69 /**
70 * @since 3.0.0 add CopyV2GatewaysSettingsToV3 migration
71 * @since 2.33.0 add RemovePaymentIntentSecretMeta migration
72 * @since 2.19.6
73 */
74 private function registerMigrations()
75 {
76 give(MigrationsRegister::class)->addMigrations([
77 AddStatementDescriptorToStripeAccounts::class,
78 AddMissingTransactionIdForUncompletedDonations::class,
79 RemoveLogWithCardInfo::class,
80 RemovePaymentIntentSecretMeta::class,
81 RegisterPayPalDonationsRefreshTokenCronJobByMode::class,
82 CopyV2GatewaysSettingsToV3::class,
83 ]);
84 }
85
86 /**
87 * This method registers the banners.
88 * @since 2.33.0
89 * @return void
90 */
91 private function registerPayPalDonationsMigrationBanners()
92 {
93 if (! is_admin()) {
94 return;
95 }
96
97 // Banner for the migration from PayPal Standard to PayPal Donations.
98 give(GatewaySettingPageBanner::class)->setupHook();
99 give(PayPalStandardToDonationsMigrationGlobalBanner::class)->setHook();
100 }
101
102 /**
103 * @since 4.1.0
104 */
105 private function maybeHidePayPalStandard()
106 {
107 if ( ! is_admin()) {
108 return;
109 }
110
111 $isPayPalStandardConnected = is_email(give_get_option('paypal_email', false));
112 $alwaysShowPayPalStandardAdminOptions = defined('GIVE_ALWAYS_SHOW_PAYPAL_STANDARD_ADMIN_OPTIONS') && GIVE_ALWAYS_SHOW_PAYPAL_STANDARD_ADMIN_OPTIONS;
113
114
115 add_filter('give_settings_payment_gateways_menu_groups',
116 function ($groups) use ($isPayPalStandardConnected, $alwaysShowPayPalStandardAdminOptions) {
117 if ($isPayPalStandardConnected || $alwaysShowPayPalStandardAdminOptions) {
118 return $groups;
119 }
120
121 if (isset($groups['v2']['gateways']['paypal'])) {
122 unset($groups['v2']['gateways']['paypal']);
123 }
124
125 if (isset($groups['v3']['gateways']['paypal'])) {
126 unset($groups['v3']['gateways']['paypal']);
127 }
128
129 return $groups;
130 },
131 999
132 );
133
134 add_filter('give_get_groups_paypal',
135 function ($groups) use ($isPayPalStandardConnected, $alwaysShowPayPalStandardAdminOptions) {
136 if ($isPayPalStandardConnected || $alwaysShowPayPalStandardAdminOptions) {
137 return $groups;
138 }
139
140 if (isset($groups['paypal'])) {
141 unset($groups['paypal']);
142 }
143
144 return $groups;
145 },
146 999
147 );
148 }
149 }
150