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