PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.8
GiveWP – Donation Plugin and Fundraising Platform v2.19.8
4.16.3 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 / Stripe / Controllers / NewStripeAccountOnBoardingController.php
give / src / PaymentGateways / Stripe / Controllers Last commit date
DisconnectStripeAccountController.php 4 years ago GetStripeAccountDetailsController.php 4 years ago NewStripeAccountOnBoardingController.php 4 years ago SetDefaultStripeAccountController.php 4 years ago
NewStripeAccountOnBoardingController.php
148 lines
1 <?php
2
3 namespace Give\PaymentGateways\Stripe\Controllers;
4
5 use Give\PaymentGateways\Stripe\DataTransferObjects\NewStripeAccountOnBoardingDto;
6 use Give\PaymentGateways\Stripe\Models\AccountDetail as AccountDetailModel;
7 use Give\PaymentGateways\Stripe\Repositories\Settings;
8 use Give_Admin_Settings;
9 use Stripe\Stripe;
10
11 /**
12 * Class NewStripeAccountOnBoardingController
13 * @package Give\PaymentGateways\Stripe\Controllers
14 *
15 * @since 2.13.0
16 */
17 class NewStripeAccountOnBoardingController
18 {
19 /**
20 * @var Settings
21 */
22 private $settings;
23
24 /**
25 * @param Settings $settings
26 */
27 public function __construct(Settings $settings)
28 {
29 $this->settings = $settings;
30 }
31
32 /**
33 * @since 2.13.0
34 */
35 public function __invoke()
36 {
37 if ( ! current_user_can('manage_give_settings')) {
38 return;
39 }
40
41 $requestedData = NewStripeAccountOnBoardingDto::fromArray(give_clean($_GET));
42
43 if ( ! $requestedData->hasValidateData()) {
44 return;
45 }
46
47 $stripe_accounts = give_stripe_get_all_accounts();
48 $secret_key = ! give_is_test_mode() ? $requestedData->stripeAccessToken : $requestedData->stripeAccessTokenTest;
49
50 Stripe::setApiKey($secret_key);
51
52 // Get Account Details.
53 $account_details = give_stripe_get_account_details($requestedData->stripeUserId);
54
55 // Setup Account Details for Connected Stripe Accounts.
56 if (empty($account_details->id)) {
57 Give_Admin_Settings::add_error(
58 'give-stripe-account-id-fetching-error',
59 sprintf(
60 '<strong>%1$s</strong> %2$s',
61 esc_html__('Stripe Error:', 'give'),
62 esc_html__(
63 'We are unable to connect your Stripe account. Please contact the support team for assistance.',
64 'give'
65 )
66 )
67 );
68
69 return;
70 }
71
72 $account_name = ! empty($account_details->business_profile->name) ?
73 $account_details->business_profile->name :
74 $account_details->settings->dashboard->display_name;
75 $account_slug = $account_details->id;
76 $account_email = $account_details->email;
77 $account_country = $account_details->country;
78
79 // Set first Stripe account as default.
80 if ( ! $stripe_accounts) {
81 give_update_option('_give_stripe_default_account', $account_slug);
82 }
83
84 try {
85 $accountDetailModel = AccountDetailModel::fromArray(
86 [
87 'type' => 'connect',
88 'account_name' => $account_name,
89 'account_slug' => $account_slug,
90 'account_email' => $account_email,
91 'account_country' => $account_country,
92 'account_id' => $requestedData->stripeUserId,
93 'live_secret_key' => $requestedData->stripeAccessToken,
94 'test_secret_key' => $requestedData->stripeAccessTokenTest,
95 'live_publishable_key' => $requestedData->stripePublishableKey,
96 'test_publishable_key' => $requestedData->stripePublishableKeyTest,
97 'statement_descriptor' => $account_details->settings->payments->statement_descriptor,
98 ]
99 );
100
101 $this->settings->addNewStripeAccount($accountDetailModel);
102
103 if ($requestedData->formId) {
104 if ( ! Settings::getDefaultStripeAccountSlugForDonationForm($requestedData->formId)) {
105 Settings::setDefaultStripeAccountSlugForDonationForm(
106 $requestedData->formId,
107 $accountDetailModel->accountSlug
108 );
109 }
110
111 give()->form_meta->update_meta(
112 $requestedData->formId,
113 'give_stripe_per_form_accounts',
114 'enabled'
115 );
116 }
117
118 wp_redirect(
119 add_query_arg(
120 ['stripe_account' => 'connected'],
121 $requestedData->formId ?
122 admin_url(
123 "post.php?post=$requestedData->formId&action=edit&give_tab=stripe_form_account_options"
124 ) :
125 admin_url(
126 'edit.php?post_type=give_forms&page=give-settings&tab=gateways&section=stripe-settings'
127 )
128 )
129 );
130 exit();
131 } catch (\Exception $e) {
132 Give_Admin_Settings::add_error(
133 'give-stripe-account-on-boarding-error',
134 sprintf(
135 '<strong>%1$s</strong> %2$s',
136 esc_html__('Stripe Error:', 'give'),
137 esc_html__(
138 'We are unable to connect your Stripe account. Please contact the support team for assistance.',
139 'give'
140 )
141 )
142 );
143
144 return;
145 }
146 }
147 }
148