Test Failed
Push — release/1.8.12 ( b58a2f...d255b1 )
by Ravinder
375:09 queued 372:17
created

includes/actions.php (35 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Front-end Actions
4
 *
5
 * @package     Give
6
 * @subpackage  Functions
7
 * @copyright   Copyright (c) 2016, WordImpress
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
 * Hooks Give actions, when present in the $_GET superglobal. Every give_action
19
 * present in $_GET is called using WordPress's do_action function. These
20
 * functions are called on init.
21
 *
22
 * @since  1.0
23
 *
24
 * @return void
25
 */
26 View Code Duplication
function give_get_actions() {
0 ignored issues
show
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
27
28
	$_get_action = ! empty( $_GET['give_action'] ) ? $_GET['give_action'] : null;
0 ignored issues
show
Detected access of super global var $_GET, probably need manual inspection.
Loading history...
Detected usage of a non-sanitized input variable: $_GET
Loading history...
29
30
	// Add backward compatibility to give-action param ( $_GET )
31
	if(  empty( $_get_action ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
32
		$_get_action = ! empty( $_GET['give-action'] ) ? $_GET['give-action'] : null;
0 ignored issues
show
Detected access of super global var $_GET, probably need manual inspection.
Loading history...
Detected usage of a non-sanitized input variable: $_GET
Loading history...
33
	}
34
35
	if ( isset( $_get_action ) ) {
36
		/**
37
		 * Fires in WordPress init or admin init, when give_action is present in $_GET.
38
		 *
39
		 * @since 1.0
40
		 *
41
		 * @param array $_GET Array of HTTP GET variables.
42
		 */
43
		do_action( "give_{$_get_action}", $_GET );
0 ignored issues
show
Detected access of super global var $_GET, probably need manual inspection.
Loading history...
44
	}
45
46
}
47
48
add_action( 'init', 'give_get_actions' );
49
50
/**
51
 * Hooks Give actions, when present in the $_POST super global. Every give_action
52
 * present in $_POST is called using WordPress's do_action function. These
53
 * functions are called on init.
54
 *
55
 * @since  1.0
56
 *
57
 * @return void
58
 */
59 View Code Duplication
function give_post_actions() {
0 ignored issues
show
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
60
61
	$_post_action = ! empty( $_POST['give_action'] ) ? $_POST['give_action'] : null;
0 ignored issues
show
Detected access of super global var $_POST, probably need manual inspection.
Loading history...
Detected usage of a non-sanitized input variable: $_POST
Loading history...
62
0 ignored issues
show
Functions must not contain multiple empty lines in a row; found 2 empty lines
Loading history...
63
64
	// Add backward compatibility to give-action param ( $_POST ).
65
	if(  empty( $_post_action ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
66
		$_post_action = ! empty( $_POST['give-action'] ) ? $_POST['give-action'] : null;
0 ignored issues
show
Detected access of super global var $_POST, probably need manual inspection.
Loading history...
Detected usage of a non-sanitized input variable: $_POST
Loading history...
67
	}
68
69
	if ( isset( $_post_action ) ) {
70
		/**
71
		 * Fires in WordPress init or admin init, when give_action is present in $_POST.
72
		 *
73
		 * @since 1.0
74
		 *
75
		 * @param array $_POST Array of HTTP POST variables.
76
		 */
77
		do_action( "give_{$_post_action}", $_POST );
0 ignored issues
show
Detected access of super global var $_POST, probably need manual inspection.
Loading history...
78
	}
79
80
}
81
82
add_action( 'init', 'give_post_actions' );
83
84
/**
85
 * Connect WordPress user with Donor.
86
 *
87
 * @since  1.7
88
 * @param  int   $user_id   User ID
89
 * @param  array $user_data User Data
90
 * @return void
91
 */
92
function give_connect_donor_to_wpuser( $user_id, $user_data ){
93
	/* @var Give_Donor $donor */
94
	$donor = new Give_Donor( $user_data['user_email'] );
95
96
	// Validate donor id and check if do nor is already connect to wp user or not.
97
	if( $donor->id && ! $donor->user_id ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
98
99
		// Update donor user_id.
100
		if( $donor->update( array( 'user_id' => $user_id ) ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
101
			$donor_note = sprintf( esc_html__( 'WordPress user #%d is connected to #%d', 'give' ), $user_id, $donor->id );
102
			$donor->add_note( $donor_note );
103
104
			// Update user_id meta in payments.
105
			if( ! empty( $donor->payment_ids ) && ( $donations = explode( ',', $donor->payment_ids ) ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
106
				foreach ( $donations as $donation  ) {
107
					give_update_meta( $donation, '_give_payment_user_id', $user_id );
108
				}
109
			}
110
		}
111
	}
112
}
113
add_action( 'give_insert_user', 'give_connect_donor_to_wpuser', 10, 2 );
114
115
116
/**
117
 * Setup site home url check
118
 *
119
 * Note: if location of site changes then run cron to validate licenses
120
 *
121
 * @since  1.7
122
 * @return void
123
 */
124
function give_validate_license_when_site_migrated() {
125
	// Store current site address if not already stored.
126
	$homeurl = home_url();
127
	if( ! get_option( 'give_site_address_before_migrate' ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
128
		// Update site address.
129
		update_option( 'give_site_address_before_migrate', $homeurl );
130
131
		return;
132
	}
133
134
	if( $homeurl !== get_option( 'give_site_address_before_migrate' ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
135
		// Immediately run cron.
136
		wp_schedule_single_event( time() , 'give_validate_license_when_site_migrated' );
137
138
		// Update site address.
139
		update_option( 'give_site_address_before_migrate', home_url() );
140
	}
141
142
}
143
add_action( 'init', 'give_validate_license_when_site_migrated' );
144
add_action( 'admin_init', 'give_validate_license_when_site_migrated' );
145
146
147
/**
148
 * Processing after donor batch export complete
149
 *
150
 * @since 1.8
151
 * @param $data
152
 */
153
function give_donor_batch_export_complete( $data ) {
154
	// Remove donor ids cache.
155
	if(
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
156
		isset( $data['class'] )
157
		&& 'Give_Batch_Donors_Export' === $data['class']
158
		&& ! empty( $data['forms'] )
159
		&& isset( $data['give_export_option']['query_id'] )
160
	) {
161
		Give_Cache::delete( Give_Cache::get_key( $data['give_export_option']['query_id'] ) );
162
	}
163
}
164
add_action('give_file_export_complete', 'give_donor_batch_export_complete' );
0 ignored issues
show
Expected 1 spaces after opening bracket; 0 found
Loading history...
165
166
/**
167
 * Print css for wordpress setting pages.
168
 *
169
 * @since 1.8.7
170
 */
171
function give_admin_quick_css() {
172
	/* @var WP_Screen $screen */
173
	$screen = get_current_screen();
174
175
	if( ! ( $screen instanceof WP_Screen ) ) {
0 ignored issues
show
Space after opening control structure is required
Loading history...
No space before opening parenthesis is prohibited
Loading history...
176
		return false;
177
	}
178
179
	switch ( true ) {
180
		case ( 'plugins' === $screen->base || 'plugins-network' === $screen->base ):
181
			?>
182
			<style>
183
				tr.active.update + tr.give-addon-notice-tr td{
184
                    box-shadow:none;
185
                    -webkit-box-shadow:none;
186
				}
187
				tr.active + tr.give-addon-notice-tr td{
188
                    position: relative;
189
				    top:-1px;
190
                }
191
				tr.active + tr.give-addon-notice-tr .notice{
192
                    margin: 5px 20px 15px 40px;
193
                }
194
195
				tr.give-addon-notice-tr .dashicons {
196
                    color: #f56e28;
197
                }
198
				tr.give-addon-notice-tr td{
199
					border-left: 4px solid #00a0d2;
200
				}
201
202
				tr.give-addon-notice-tr td{
203
					padding: 0!important;
204
				}
205
206
                tr.active.update + tr.give-addon-notice-tr .notice{
207
					margin: 5px 20px 5px 40px;
208
				}
209
			</style>
210
			<?php
211
	}
212
}
213
add_action( 'admin_head', 'give_admin_quick_css' );
214
215
216
/**
217
 * Set Donation Amount for Multi Level Donation Forms
218
 *
219
 * @param int    $form_id
220
 * @param object $form
221
 *
222
 * @since 1.8.9
223
 *
224
 * @return void
225
 */
226
function give_set_donation_levels_max_min_amount( $form_id ) {
227
	if (
228
		( 'set' === $_POST['_give_price_option'] ) ||
229
		( in_array( '_give_donation_levels', $_POST ) && count( $_POST['_give_donation_levels'] ) <= 0 ) ||
230
		! ( $donation_levels_amounts = wp_list_pluck( $_POST['_give_donation_levels'], '_give_amount' ) )
0 ignored issues
show
Detected access of super global var $_POST, probably need manual inspection.
Loading history...
Detected usage of a non-validated input variable: $_POST
Loading history...
Detected usage of a non-sanitized input variable: $_POST
Loading history...
231
	) {
232
		// Delete old meta.
233
		give_delete_meta( $form_id, '_give_levels_minimum_amount' );
234
		give_delete_meta( $form_id, '_give_levels_maximum_amount' );
235
236
		return;
237
	}
238
239
	$min_amount = min( $donation_levels_amounts );
240
	$max_amount = max( $donation_levels_amounts );
241
242
	// Set Minimum and Maximum amount for Multi Level Donation Forms
243
	give_update_meta( $form_id, '_give_levels_minimum_amount', $min_amount ? give_sanitize_amount_for_db( $min_amount ) : 0 );
244
	give_update_meta( $form_id, '_give_levels_maximum_amount', $max_amount? give_sanitize_amount_for_db( $max_amount ) : 0 );
245
}
246
247
add_action( 'give_pre_process_give_forms_meta', 'give_set_donation_levels_max_min_amount', 30 );