PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 9 months ago functions.php 2 years ago offline-donations.php 2 years ago
actions.php
154 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 /**
18 * Processes gateway select on checkout. Only for users without ajax / javascript
19 *
20 * @since 1.0
21 *
22 * @param $data
23 */
24 function give_process_gateway_select( $data ) {
25 if ( isset( $_POST['gateway_submit'] ) ) {
26 wp_redirect( esc_url_raw( add_query_arg( 'payment-mode', $_POST['payment-mode'] ) ) );
27 exit;
28 }
29 }
30
31 add_action( 'give_gateway_select', 'give_process_gateway_select' );
32
33 /**
34 * Loads a payment gateway via AJAX.
35 *
36 * @since 1.0
37 *
38 * @return void
39 */
40 function give_load_ajax_gateway() {
41
42 $post_data = give_clean( $_POST ); // WPCS: input var ok, CSRF ok.
43
44 if (
45 ! isset( $post_data['nonce'] )
46 || ! give_verify_donation_form_nonce( $post_data['nonce'], $post_data['give_form_id'] )
47 ) {
48 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' );
49 exit();
50
51 } elseif ( isset( $post_data['give_payment_mode'] ) ) {
52
53 $form_id_prefix = ! empty( $post_data['give_form_id_prefix'] ) ? $post_data['give_form_id_prefix'] : '';
54
55 $args = array(
56 'id_prefix' => $form_id_prefix,
57 );
58
59 /**
60 * Fire to render donation form.
61 *
62 * @since 1.7
63 */
64 do_action( 'give_donation_form', $post_data['give_form_id'], $args );
65
66 exit();
67 }
68 }
69
70 add_action( 'wp_ajax_give_load_gateway', 'give_load_ajax_gateway' );
71 add_action( 'wp_ajax_nopriv_give_load_gateway', 'give_load_ajax_gateway' );
72
73 /**
74 * Create wp nonce using Ajax call.
75 *
76 * Use give_donation_form_nonce() js fn to create nonce.
77 *
78 * @since 2.0
79 *
80 * @return void
81 */
82 function give_donation_form_nonce() {
83 if ( isset( $_POST['give_form_id'] ) ) {
84
85 // Get donation form id.
86 $form_id = is_numeric( $_POST['give_form_id'] ) ? absint( $_POST['give_form_id'] ) : 0;
87
88 // Send nonce json data.
89 wp_send_json_success( wp_create_nonce( "give_donation_form_nonce_{$form_id}" ) );
90 }
91 }
92
93 add_action( 'wp_ajax_give_donation_form_nonce', 'give_donation_form_nonce' );
94 add_action( 'wp_ajax_nopriv_give_donation_form_nonce', 'give_donation_form_nonce' );
95
96
97 /**
98 * Create all nonce of donation form using Ajax call.
99 * Note: only for internal use
100 *
101 * @since 4.9.0 rename function - PHP 8 compatibility
102 * @since 2.2.0
103 *
104 * @return void
105 */
106 function give_donation_form_reset_all_nonce() {
107 if ( isset( $_POST['give_form_id'] ) ) {
108
109 // Get donation form id.
110 $form_id = is_numeric( $_POST['give_form_id'] ) ? absint( $_POST['give_form_id'] ) : 0;
111
112 $data = array(
113 'give_form_hash' => wp_create_nonce( "give_donation_form_nonce_{$form_id}" ),
114 'give_form_user_register_hash' => wp_create_nonce( "give_form_create_user_nonce_{$form_id}" ),
115 );
116
117 /**
118 * Filter the ajax request data
119 *
120 * @since 2.2.0
121 */
122 $data = apply_filters( 'give_donation_form_reset_all_nonce_data', $data );
123
124 // Send nonce json data.
125 wp_send_json_success( $data );
126 }
127
128 wp_send_json_error();
129 }
130
131 add_action( 'wp_ajax_give_donation_form_reset_all_nonce', 'give_donation_form_reset_all_nonce');
132 add_action( 'wp_ajax_nopriv_give_donation_form_reset_all_nonce', 'give_donation_form_reset_all_nonce');
133
134 /**
135 * Sets an error within the donation form if no gateways are enabled.
136 *
137 * @todo: we can deprecate this function in future because gateways will not empty if get via Give API.
138 *
139 * @since 1.0
140 *
141 * @return void
142 */
143 function give_no_gateway_error() {
144 $gateways = give_get_enabled_payment_gateways();
145
146 if ( empty( $gateways ) ) {
147 give_set_error( 'no_gateways', esc_html__( 'You must enable a payment gateway to use Give.', 'give' ) );
148 } else {
149 give_unset_error( 'no_gateways' );
150 }
151 }
152
153 add_action( 'init', 'give_no_gateway_error' );
154