PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.18.0
GiveWP – Donation Plugin and Fundraising Platform v4.18.0
4.18.0 4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 All 257 releases
give / src / PaymentGateways / Gateways / Stripe / Helpers / CheckoutHelper.php

CheckoutHelper.php in GiveWP – Donation Plugin and Fundraising Platform 4.18.0, at src/PaymentGateways/Gateways/Stripe/Helpers/CheckoutHelper.php

98 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 esc_url_raw(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