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