PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.23.2
GiveWP – Donation Plugin and Fundraising Platform v2.23.2
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 / CreateCheckoutSession.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
CreateCheckoutSession.php
81 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe\Actions;
4
5 use Give\Donations\Models\Donation;
6 use Give\Donations\Models\DonationNote;
7 use Give\Framework\Exceptions\Primitives\Exception;
8 use Give\Framework\PaymentGateways\DonationSummary;
9 use Give\PaymentGateways\Exceptions\InvalidPropertyName;
10 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\CheckoutSession;
11 use Give_Stripe_Customer;
12
13 /**
14 * @since 2.19.0
15 */
16 class CreateCheckoutSession
17 {
18 /**
19 * @since 2.20.0 Update function to get input value to line_items[0][name]
20 * @since 2.19.0
21 *
22 * @return CheckoutSession
23 * @throws InvalidPropertyName
24 * @throws Exception
25 */
26 public function __invoke(
27 Donation $donation,
28 DonationSummary $donationSummary,
29 Give_Stripe_Customer $giveStripeCustomer
30 ) {
31 $session_args = [
32 'customer' => $giveStripeCustomer->get_id(),
33 'client_reference_id' => $donation->purchaseKey,
34 'payment_method_types' => ['card'],
35 'billing_address_collection' => give_is_setting_enabled(
36 give_get_option('stripe_collect_billing')
37 ) ? 'required' : 'auto',
38 'mode' => 'payment',
39 'line_items' => [
40 [
41 'name' => Donation::find($donation->id)->formTitle,
42 'description' => $donationSummary->getSummaryWithDonor(),
43 'amount' => $donation->amount->formatToMinorAmount(),
44 'currency' => $donation->amount->getCurrency(),
45 'quantity' => 1,
46 ],
47 ],
48 'payment_intent_data' => [
49 'capture_method' => 'automatic',
50 'description' => $donationSummary->getSummaryWithDonor(),
51 'metadata' => give_stripe_prepare_metadata($donation->id),
52 'statement_descriptor' => give_stripe_get_statement_descriptor(),
53 ],
54 'submit_type' => 'donate',
55 'success_url' => give_get_success_page_uri(),
56 'cancel_url' => give_get_failed_transaction_uri(),
57 'locale' => give_stripe_get_preferred_locale(),
58 ];
59
60 if ($formThumbnail = get_the_post_thumbnail($donation->formId)) {
61 $session_args['line_items'][0]['images'] = [$formThumbnail];
62 }
63
64 $session = give(CheckoutSession::class)->create($session_args);
65
66 DonationNote::create([
67 'donationId' => $donation->id,
68 'content' => sprintf(
69 /* translators: 1: Stripe checkout payment method session id */
70 esc_html__( 'Stripe Checkout Session ID: %s', 'give'),
71 $session->id()
72 )
73 ]);
74
75 $donation->gatewayTransactionId = $session->id();
76 $donation->save();
77
78 return $session;
79 }
80 }
81