PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.0
GiveWP – Donation Plugin and Fundraising Platform v2.20.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 / Gateways / Stripe / Actions / GetOrCreateStripeCustomer.php
give / src / PaymentGateways / Gateways / Stripe / Actions Last commit date
CreateCheckoutSession.php 4 years ago CreatePaymentIntent.php 4 years ago GetOrCreateStripeCustomer.php 4 years ago GetPaymentMethodFromRequest.php 4 years ago SaveDonationSummary.php 4 years ago UpdateStripeAccountStatementDescriptor.php 4 years ago ValidatePaymentMethod.php 4 years ago
GetOrCreateStripeCustomer.php
60 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe\Actions;
4
5 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
6 use Give\PaymentGateways\Gateways\Stripe\Exceptions\StripeCustomerException;
7 use Give_Stripe_Customer;
8
9 class GetOrCreateStripeCustomer
10 {
11
12 /**
13 * @since 2.20.0 add second param support to function.
14 * This param is optional because we use it only when donor subscribe for recurring donation.
15 * @since 2.19.0
16 *
17 * @param GatewayPaymentData $stripePaymentMethodId
18 * @param string $stripePaymentMethopdId
19 *
20 * @return Give_Stripe_Customer
21 * @throws StripeCustomerException
22 */
23 public function __invoke(GatewayPaymentData $paymentData, $stripePaymentMethodId = '')
24 {
25 $giveStripeCustomer = new Give_Stripe_Customer($paymentData->donorInfo->email, $stripePaymentMethodId);
26
27 if (!$giveStripeCustomer->get_id()) {
28 throw new StripeCustomerException(__('Unable to find or create stripe customer object.', 'give'));
29 }
30
31 $this->saveStripeCustomerId($paymentData->donationId, $giveStripeCustomer->get_id());
32
33 return $giveStripeCustomer;
34 }
35
36 /**
37 * @since 2.19.0
38 *
39 * @param int $donationId
40 * @param string $stripeCustomerId
41 *
42 * @return void
43 */
44 protected function saveStripeCustomerId($donationId, $stripeCustomerId)
45 {
46 $donor = new \Give_Donor(
47 give_get_payment_donor_id($donationId)
48 );
49
50 $donor->update_meta(give_stripe_get_customer_key(), $stripeCustomerId);
51
52 give_insert_payment_note(
53 $donationId,
54 sprintf(__('Stripe Customer ID: %s', 'give'), $stripeCustomerId)
55 );
56
57 give_update_meta($donationId, give_stripe_get_customer_key(), $stripeCustomerId);
58 }
59 }
60