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 / Helpers / CheckoutHelper.php
give / src / PaymentGateways / Gateways / Stripe / Helpers Last commit date
CheckoutHelper.php 4 years ago
CheckoutHelper.php
98 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe\Helpers;
4
5 /**
6 * @since 2.19.0
7 * @TODO We should eventually migrate this client-side redirect to a server-side redirect using the url property of the session.
8 */
9 class CheckoutHelper
10 {
11 /**
12 * @since 2.19.0
13 * @param $sessionId
14 * @param $formId
15 * @return string
16 */
17 public function getRedirectUrl( $sessionId, $formId )
18 {
19 return add_query_arg(
20 [
21 'action' => 'checkout_processing',
22 'session' => $sessionId,
23 'id' => $formId,
24 ],
25 site_url()
26 );
27 }
28
29 /**
30 * @since 2.5.5
31 * @since 2.19.0 Migrated from the legacy Give_Stripe_Checkout::redirect_to_checkout implementation of the Stripe Checkout Gateway.
32 * @return void
33 */
34 public function maybeHandleRedirect()
35 {
36 $get_data = give_clean( $_GET );
37 $form_id = ! empty( $get_data['id'] ) ? absint( $get_data['id'] ) : false;
38 $publishable_key = give_stripe_get_publishable_key( $form_id );
39 $session_id = ! empty( $get_data['session'] ) ? $get_data['session'] : false;
40 $action = ! empty( $get_data['action'] ) ? $get_data['action'] : false;
41 $default_account = give_stripe_get_default_account( $form_id );
42 $stripe_account_id = give_stripe_get_connected_account_id( $form_id );
43
44 // Bailout, if action is not checkout processing.
45 if ( 'checkout_processing' !== $action ) {
46 return;
47 }
48
49 // Bailout, if session id doesn't exists.
50 if ( ! $session_id ) {
51 return;
52 }
53 ?>
54 <div id="give-stripe-checkout-processing"></div>
55 <script>
56 // Show Processing Donation Overlay.
57 const processingHtml = document.querySelector( '#give-stripe-checkout-processing');
58
59 processingHtml.setAttribute( 'class', 'stripe-checkout-process' );
60 processingHtml.style.background = '#FFFFFF';
61 processingHtml.style.opacity = '0.9';
62 processingHtml.style.position = 'fixed';
63 processingHtml.style.top = '0';
64 processingHtml.style.left = '0';
65 processingHtml.style.bottom = '0';
66 processingHtml.style.right = '0';
67 processingHtml.style.zIndex = '2147483646';
68 processingHtml.innerHTML = '<div class="give-stripe-checkout-processing-container" style="position: absolute;top: 50%;left: 50%;width: 300px; margin-left: -150px; text-align:center;"><div style="display:inline-block;"><span class="give-loading-animation" style="color: #333;height:26px;width:26px;font-size:26px; margin:0; "></span><span style="color:#000; font-size: 26px; margin:0 0 0 10px;">' + give_stripe_vars.checkout_processing_text + '</span></div></div>';
69
70 window.addEventListener('load', function() {
71 let stripe = {};
72
73 stripe = Stripe( '<?php echo $publishable_key; ?>' );
74
75 <?php if ( ! empty( $stripe_account_id ) ) { ?>
76 stripe = Stripe( '<?php echo $publishable_key; ?>', {
77 'stripeAccount': '<?php echo $stripe_account_id; ?>'
78 } );
79 <?php } ?>
80
81 // Redirect donor to Checkout page.
82 stripe.redirectToCheckout({
83 // Make the id field from the Checkout Session creation API response
84 // available to this file, so you can provide it as parameter here
85 // instead of the {{CHECKOUT_SESSION_ID}} placeholder.
86 sessionId: '<?php echo $session_id; ?>'
87 }).then( ( result ) => {
88 console.log(result);
89 // If `redirectToCheckout` fails due to a browser or network
90 // error, display the localized error message to your customer
91 // using `result.error.message`.
92 });
93 })
94 </script>
95 <?php
96 }
97 }
98