PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6
GiveWP – Donation Plugin and Fundraising Platform v4.16.6
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 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 / includes / gateways / actions.php
give / includes / gateways Last commit date
paypal 4 years ago stripe 1 year ago actions.php 1 week ago functions.php 1 month ago offline-donations.php 2 years ago
actions.php
172 lines
1 <?php
2 /**
3 * Gateway Actions
4 *
5 * @package Give
6 * @subpackage Gateways
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.0
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 use Give\Helpers\Form\Utils as FormUtils;
18 use Give\Helpers\Frontend\Shortcode as ShortcodeUtils;
19
20 /**
21 * Processes gateway select on checkout. Only for users without ajax / javascript
22 *
23 * @since 1.0
24 *
25 * @param $data
26 */
27 function give_process_gateway_select( $data ) {
28 if ( isset( $_POST['gateway_submit'] ) ) {
29 wp_redirect( esc_url_raw( add_query_arg( 'payment-mode', $_POST['payment-mode'] ) ) );
30 exit;
31 }
32 }
33
34 add_action( 'give_gateway_select', 'give_process_gateway_select' );
35
36 /**
37 * Loads a payment gateway via AJAX.
38 *
39 * @since 1.0
40 *
41 * @return void
42 */
43 function give_load_ajax_gateway() {
44
45 $post_data = give_clean( $_POST ); // WPCS: input var ok, CSRF ok.
46
47 if (
48 ! isset( $post_data['nonce'] )
49 || ! give_verify_donation_form_nonce( $post_data['nonce'], $post_data['give_form_id'] )
50 ) {
51 Give_Notices::print_frontend_notice( __( 'We\'re unable to recognize your session. Please refresh the screen to try again; otherwise contact your website administrator for assistance.', 'give' ), true, 'error' );
52 exit();
53
54 } elseif ( isset( $post_data['give_payment_mode'] ) ) {
55
56 $form_id_prefix = ! empty( $post_data['give_form_id_prefix'] ) ? $post_data['give_form_id_prefix'] : '';
57
58 $args = array(
59 'id_prefix' => $form_id_prefix,
60 );
61
62 /**
63 * Fire to render donation form.
64 *
65 * @since 1.7
66 */
67 do_action( 'give_donation_form', $post_data['give_form_id'], $args );
68
69 exit();
70 }
71 }
72
73 add_action( 'wp_ajax_give_load_gateway', 'give_load_ajax_gateway' );
74 add_action( 'wp_ajax_nopriv_give_load_gateway', 'give_load_ajax_gateway' );
75
76 /**
77 * Create wp nonce using Ajax call.
78 *
79 * Use give_donation_form_nonce() js fn to create nonce.
80 *
81 * @since 4.16.6 Bail early when the form ID is not a give_forms post or is a Visual Form Builder (v3) form.
82 * @since 2.0
83 *
84 * @return void
85 */
86 function give_donation_form_nonce() {
87 if ( isset( $_POST['give_form_id'] ) ) {
88
89 // Get donation form id.
90 $form_id = is_numeric( $_POST['give_form_id'] ) ? absint( $_POST['give_form_id'] ) : 0;
91
92 if ( ! ShortcodeUtils::isValidForm( $form_id ) ) {
93 wp_send_json_error( [ 'error' => 'give_invalid_donation_form' ], 400 );
94 }
95
96 // Visual Form Builder (v3) forms use route signatures instead of the legacy nonce endpoint.
97 if ( FormUtils::isV3Form( $form_id ) ) {
98 wp_send_json_error( [ 'error' => 'give_unsupported_form_version' ], 400 );
99 }
100
101 // Send nonce json data.
102 wp_send_json_success( wp_create_nonce( "give_donation_form_nonce_{$form_id}" ) );
103 }
104 }
105
106 add_action( 'wp_ajax_give_donation_form_nonce', 'give_donation_form_nonce' );
107 add_action( 'wp_ajax_nopriv_give_donation_form_nonce', 'give_donation_form_nonce' );
108
109
110 /**
111 * Create all nonce of donation form using Ajax call.
112 * Note: only for internal use
113 *
114 * @since 4.16.6 Bail early when the form ID is not a give_forms post.
115 * @since 4.9.0 rename function - PHP 8 compatibility
116 * @since 2.2.0
117 *
118 * @return void
119 */
120 function give_donation_form_reset_all_nonce() {
121 if ( isset( $_POST['give_form_id'] ) ) {
122
123 // Get donation form id.
124 $form_id = is_numeric( $_POST['give_form_id'] ) ? absint( $_POST['give_form_id'] ) : 0;
125
126 if ( ! ShortcodeUtils::isValidForm( $form_id ) ) {
127 wp_send_json_error( [ 'error' => 'give_invalid_donation_form' ], 400 );
128 }
129
130 $data = array(
131 'give_form_hash' => wp_create_nonce( "give_donation_form_nonce_{$form_id}" ),
132 'give_form_user_register_hash' => wp_create_nonce( "give_form_create_user_nonce_{$form_id}" ),
133 );
134
135 /**
136 * Filter the ajax request data
137 *
138 * @since 2.2.0
139 */
140 $data = apply_filters( 'give_donation_form_reset_all_nonce_data', $data );
141
142 // Send nonce json data.
143 wp_send_json_success( $data );
144 }
145
146 wp_send_json_error();
147 }
148
149 add_action( 'wp_ajax_give_donation_form_reset_all_nonce', 'give_donation_form_reset_all_nonce');
150 add_action( 'wp_ajax_nopriv_give_donation_form_reset_all_nonce', 'give_donation_form_reset_all_nonce');
151
152 /**
153 * Sets an error within the donation form if no gateways are enabled.
154 *
155 * @todo: we can deprecate this function in future because gateways will not empty if get via Give API.
156 *
157 * @since 1.0
158 *
159 * @return void
160 */
161 function give_no_gateway_error() {
162 $gateways = give_get_enabled_payment_gateways();
163
164 if ( empty( $gateways ) ) {
165 give_set_error( 'no_gateways', esc_html__( 'You must enable a payment gateway to use Give.', 'give' ) );
166 } else {
167 give_unset_error( 'no_gateways' );
168 }
169 }
170
171 add_action( 'init', 'give_no_gateway_error' );
172