PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.4.2
GiveWP – Donation Plugin and Fundraising Platform v3.4.2
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 / admin-pages.php
give / includes / admin Last commit date
add-ons 4 years ago donors 4 years ago emails 3 years ago forms 3 years ago payments 2 years ago reports 4 years ago settings 2 years ago shortcodes 4 years ago tools 2 years ago upgrades 3 years ago views 3 years ago abstract-admin-settings-page.php 2 years ago admin-actions.php 3 years ago admin-filters.php 3 years ago admin-footer.php 2 years ago admin-pages.php 3 years ago class-addon-activation-banner.php 4 years ago class-admin-settings.php 4 years ago class-api-keys-table.php 4 years ago class-blank-slate.php 3 years ago class-give-admin.php 5 years ago class-give-html-elements.php 6 years ago class-i18n-module.php 4 years ago dashboard-widgets.php 3 years ago give-metabox-functions.php 3 years ago import-functions.php 2 years ago misc-functions.php 2 years ago plugins.php 3 years ago setting-page-functions.php 6 years ago
admin-pages.php
404 lines
1 <?php
2 /**
3 * Admin Pages
4 *
5 * @package Give
6 * @subpackage Admin/Pages
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 * Creates the admin submenu pages under the Give menu and assigns their
19 * links to global variables
20 *
21 * @since 1.0
22 *
23 * @global $give_settings_page
24 * @global $give_payments_page
25 * @global $give_reports_page
26 * @global $give_donors_page
27 *
28 * @return void
29 */
30 function give_add_donations_subpage() {
31 global $give_payments_page;
32
33 // Payments
34 /* @var WP_Post_Type $give_payment */
35 $give_payment = get_post_type_object('give_payment');
36 $give_payments_page = add_submenu_page(
37 'edit.php?post_type=give_forms',
38 $give_payment->labels->name,
39 $give_payment->labels->menu_name,
40 'edit_give_payments',
41 'give-payment-history',
42 'give_payment_history_page'
43 );
44 }
45
46 add_action( 'admin_menu', 'give_add_donations_subpage', 20 );
47
48 function give_add_donors_subpage() {
49 global $give_donors_page;
50
51 $give_donors_page = add_submenu_page(
52 'edit.php?post_type=give_forms',
53 esc_html__('Donors', 'give'),
54 esc_html__('Donors', 'give'),
55 'view_give_reports',
56 'give-donors',
57 'give_donors_page'
58 );
59 }
60
61 add_action('admin_menu', 'give_add_donors_subpage', 30);
62
63
64 function give_add_settings_subpage()
65 {
66 global $give_settings_page;
67
68 $give_settings_page = add_submenu_page(
69 'edit.php?post_type=give_forms',
70 esc_html__('GiveWP Settings', 'give'),
71 esc_html__('Settings', 'give'),
72 'manage_give_settings',
73 'give-settings',
74 [
75 Give()->give_settings,
76 'output',
77 ]
78 );
79 }
80
81 add_action('admin_menu', 'give_add_settings_subpage', 50);
82
83 function give_add_tools_subpage()
84 {
85 global $give_tools_page;
86
87 $give_tools_page = add_submenu_page(
88 'edit.php?post_type=give_forms',
89 esc_html__('GiveWP Tools', 'give'),
90 esc_html__('Tools', 'give'),
91 'manage_give_settings',
92 'give-tools',
93 [
94 Give()->give_settings,
95 'output',
96 ]
97 );
98 }
99
100 add_action('admin_menu', 'give_add_tools_subpage', 60);
101
102 /**
103 * Determines whether the current admin page is a Give admin page.
104 *
105 * Only works after the `wp_loaded` hook, & most effective
106 * starting on `admin_menu` hook.
107 *
108 * @since 1.0
109 * @since 2.1 Simplified function.
110 * @since 2.15.0 Use anonymous function in array_map to convert only strings to lowercase.
111 *
112 * @param string $passed_page Optional. Main page's slug
113 * @param string $passed_view Optional. Page view ( ex: `edit` or `delete` )
114 *
115 * @return bool True if Give admin page.
116 */
117 function give_is_admin_page( $passed_page = '', $passed_view = '' ) {
118 global $pagenow, $typenow;
119
120 $found = true;
121 $get_query_args = ! empty( $_GET ) ?
122 array_map( function ( $data ) {
123 return is_string( $data ) ? strtolower( $data ) : $data;
124 }, $_GET ) :
125 [];
126
127 // Set default argument, if not passed.
128 $query_args = wp_parse_args( $get_query_args, array_fill_keys( [
129 'post_type',
130 'action',
131 'taxonomy',
132 'page',
133 'view',
134 'tab'
135 ], false ) );
136
137 switch ( $passed_page ) {
138 case 'categories':
139 case 'tags':
140 $has_view = in_array( $passed_view, [ 'list-table', 'edit', 'new' ], true );
141
142 if (
143 ! in_array( $query_args['taxonomy'], [ 'give_forms_category', 'give_forms_tag' ], true ) &&
144 'edit-tags.php' !== $pagenow &&
145 (
146 $has_view ||
147 (
148 ( in_array( $passed_view, [ 'list-table', 'new' ], true ) && 'edit' === $query_args['action'] ) ||
149 ( 'edit' !== $passed_view && 'edit' !== $query_args['action'] ) &&
150 ! $has_view
151 )
152 )
153 ) {
154 $found = false;
155 }
156 break;
157 // Give Donation form page.
158 case 'give_forms':
159 $has_view = in_array( $passed_view, [ 'new', 'list-table', 'edit' ], true );
160
161 if (
162 'give_forms' !== $typenow &&
163 (
164 ( 'list-table' !== $passed_view && 'edit.php' !== $pagenow ) &&
165 ( 'edit' !== $passed_view && 'post.php' !== $pagenow ) &&
166 ( 'new' !== $passed_view && 'post-new.php' !== $pagenow )
167 ) ||
168 (
169 ! $has_view &&
170 ( 'post-new.php' !== $pagenow && 'give_forms' !== $query_args['post_type'] )
171 )
172 ) {
173 $found = false;
174 }
175 break;
176 // Give Donors page.
177 case 'donors':
178 $has_view = array_intersect( [ $passed_view, $query_args['view'] ], [ 'list-table', 'overview', 'notes' ] );
179
180 if (
181 ( 'give-donors' !== $query_args['page'] || 'edit.php' !== $pagenow ) &&
182 (
183 ( $passed_view !== $query_args['view'] || ! empty( $has_view ) ) ||
184 ( false !== $query_args['view'] && 'list-table' !== $passed_view )
185 )
186 ) {
187 $found = false;
188 }
189 break;
190 // Give Donations page.
191 case 'payments':
192 if (
193 ( 'give-payment-history' !== $query_args['page'] || 'edit.php' !== $pagenow ) &&
194 (
195 ! in_array( $passed_view, [ 'list-table', 'edit' ], true ) ||
196 (
197 ( 'list-table' !== $passed_view && false !== $query_args['view'] ) ||
198 ( 'edit' !== $passed_view && 'view-payment-details' !== $query_args['view'] )
199 )
200 )
201 ) {
202 $found = false;
203 }
204 break;
205 case 'reports':
206 case 'settings':
207 case 'addons':
208 // Get current tab.
209 $current_tab = empty( $passed_view ) ? $query_args['tab'] : $passed_view;
210 $give_setting_page = in_array( $query_args['page'], [ 'give-reports', 'give-settings', 'give-addons' ], true );
211
212 // Check if it's Give Setting page or not.
213 if (
214 ( 'edit.php' !== $pagenow || ! $give_setting_page ) &&
215 ! Give_Admin_Settings::is_setting_page( $current_tab )
216 ) {
217 $found = false;
218 }
219 break;
220 default:
221 global $give_payments_page, $give_settings_page, $give_reports_page, $give_system_info_page, $give_settings_export, $give_donors_page, $give_tools_page;
222 $admin_pages = apply_filters(
223 'give_admin_pages',
224 [
225 //$give_payments_page,
226 $give_settings_page,
227 $give_reports_page,
228 $give_system_info_page,
229 $give_settings_export,
230 $give_donors_page,
231 $give_tools_page,
232 ]
233 );
234
235 $found = ( 'give_forms' === $typenow || in_array( $pagenow, array_merge( $admin_pages, [ 'index.php', 'post-new.php', 'post.php', 'widgets.php', 'customize.php' ] ), true ) ) ? true : false;
236 }
237 return (bool) apply_filters( 'give_is_admin_page', $found, $query_args['page'], $query_args['view'], $passed_page, $passed_view );
238 }
239
240 /**
241 * Add setting tab to give-settings page
242 *
243 * @since 1.8
244 * @param array $settings
245 * @return array
246 */
247 function give_settings_page_pages( $settings ) {
248 include 'abstract-admin-settings-page.php';
249
250 $settings = [
251 // General settings.
252 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-general.php',
253
254 // Payment Gateways Settings.
255 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-gateways.php',
256
257 // Display settings.
258 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-display.php',
259
260 // Emails settings.
261 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-email.php',
262
263 // Addons settings.
264 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-addon.php',
265
266 // License settings.
267 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-license.php',
268
269 // Advanced settings.
270 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-advanced.php',
271 ];
272
273 // Recurring Donations settings.
274 if ( !defined('GIVE_RECURRING_VERSION') ) {
275 $settings[] = include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-recurring.php';
276 }
277
278 // Output.
279 return $settings;
280 }
281 add_filter( 'give-settings_get_settings_pages', 'give_settings_page_pages', 0, 1 );
282
283
284 /**
285 * Add setting tab to give-settings page
286 *
287 * @since 1.8
288 * @param array $settings
289 * @return array
290 */
291 function give_reports_page_pages( $settings ) {
292 include 'abstract-admin-settings-page.php';
293
294 $settings = [
295 // Earnings.
296 include 'reports/class-earnings-report.php',
297
298 // Forms.
299 include 'reports/class-forms-report.php',
300
301 // Gateways.
302 include 'reports/class-gateways-report.php',
303
304 ];
305
306 // Output.
307 return $settings;
308 }
309 add_filter( 'give-reports_get_settings_pages', 'give_reports_page_pages', 0, 1 );
310
311 /**
312 * Add setting tab to give-settings page
313 *
314 * @since 1.8
315 * @param array $settings
316 * @return array
317 */
318 function give_tools_page_pages( $settings ) {
319 include 'abstract-admin-settings-page.php';
320
321 $settings = [
322
323 // Export.
324 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-export.php',
325
326 // Import
327 include_once GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-import.php',
328
329 // Logs.
330 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-logs.php',
331
332 // API.
333 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-api.php',
334
335 // Data.
336 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-data.php',
337
338 // System Info.
339 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-system-info.php',
340 ];
341
342 // Output.
343 return $settings;
344 }
345 add_filter( 'give-tools_get_settings_pages', 'give_tools_page_pages', 0, 1 );
346
347 /**
348 * Set default tools page tab.
349 *
350 * @since 1.8
351 * @param string $default_tab Default tab name.
352 * @return string
353 */
354 function give_set_default_tab_form_tools_page( $default_tab ) {
355 return 'export';
356 }
357 add_filter( 'give_default_setting_tab_give-tools', 'give_set_default_tab_form_tools_page', 10, 1 );
358
359
360 /**
361 * Set default reports page tab.
362 *
363 * @since 1.8
364 * @param string $default_tab Default tab name.
365 * @return string
366 */
367 function give_set_default_tab_form_reports_page( $default_tab ) {
368 return 'earnings';
369 }
370 add_filter( 'give_default_setting_tab_give-reports', 'give_set_default_tab_form_reports_page', 10, 1 );
371
372
373 /**
374 * Add a page display state for special Give pages in the page list table.
375 *
376 * @since 1.8.18
377 *
378 * @param array $post_states An array of post display states.
379 * @param WP_Post $post The current post object.
380 *
381 * @return array
382 */
383 function give_add_display_page_states( $post_states, $post ) {
384
385 switch ( $post->ID ) {
386 case give_get_option( 'success_page' ):
387 $post_states['give_successfully_page'] = __( 'Donation Success Page', 'give' );
388 break;
389
390 case give_get_option( 'failure_page' ):
391 $post_states['give_failure_page'] = __( 'Donation Failed Page', 'give' );
392 break;
393
394 case give_get_option( 'history_page' ):
395 $post_states['give_history_page'] = __( 'Donation History Page', 'give' );
396 break;
397 }
398
399 return $post_states;
400 }
401
402 // Add a post display state for special Give pages.
403 add_filter( 'display_post_states', 'give_add_display_page_states', 10, 2 );
404