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