PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.3.1
GiveWP – Donation Plugin and Fundraising Platform v2.3.1
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 / admin / forms / dashboard-columns.php
give / includes / admin / forms Last commit date
class-give-form-duplicator.php 7 years ago class-metabox-form-data.php 7 years ago dashboard-columns.php 7 years ago metabox.php 7 years ago
dashboard-columns.php
383 lines
1 <?php
2 /**
3 * Dashboard Columns
4 *
5 * @package GIVE
6 * @subpackage Admin/Forms
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 /**
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 $shortcode = sprintf( '[give_form id="%s"]', absint( $post_id ) );
127 printf(
128 '<button type="button" class="button hint-tooltip hint--top js-give-shortcode-button" aria-label="%1$s" data-give-shortcode="%2$s"><span class="dashicons dashicons-admin-page"></span> %3$s</button>',
129 esc_attr( $shortcode ),
130 esc_attr( $shortcode ),
131 esc_html__( 'Copy Shortcode', 'give' )
132 );
133 break;
134 }// End switch().
135 }// End if().
136 }
137
138 add_action( 'manage_posts_custom_column', 'give_render_form_columns', 10, 2 );
139
140 /**
141 * Registers the sortable columns in the list table
142 *
143 * @since 1.0
144 *
145 * @param array $columns Array of the columns
146 *
147 * @return array $columns Array of sortable columns
148 */
149 function give_sortable_form_columns( $columns ) {
150 $columns['price'] = 'amount';
151 $columns['sales'] = 'sales';
152 $columns['earnings'] = 'earnings';
153 $columns['goal'] = 'goal';
154 $columns['donations'] = 'donations';
155
156 return $columns;
157 }
158
159 add_filter( 'manage_edit-give_forms_sortable_columns', 'give_sortable_form_columns' );
160
161 /**
162 * Sorts Columns in the Forms List Table
163 *
164 * @since 1.0
165 *
166 * @param array $vars Array of all the sort variables.
167 *
168 * @return array $vars Array of all the sort variables.
169 */
170 function give_sort_forms( $vars ) {
171 // Check if we're viewing the "give_forms" post type.
172 if ( ! isset( $vars['post_type'] ) || ! isset( $vars['orderby'] ) || 'give_forms' !== $vars['post_type'] ) {
173 return $vars;
174 }
175
176 switch ( $vars['orderby'] ) {
177 // Check if 'orderby' is set to "sales".
178 case 'sales':
179 $vars = array_merge(
180 $vars,
181 array(
182 'meta_key' => '_give_form_sales',
183 'orderby' => 'meta_value_num',
184 )
185 );
186 break;
187
188 // Check if "orderby" is set to "earnings".
189 case 'earnings':
190 $vars = array_merge(
191 $vars,
192 array(
193 'meta_key' => '_give_form_earnings',
194 'orderby' => 'meta_value_num',
195 )
196 );
197 break;
198
199 // Check if "orderby" is set to "price/amount".
200 case 'amount':
201 $multi_level_meta_key = ( 'asc' === $vars['order'] ) ? '_give_levels_minimum_amount' : '_give_levels_maximum_amount';
202
203 $vars['orderby'] = 'meta_value_num';
204 $vars['meta_query'] = array(
205 'relation' => 'OR',
206 array(
207 'key' => $multi_level_meta_key,
208 'type' => 'NUMERIC',
209 ),
210 array(
211 'key' => '_give_set_price',
212 'type' => 'NUMERIC',
213 )
214 );
215
216 break;
217
218 // Check if "orderby" is set to "goal".
219 case 'goal':
220 $vars = array_merge(
221 $vars,
222 array(
223 'meta_key' => '_give_set_goal',
224 'orderby' => 'meta_value_num',
225 )
226 );
227 break;
228
229 // Check if "orderby" is set to "donations".
230 case 'donations':
231 $vars = array_merge(
232 $vars,
233 array(
234 'meta_key' => '_give_form_sales',
235 'orderby' => 'meta_value_num',
236 )
237 );
238 break;
239 }// End switch().
240
241 return $vars;
242 }
243
244 /**
245 * Sets restrictions on author of Forms List Table
246 *
247 * @since 1.0
248 *
249 * @param array $vars Array of all sort variables.
250 *
251 * @return array Array of all sort variables.
252 */
253 function give_filter_forms( $vars ) {
254 if ( isset( $vars['post_type'] ) && 'give_forms' == $vars['post_type'] ) {
255
256 // If an author ID was passed, use it
257 if ( isset( $_REQUEST['author'] ) && ! current_user_can( 'view_give_reports' ) ) {
258
259 $author_id = $_REQUEST['author'];
260 if ( (int) $author_id !== get_current_user_id() ) {
261 wp_die( esc_html__( 'You do not have permission to view this data.', 'give' ), esc_html__( 'Error', 'give' ), array(
262 'response' => 403,
263 ) );
264 }
265 $vars = array_merge(
266 $vars,
267 array(
268 'author' => get_current_user_id(),
269 )
270 );
271
272 }
273 }
274
275 return $vars;
276 }
277
278 /**
279 * Form Load
280 *
281 * Sorts the form columns.
282 *
283 * @since 1.0
284 * @return void
285 */
286 function give_forms_load() {
287 add_filter( 'request', 'give_sort_forms' );
288 add_filter( 'request', 'give_filter_forms' );
289 }
290
291 add_action( 'load-edit.php', 'give_forms_load', 9999 );
292
293 /**
294 * Remove Forms Month Filter
295 *
296 * Removes the default drop down filter for forms by date.
297 *
298 * @since 1.0
299 *
300 * @param array $dates The preset array of dates.
301 *
302 * @global $typenow The post type we are viewing.
303 * @return array Empty array disables the dropdown.
304 */
305 function give_remove_month_filter( $dates ) {
306 global $typenow;
307
308 if ( $typenow == 'give_forms' ) {
309 $dates = array();
310 }
311
312 return $dates;
313 }
314
315 add_filter( 'months_dropdown_results', 'give_remove_month_filter', 99 );
316
317 /**
318 * Updates price when saving post
319 *
320 * @since 1.0
321 * @since 2.1.4 If the donation amount is less than the Minimum amount then set the donation amount as Donation minimum amount.
322 *
323 * @param int $post_id Download (Post) ID
324 *
325 * @return int|null
326 */
327 function give_price_save_quick_edit( $post_id ) {
328 if ( ! isset( $_POST['post_type'] ) || 'give_forms' !== $_POST['post_type'] ) {
329 return;
330 }
331 if ( ! current_user_can( 'edit_post', $post_id ) ) {
332 return $post_id;
333 }
334 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
335 return $post_id;
336 }
337
338 if ( isset( $_REQUEST['_give_regprice'] ) ) {
339 give_update_meta( $post_id, '_give_set_price', give_sanitize_amount_for_db( strip_tags( stripslashes( $_REQUEST['_give_regprice'] ) ) ) );
340 }
341
342 // Override the Donation minimum amount.
343 if (
344 isset( $_REQUEST['_give_custom_amount'], $_REQUEST['_give_set_price'], $_REQUEST['_give_price_option'], $_REQUEST['_give_custom_amount_range'] )
345 && 'set' === $_REQUEST['_give_price_option']
346 && give_is_setting_enabled( $_REQUEST['_give_custom_amount'] )
347 && give_maybe_sanitize_amount( $_REQUEST['_give_set_price'] ) < give_maybe_sanitize_amount( $_REQUEST['_give_custom_amount_range']['minimum'] )
348 ) {
349 give_update_meta( $post_id, '_give_custom_amount_range_minimum', give_sanitize_amount_for_db( $_REQUEST['_give_set_price'] ) );
350 }
351 }
352
353 add_action( 'save_post', 'give_price_save_quick_edit' );
354
355 /**
356 * Process bulk edit actions via AJAX
357 *
358 * @since 1.0
359 * @return void
360 */
361 function give_save_bulk_edit() {
362
363 $post_ids = ( isset( $_POST['post_ids'] ) && ! empty( $_POST['post_ids'] ) ) ? $_POST['post_ids'] : array();
364
365 if ( ! empty( $post_ids ) && is_array( $post_ids ) ) {
366 $price = isset( $_POST['price'] ) ? strip_tags( stripslashes( $_POST['price'] ) ) : 0;
367 foreach ( $post_ids as $post_id ) {
368
369 if ( ! current_user_can( 'edit_post', $post_id ) ) {
370 continue;
371 }
372
373 if ( ! empty( $price ) ) {
374 give_update_meta( $post_id, '_give_set_price', give_sanitize_amount_for_db( $price ) );
375 }
376 }
377 }
378
379 die();
380 }
381
382 add_action( 'wp_ajax_give_save_bulk_edit', 'give_save_bulk_edit' );
383