PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.1.5
GiveWP – Donation Plugin and Fundraising Platform v2.1.5
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 / admin / forms / dashboard-columns.php
give / includes / admin / forms Last commit date
class-metabox-form-data.php 8 years ago dashboard-columns.php 8 years ago metabox.php 8 years ago
dashboard-columns.php
377 lines
1 <?php
2 /**
3 * Dashboard Columns
4 *
5 * @package GIVE
6 * @subpackage Admin/Forms
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 /**
19 * Give Forms Columns
20 *
21 * Defines the custom columns and their order
22 *
23 * @since 1.0
24 *
25 * @param array $give_form_columns Array of forms columns
26 *
27 * @return array $form_columns Updated array of forms columns
28 * Post Type List Table
29 */
30 function give_form_columns( $give_form_columns ) {
31
32 // Standard columns
33 $give_form_columns = array(
34 'cb' => '<input type="checkbox"/>',
35 'title' => __( 'Name', 'give' ),
36 'form_category' => __( 'Categories', 'give' ),
37 'form_tag' => __( 'Tags', 'give' ),
38 'price' => __( 'Amount', 'give' ),
39 'goal' => __( 'Goal', 'give' ),
40 'donations' => __( 'Donations', 'give' ),
41 'earnings' => __( 'Income', 'give' ),
42 'shortcode' => __( 'Shortcode', 'give' ),
43 'date' => __( 'Date', 'give' ),
44 );
45
46 // Does the user want categories / tags?
47 if ( ! give_is_setting_enabled( give_get_option( 'categories', 'disabled' ) ) ) {
48 unset( $give_form_columns['form_category'] );
49 }
50 if ( ! give_is_setting_enabled( give_get_option( 'tags', 'disabled' ) ) ) {
51 unset( $give_form_columns['form_tag'] );
52 }
53
54 return apply_filters( 'give_forms_columns', $give_form_columns );
55 }
56
57 add_filter( 'manage_edit-give_forms_columns', 'give_form_columns' );
58
59 /**
60 * Render Give Form Columns
61 *
62 * @since 1.0
63 *
64 * @param string $column_name Column name
65 * @param int $post_id Give Form (Post) ID
66 *
67 * @return void
68 */
69 function give_render_form_columns( $column_name, $post_id ) {
70 if ( get_post_type( $post_id ) == 'give_forms' ) {
71
72 switch ( $column_name ) {
73 case 'form_category':
74 echo get_the_term_list( $post_id, 'give_forms_category', '', ', ', '' );
75 break;
76 case 'form_tag':
77 echo get_the_term_list( $post_id, 'give_forms_tag', '', ', ', '' );
78 break;
79 case 'price':
80 if ( give_has_variable_prices( $post_id ) ) {
81 echo give_price_range( $post_id );
82 } else {
83 echo give_price( $post_id, false );
84 printf( '<input type="hidden" class="formprice-%1$s" value="%2$s" />', esc_attr( $post_id ), esc_attr( give_get_form_price( $post_id ) ) );
85 }
86 break;
87 case 'goal':
88 if ( give_is_setting_enabled( give_get_meta( $post_id, '_give_goal_option', true ) ) ) {
89
90 echo give_admin_form_goal_stats( $post_id );
91
92 } else {
93 _e( 'No Goal Set', 'give' );
94 }
95
96 printf(
97 '<input type="hidden" class="formgoal-%1$s" value="%2$s" />',
98 esc_attr( $post_id ),
99 give_get_form_goal( $post_id )
100 );
101
102 break;
103 case 'donations':
104 if ( current_user_can( 'view_give_form_stats', $post_id ) ) {
105 printf(
106 '<a href="%1$s">%2$s</a>',
107 esc_url( admin_url( 'edit.php?post_type=give_forms&page=give-payment-history&form_id=' . $post_id ) ),
108 give_get_form_sales_stats( $post_id )
109 );
110 } else {
111 echo '-';
112 }
113 break;
114 case 'earnings':
115 if ( current_user_can( 'view_give_form_stats', $post_id ) ) {
116 printf(
117 '<a href="%1$s">%2$s</a>',
118 esc_url( admin_url( 'edit.php?post_type=give_forms&page=give-reports&tab=forms&form-id=' . $post_id ) ),
119 give_currency_filter( give_format_amount( give_get_form_earnings_stats( $post_id ), array( 'sanitize' => false ) ) )
120 );
121 } else {
122 echo '-';
123 }
124 break;
125 case 'shortcode':
126 printf( '<input onclick="this.setSelectionRange(0, this.value.length)" type="text" class="shortcode-input" readonly="" value="[give_form id=&#34;%s&#34;]"', absint( $post_id ) );
127 break;
128 }// End switch().
129 }// End if().
130 }
131
132 add_action( 'manage_posts_custom_column', 'give_render_form_columns', 10, 2 );
133
134 /**
135 * Registers the sortable columns in the list table
136 *
137 * @since 1.0
138 *
139 * @param array $columns Array of the columns
140 *
141 * @return array $columns Array of sortable columns
142 */
143 function give_sortable_form_columns( $columns ) {
144 $columns['price'] = 'amount';
145 $columns['sales'] = 'sales';
146 $columns['earnings'] = 'earnings';
147 $columns['goal'] = 'goal';
148 $columns['donations'] = 'donations';
149
150 return $columns;
151 }
152
153 add_filter( 'manage_edit-give_forms_sortable_columns', 'give_sortable_form_columns' );
154
155 /**
156 * Sorts Columns in the Forms List Table
157 *
158 * @since 1.0
159 *
160 * @param array $vars Array of all the sort variables.
161 *
162 * @return array $vars Array of all the sort variables.
163 */
164 function give_sort_forms( $vars ) {
165 // Check if we're viewing the "give_forms" post type.
166 if ( ! isset( $vars['post_type'] ) || ! isset( $vars['orderby'] ) || 'give_forms' !== $vars['post_type'] ) {
167 return $vars;
168 }
169
170 switch ( $vars['orderby'] ) {
171 // Check if 'orderby' is set to "sales".
172 case 'sales':
173 $vars = array_merge(
174 $vars,
175 array(
176 'meta_key' => '_give_form_sales',
177 'orderby' => 'meta_value_num',
178 )
179 );
180 break;
181
182 // Check if "orderby" is set to "earnings".
183 case 'earnings':
184 $vars = array_merge(
185 $vars,
186 array(
187 'meta_key' => '_give_form_earnings',
188 'orderby' => 'meta_value_num',
189 )
190 );
191 break;
192
193 // Check if "orderby" is set to "price/amount".
194 case 'amount':
195 $multi_level_meta_key = ( 'asc' === $vars['order'] ) ? '_give_levels_minimum_amount' : '_give_levels_maximum_amount';
196
197 $vars['orderby'] = 'meta_value_num';
198 $vars['meta_query'] = array(
199 'relation' => 'OR',
200 array(
201 'key' => $multi_level_meta_key,
202 'type' => 'NUMERIC',
203 ),
204 array(
205 'key' => '_give_set_price',
206 'type' => 'NUMERIC',
207 )
208 );
209
210 break;
211
212 // Check if "orderby" is set to "goal".
213 case 'goal':
214 $vars = array_merge(
215 $vars,
216 array(
217 'meta_key' => '_give_set_goal',
218 'orderby' => 'meta_value_num',
219 )
220 );
221 break;
222
223 // Check if "orderby" is set to "donations".
224 case 'donations':
225 $vars = array_merge(
226 $vars,
227 array(
228 'meta_key' => '_give_form_sales',
229 'orderby' => 'meta_value_num',
230 )
231 );
232 break;
233 }// End switch().
234
235 return $vars;
236 }
237
238 /**
239 * Sets restrictions on author of Forms List Table
240 *
241 * @since 1.0
242 *
243 * @param array $vars Array of all sort variables.
244 *
245 * @return array Array of all sort variables.
246 */
247 function give_filter_forms( $vars ) {
248 if ( isset( $vars['post_type'] ) && 'give_forms' == $vars['post_type'] ) {
249
250 // If an author ID was passed, use it
251 if ( isset( $_REQUEST['author'] ) && ! current_user_can( 'view_give_reports' ) ) {
252
253 $author_id = $_REQUEST['author'];
254 if ( (int) $author_id !== get_current_user_id() ) {
255 wp_die( esc_html__( 'You do not have permission to view this data.', 'give' ), esc_html__( 'Error', 'give' ), array(
256 'response' => 403,
257 ) );
258 }
259 $vars = array_merge(
260 $vars,
261 array(
262 'author' => get_current_user_id(),
263 )
264 );
265
266 }
267 }
268
269 return $vars;
270 }
271
272 /**
273 * Form Load
274 *
275 * Sorts the form columns.
276 *
277 * @since 1.0
278 * @return void
279 */
280 function give_forms_load() {
281 add_filter( 'request', 'give_sort_forms' );
282 add_filter( 'request', 'give_filter_forms' );
283 }
284
285 add_action( 'load-edit.php', 'give_forms_load', 9999 );
286
287 /**
288 * Remove Forms Month Filter
289 *
290 * Removes the default drop down filter for forms by date.
291 *
292 * @since 1.0
293 *
294 * @param array $dates The preset array of dates.
295 *
296 * @global $typenow The post type we are viewing.
297 * @return array Empty array disables the dropdown.
298 */
299 function give_remove_month_filter( $dates ) {
300 global $typenow;
301
302 if ( $typenow == 'give_forms' ) {
303 $dates = array();
304 }
305
306 return $dates;
307 }
308
309 add_filter( 'months_dropdown_results', 'give_remove_month_filter', 99 );
310
311 /**
312 * Updates price when saving post
313 *
314 * @since 1.0
315 * @since 2.1.4 If the donation amount is less than the Minimum amount then set the donation amount as Donation minimum amount.
316 *
317 * @param int $post_id Download (Post) ID
318 *
319 * @return int|null
320 */
321 function give_price_save_quick_edit( $post_id ) {
322 if ( ! isset( $_POST['post_type'] ) || 'give_forms' !== $_POST['post_type'] ) {
323 return;
324 }
325 if ( ! current_user_can( 'edit_post', $post_id ) ) {
326 return $post_id;
327 }
328 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
329 return $post_id;
330 }
331
332 if ( isset( $_REQUEST['_give_regprice'] ) ) {
333 give_update_meta( $post_id, '_give_set_price', give_sanitize_amount_for_db( strip_tags( stripslashes( $_REQUEST['_give_regprice'] ) ) ) );
334 }
335
336 // Override the Donation minimum amount.
337 if (
338 isset( $_REQUEST['_give_custom_amount'], $_REQUEST['_give_set_price'], $_REQUEST['_give_price_option'], $_REQUEST['_give_custom_amount_range'] )
339 && 'set' === $_REQUEST['_give_price_option']
340 && give_is_setting_enabled( $_REQUEST['_give_custom_amount'] )
341 && give_maybe_sanitize_amount( $_REQUEST['_give_set_price'] ) < give_maybe_sanitize_amount( $_REQUEST['_give_custom_amount_range']['minimum'] )
342 ) {
343 give_update_meta( $post_id, '_give_custom_amount_range_minimum', give_sanitize_amount_for_db( $_REQUEST['_give_set_price'] ) );
344 }
345 }
346
347 add_action( 'save_post', 'give_price_save_quick_edit' );
348
349 /**
350 * Process bulk edit actions via AJAX
351 *
352 * @since 1.0
353 * @return void
354 */
355 function give_save_bulk_edit() {
356
357 $post_ids = ( isset( $_POST['post_ids'] ) && ! empty( $_POST['post_ids'] ) ) ? $_POST['post_ids'] : array();
358
359 if ( ! empty( $post_ids ) && is_array( $post_ids ) ) {
360 $price = isset( $_POST['price'] ) ? strip_tags( stripslashes( $_POST['price'] ) ) : 0;
361 foreach ( $post_ids as $post_id ) {
362
363 if ( ! current_user_can( 'edit_post', $post_id ) ) {
364 continue;
365 }
366
367 if ( ! empty( $price ) ) {
368 give_update_meta( $post_id, '_give_set_price', give_sanitize_amount_for_db( $price ) );
369 }
370 }
371 }
372
373 die();
374 }
375
376 add_action( 'wp_ajax_give_save_bulk_edit', 'give_save_bulk_edit' );
377