Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
give
/
src
/
Admin
/
fields
/
AsyncSelectOption
:
ServiceProvider.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Give\PaymentGateways; use Give\Framework\Migrations\MigrationsRegister; use Give\Framework\PaymentGateways\PaymentGatewayRegister; use Give\Framework\PaymentGateways\Routes\GatewayRoute; use Give\Helpers\Hooks; use Give\LegacyPaymentGateways\Actions\RegisterPaymentGatewaySettingsList; use Give\PaymentGateways\Actions\RegisterPaymentGateways; use Give\PaymentGateways\Gateways\PayPalStandard\Webhooks\WebhookRegister; use Give\PaymentGateways\Gateways\Stripe\CheckoutGateway; use Give\PaymentGateways\Gateways\Stripe\Controllers\UpdateStatementDescriptorAjaxRequestController; use Give\PaymentGateways\Gateways\Stripe\Migrations\AddMissingTransactionIdForUncompletedDonations; use Give\PaymentGateways\Gateways\Stripe\Migrations\AddStatementDescriptorToStripeAccounts; use Give\PaymentGateways\Gateways\Stripe\Migrations\RemovePaymentIntentSecretMeta; use Give\PaymentGateways\Migrations\CopyV2GatewaysSettingsToV3; use Give\PaymentGateways\PayPalCommerce\Banners\GatewaySettingPageBanner; use Give\PaymentGateways\PayPalCommerce\Banners\PayPalStandardToDonationsMigrationGlobalBanner; use Give\PaymentGateways\PayPalCommerce\Migrations\RegisterPayPalDonationsRefreshTokenCronJobByMode; use Give\PaymentGateways\PayPalCommerce\Migrations\RemoveLogWithCardInfo; use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface; /** * Class ServiceProvider - PaymentGateways * * The Service Provider for loading the Payment Gateways for Payment Flow 2.0 * * @since 2.18.0 */ class ServiceProvider implements ServiceProviderInterface { /** * @inheritDoc */ public function register() { give()->singleton(PaymentGatewayRegister::class); give()->singleton(WebhookRegister::class); give()->alias(PaymentGatewayRegister::class, 'gateways'); } /** * @inheritDoc */ public function boot() { $this->registerMigrations(); Hooks::addFilter('give_register_gateway', RegisterPaymentGateways::class); Hooks::addFilter('give_payment_gateways', RegisterPaymentGatewaySettingsList::class); Hooks::addAction('template_redirect', GatewayRoute::class); Hooks::addAction( 'wp_ajax_edit_stripe_account_statement_descriptor', UpdateStatementDescriptorAjaxRequestController::class ); /** * Stripe Checkout Redirect Handler */ Hooks::addAction('wp_footer', CheckoutGateway::class, 'maybeHandleRedirect', 99999); Hooks::addAction('give_embed_footer', CheckoutGateway::class, 'maybeHandleRedirect', 99999); $this->registerPayPalDonationsMigrationBanners(); $this->maybeHidePayPalStandard(); } /** * @since 3.0.0 add CopyV2GatewaysSettingsToV3 migration * @since 2.33.0 add RemovePaymentIntentSecretMeta migration * @since 2.19.6 */ private function registerMigrations() { give(MigrationsRegister::class)->addMigrations([ AddStatementDescriptorToStripeAccounts::class, AddMissingTransactionIdForUncompletedDonations::class, RemoveLogWithCardInfo::class, RemovePaymentIntentSecretMeta::class, RegisterPayPalDonationsRefreshTokenCronJobByMode::class, CopyV2GatewaysSettingsToV3::class, ]); } /** * This method registers the banners. * @since 2.33.0 * @return void */ private function registerPayPalDonationsMigrationBanners() { if (! is_admin()) { return; } // Banner for the migration from PayPal Standard to PayPal Donations. give(GatewaySettingPageBanner::class)->setupHook(); give(PayPalStandardToDonationsMigrationGlobalBanner::class)->setHook(); } /** * @since 4.1.0 */ private function maybeHidePayPalStandard() { if ( ! is_admin()) { return; } $isPayPalStandardConnected = is_email(give_get_option('paypal_email', false)); $alwaysShowPayPalStandardAdminOptions = defined('GIVE_ALWAYS_SHOW_PAYPAL_STANDARD_ADMIN_OPTIONS') && GIVE_ALWAYS_SHOW_PAYPAL_STANDARD_ADMIN_OPTIONS; add_filter('give_settings_payment_gateways_menu_groups', function ($groups) use ($isPayPalStandardConnected, $alwaysShowPayPalStandardAdminOptions) { if ($isPayPalStandardConnected || $alwaysShowPayPalStandardAdminOptions) { return $groups; } if (isset($groups['v2']['gateways']['paypal'])) { unset($groups['v2']['gateways']['paypal']); } if (isset($groups['v3']['gateways']['paypal'])) { unset($groups['v3']['gateways']['paypal']); } return $groups; }, 999 ); add_filter('give_get_groups_paypal', function ($groups) use ($isPayPalStandardConnected, $alwaysShowPayPalStandardAdminOptions) { if ($isPayPalStandardConnected || $alwaysShowPayPalStandardAdminOptions) { return $groups; } if (isset($groups['paypal'])) { unset($groups['paypal']); } return $groups; }, 999 ); } }