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 / 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
77 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe\Actions;
4
5 use Give\Donations\Models\Donation;
6 use Give\Framework\PaymentGateways\DonationSummary;
7 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
8 use Give\PaymentGateways\Exceptions\InvalidPropertyName;
9 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\CheckoutSession;
10 use Give\ValueObjects\Money;
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 * @param GatewayPaymentData $paymentData
23 * @param DonationSummary $donationSummary
24 * @param Give_Stripe_Customer $giveStripeCustomer
25 *
26 * @return CheckoutSession
27 * @throws InvalidPropertyName
28 */
29 public function __invoke(
30 GatewayPaymentData $paymentData,
31 DonationSummary $donationSummary,
32 Give_Stripe_Customer $giveStripeCustomer
33 ) {
34 $session_args = [
35 'customer' => $giveStripeCustomer->get_id(),
36 'client_reference_id' => $paymentData->purchaseKey,
37 'payment_method_types' => ['card'],
38 'billing_address_collection' => give_is_setting_enabled(
39 give_get_option('stripe_collect_billing')
40 ) ? 'required' : 'auto',
41 'mode' => 'payment',
42 'line_items' => [
43 [
44 'name' => Donation::find($paymentData->donationId)->formTitle,
45 'description' => $donationSummary->getSummaryWithDonor(),
46 'amount' => Money::of($paymentData->price, $paymentData->currency)->getMinorAmount(),
47 'currency' => $paymentData->currency,
48 'quantity' => 1,
49 ],
50 ],
51 'payment_intent_data' => [
52 'capture_method' => 'automatic',
53 'description' => $donationSummary->getSummaryWithDonor(),
54 'metadata' => give_stripe_prepare_metadata($paymentData->donationId),
55 'statement_descriptor' => give_stripe_get_statement_descriptor(),
56 ],
57 'submit_type' => 'donate',
58 'success_url' => give_get_success_page_uri(),
59 'cancel_url' => give_get_failed_transaction_uri(),
60 'locale' => give_stripe_get_preferred_locale(),
61 ];
62
63 // If featured image exists, then add it to checkout session.
64 $formId = give_get_payment_form_id($paymentData->donationId);
65 if (!empty(get_the_post_thumbnail($formId))) {
66 $session_args['line_items'][0]['images'] = [get_the_post_thumbnail_url($formId)];
67 }
68
69 $session = give(CheckoutSession::class)->create($session_args);
70
71 give_insert_payment_note($paymentData->donationId, 'Stripe Checkout Session ID: ' . $session->id());
72 give_set_payment_transaction_id($paymentData->donationId, $session->id());
73
74 return $session;
75 }
76 }
77