PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.18.1
GiveWP – Donation Plugin and Fundraising Platform v2.18.1
4.16.4 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
147 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 ]
98 );
99
100 $this->settings->addNewStripeAccount($accountDetailModel);
101
102 if ($requestedData->formId) {
103 if ( ! $this->settings->getDefaultStripeAccountSlugForDonationForm($requestedData->formId)) {
104 $this->settings->setDefaultStripeAccountSlugForDonationForm(
105 $requestedData->formId,
106 $accountDetailModel->accountSlug
107 );
108 }
109
110 give()->form_meta->update_meta(
111 $requestedData->formId,
112 'give_stripe_per_form_accounts',
113 'enabled'
114 );
115 }
116
117 wp_redirect(
118 add_query_arg(
119 ['stripe_account' => 'connected'],
120 $requestedData->formId ?
121 admin_url(
122 "post.php?post=$requestedData->formId&action=edit&give_tab=stripe_form_account_options"
123 ) :
124 admin_url(
125 'edit.php?post_type=give_forms&page=give-settings&tab=gateways&section=stripe-settings'
126 )
127 )
128 );
129 exit();
130 } catch (\Exception $e) {
131 Give_Admin_Settings::add_error(
132 'give-stripe-account-on-boarding-error',
133 sprintf(
134 '<strong>%1$s</strong> %2$s',
135 esc_html__('Stripe Error:', 'give'),
136 esc_html__(
137 'We are unable to connect your Stripe account. Please contact the support team for assistance.',
138 'give'
139 )
140 )
141 );
142
143 return;
144 }
145 }
146 }
147