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