PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.6.2
GiveWP – Donation Plugin and Fundraising Platform v2.6.2
4.16.3 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 6 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 6 years ago class-blank-slate.php 6 years ago class-give-admin.php 6 years ago class-give-html-elements.php 6 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 6 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
404 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 // 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( 'https://go.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 ) : array();
137
138 // Set default argument, if not passed.
139 $query_args = wp_parse_args( $get_query_args, array_fill_keys( array( '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, array( 'list-table', 'edit', 'new' ), true );
145
146 if (
147 ! in_array( $query_args['taxonomy'], array( 'give_forms_category', 'give_forms_tag' ), true ) &&
148 'edit-tags.php' !== $pagenow &&
149 (
150 $has_view ||
151 (
152 ( in_array( $passed_view, array( '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, array( '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( array( $passed_view, $query_args['view'] ), array( '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, array( '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'], array( '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 array(
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 'widgets.php',
237 )
238 );
239
240 $found = ( 'give_forms' === $typenow || in_array( $pagenow, array_merge( $admin_pages, array( 'index.php', 'post-new.php', 'post.php' ) ), true ) ) ? true : false;
241 }
242 return (bool) apply_filters( 'give_is_admin_page', $found, $query_args['page'], $query_args['view'], $passed_page, $passed_view );
243 }
244
245 /**
246 * Add setting tab to give-settings page
247 *
248 * @since 1.8
249 * @param array $settings
250 * @return array
251 */
252 function give_settings_page_pages( $settings ) {
253 include 'abstract-admin-settings-page.php';
254
255 $settings = array(
256 // General settings.
257 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-general.php',
258
259 // Payment Gateways Settings.
260 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-gateways.php',
261
262 // Display settings.
263 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-display.php',
264
265 // Emails settings.
266 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-email.php',
267
268 // Addons settings.
269 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-addon.php',
270
271 // License settings.
272 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-license.php',
273
274 // Advanced settings.
275 include GIVE_PLUGIN_DIR . 'includes/admin/settings/class-settings-advanced.php',
276 );
277
278 // Output.
279 return $settings;
280 }
281 add_filter( 'give-settings_get_settings_pages', 'give_settings_page_pages', 0, 1 );
282
283
284 /**
285 * Add setting tab to give-settings page
286 *
287 * @since 1.8
288 * @param array $settings
289 * @return array
290 */
291 function give_reports_page_pages( $settings ) {
292 include 'abstract-admin-settings-page.php';
293
294 $settings = array(
295 // Earnings.
296 include 'reports/class-earnings-report.php',
297
298 // Forms.
299 include 'reports/class-forms-report.php',
300
301 // Gateways.
302 include 'reports/class-gateways-report.php',
303
304 );
305
306 // Output.
307 return $settings;
308 }
309 add_filter( 'give-reports_get_settings_pages', 'give_reports_page_pages', 0, 1 );
310
311 /**
312 * Add setting tab to give-settings page
313 *
314 * @since 1.8
315 * @param array $settings
316 * @return array
317 */
318 function give_tools_page_pages( $settings ) {
319 include 'abstract-admin-settings-page.php';
320
321 $settings = array(
322
323 // Export.
324 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-export.php',
325
326 // Import
327 include_once GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-import.php',
328
329 // Logs.
330 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-logs.php',
331
332 // API.
333 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-api.php',
334
335 // Data.
336 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-data.php',
337
338 // System Info.
339 include GIVE_PLUGIN_DIR . 'includes/admin/tools/class-settings-system-info.php',
340 );
341
342 // Output.
343 return $settings;
344 }
345 add_filter( 'give-tools_get_settings_pages', 'give_tools_page_pages', 0, 1 );
346
347 /**
348 * Set default tools page tab.
349 *
350 * @since 1.8
351 * @param string $default_tab Default tab name.
352 * @return string
353 */
354 function give_set_default_tab_form_tools_page( $default_tab ) {
355 return 'export';
356 }
357 add_filter( 'give_default_setting_tab_give-tools', 'give_set_default_tab_form_tools_page', 10, 1 );
358
359
360 /**
361 * Set default reports page tab.
362 *
363 * @since 1.8
364 * @param string $default_tab Default tab name.
365 * @return string
366 */
367 function give_set_default_tab_form_reports_page( $default_tab ) {
368 return 'earnings';
369 }
370 add_filter( 'give_default_setting_tab_give-reports', 'give_set_default_tab_form_reports_page', 10, 1 );
371
372
373 /**
374 * Add a page display state for special Give pages in the page list table.
375 *
376 * @since 1.8.18
377 *
378 * @param array $post_states An array of post display states.
379 * @param WP_Post $post The current post object.
380 *
381 * @return array
382 */
383 function give_add_display_page_states( $post_states, $post ) {
384
385 switch ( $post->ID ) {
386 case give_get_option( 'success_page' ):
387 $post_states['give_successfully_page'] = __( 'Donation Success Page', 'give' );
388 break;
389
390 case give_get_option( 'failure_page' ):
391 $post_states['give_failure_page'] = __( 'Donation Failed Page', 'give' );
392 break;
393
394 case give_get_option( 'history_page' ):
395 $post_states['give_history_page'] = __( 'Donation History Page', 'give' );
396 break;
397 }
398
399 return $post_states;
400 }
401
402 // Add a post display state for special Give pages.
403 add_filter( 'display_post_states', 'give_add_display_page_states', 10, 2 );
404