PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.4
GiveWP – Donation Plugin and Fundraising Platform v2.9.4
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 / ServiceProviders / PaymentGateways.php
give / src / ServiceProviders Last commit date
LegacyServiceProvider.php 5 years ago Onboarding.php 5 years ago PaymentGateways.php 5 years ago RestAPI.php 5 years ago Routes.php 5 years ago ServiceProvider.php 5 years ago
PaymentGateways.php
182 lines
1 <?php
2
3 namespace Give\ServiceProviders;
4
5 use Give\Controller\PayPalWebhooks;
6 use Give\Framework\Migrations\MigrationsRegister;
7 use Give\Helpers\Hooks;
8 use Give\PaymentGateways\PaymentGateway;
9 use Give\PaymentGateways\PayPalCommerce\AdvancedCardFields;
10 use Give\PaymentGateways\PayPalCommerce\AjaxRequestHandler;
11 use Give\PaymentGateways\PayPalCommerce\DonationProcessor;
12 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
13 use Give\PaymentGateways\PayPalCommerce\RefreshToken;
14 use Give\PaymentGateways\PayPalCommerce\Repositories\MerchantDetails;
15 use Give\PaymentGateways\PayPalCommerce\Repositories\PayPalAuth;
16 use Give\PaymentGateways\PayPalCommerce\ScriptLoader;
17 use Give\PaymentGateways\PayPalCommerce\onBoardingRedirectHandler;
18 use Give\PaymentGateways\PayPalCommerce\PayPalClient;
19 use Give\PaymentGateways\PayPalCommerce\PayPalCommerce;
20 use Give\PaymentGateways\PayPalCommerce\Repositories\Webhooks;
21 use Give\PaymentGateways\PayPalCommerce\Webhooks\WebhookRegister;
22 use Give\PaymentGateways\PayPalStandard\Migrations\SetPayPalStandardGatewayId;
23 use Give\PaymentGateways\PayPalStandard\PayPalStandard;
24 use Give\PaymentGateways\PaypalSettingPage;
25 use Give\PaymentGateways\Stripe\DonationFormElements;
26
27 /**
28 * Class PaymentGateways
29 *
30 * The Service Provider for loading the Payment Gateways
31 *
32 * @since 2.8.0
33 */
34 class PaymentGateways implements ServiceProvider {
35 /**
36 * Array of PaymentGateway classes to be bootstrapped
37 *
38 * @var string[]
39 */
40 public $gateways = [
41 PayPalStandard::class,
42 PayPalCommerce::class,
43 ];
44
45 /**
46 * Array of SettingPage classes to be bootstrapped
47 *
48 * @var string[]
49 */
50 private $gatewaySettingsPages = [
51 PaypalSettingPage::class,
52 ];
53
54 /**
55 * @inheritDoc
56 */
57 public function register() {
58 give()->bind(
59 'PAYPAL_COMMERCE_ATTRIBUTION_ID',
60 static function() {
61 return 'GiveWP_SP_PCP';
62 }
63 ); // storage
64
65 give()->singleton( PayPalWebhooks::class );
66 give()->singleton( Webhooks::class );
67 give()->singleton( DonationFormElements::class );
68 $this->registerPayPalCommerceClasses();
69 }
70
71 /**
72 * @inheritDoc
73 */
74 public function boot() {
75 add_filter( 'give_register_gateway', [ $this, 'bootGateways' ] );
76 add_action( 'admin_init', [ $this, 'handleSellerOnBoardingRedirect' ] );
77 add_action( 'give-settings_start', [ $this, 'registerPayPalSettingPage' ] );
78 Hooks::addFilter( 'give_form_html_tags', DonationFormElements::class, 'addFormHtmlTags', 99 );
79
80 $this->registerMigrations();
81 }
82
83 /**
84 * Handle seller on boarding redirect.
85 *
86 * @since 2.8.0
87 */
88 public function handleSellerOnBoardingRedirect() {
89 give( onBoardingRedirectHandler::class )->boot();
90 }
91
92 /**
93 * Register all payment gateways setting pages with GiveWP.
94 *
95 * @since 2.8.0
96 */
97 public function registerPayPalSettingPage() {
98 foreach ( $this->gatewaySettingsPages as $page ) {
99 give()->make( $page )->boot();
100 }
101 }
102
103 /**
104 * Registers all of the payment gateways with GiveWP
105 *
106 * @since 2.8.0
107 *
108 * @param array $gateways
109 *
110 * @return array
111 */
112 public function bootGateways( array $gateways ) {
113 foreach ( $this->gateways as $gateway ) {
114 /** @var PaymentGateway $gateway */
115 $gateway = give( $gateway );
116
117 $gateways[ $gateway->getId() ] = [
118 'admin_label' => $gateway->getName(),
119 'checkout_label' => $gateway->getPaymentMethodLabel(),
120 ];
121
122 $gateway->boot();
123 }
124
125 return $gateways;
126 }
127
128 /**
129 * Registers the classes for the PayPal Commerce gateway
130 *
131 * @since 2.8.0
132 */
133 private function registerPayPalCommerceClasses() {
134 give()->singleton( AdvancedCardFields::class );
135 give()->singleton( DonationProcessor::class );
136 give()->singleton( PayPalClient::class );
137 give()->singleton( RefreshToken::class );
138 give()->singleton( AjaxRequestHandler::class );
139 give()->singleton( ScriptLoader::class );
140 give()->singleton( WebhookRegister::class );
141 give()->singleton( Webhooks::class );
142 give()->singleton( MerchantDetails::class );
143 give()->singleton( PayPalAuth::class );
144
145 give()->singleton(
146 MerchantDetail::class,
147 static function () {
148 /** @var MerchantDetails $repository */
149 $repository = give( MerchantDetails::class );
150
151 return $repository->getDetails();
152 }
153 );
154
155 give()->resolving(
156 MerchantDetails::class,
157 static function ( MerchantDetails $details ) {
158 $details->setMode( give_is_test_mode() ? 'sandbox' : 'live' );
159 }
160 );
161
162 give()->resolving(
163 Webhooks::class,
164 static function ( Webhooks $repository ) {
165 $repository->setMode( give_is_test_mode() ? 'sandbox' : 'live' );
166 }
167 );
168 }
169
170 /**
171 * Register migrations
172 *
173 * @since 2.9.1
174 */
175 private function registerMigrations() {
176 /* @var MigrationsRegister $migrationRegisterer */
177 $migrationRegisterer = give( MigrationsRegister::class );
178
179 $migrationRegisterer->addMigration( SetPayPalStandardGatewayId::class );
180 }
181 }
182