PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.0
GiveWP – Donation Plugin and Fundraising Platform v2.22.0
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
150 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 esc_url_raw(
120 add_query_arg(
121 ['stripe_account' => 'connected'],
122 $requestedData->formId ?
123 admin_url(
124 "post.php?post=$requestedData->formId&action=edit&give_tab=stripe_form_account_options"
125 ) :
126 admin_url(
127 'edit.php?post_type=give_forms&page=give-settings&tab=gateways&section=stripe-settings'
128 )
129 )
130 )
131 );
132 exit();
133 } catch (\Exception $e) {
134 Give_Admin_Settings::add_error(
135 'give-stripe-account-on-boarding-error',
136 sprintf(
137 '<strong>%1$s</strong> %2$s',
138 esc_html__('Stripe Error:', 'give'),
139 esc_html__(
140 'We are unable to connect your Stripe account. Please contact the support team for assistance.',
141 'give'
142 )
143 )
144 );
145
146 return;
147 }
148 }
149 }
150