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