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