-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathorgSeries-options.php
More file actions
154 lines (121 loc) · 5.05 KB
/
Copy pathorgSeries-options.php
File metadata and controls
154 lines (121 loc) · 5.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?php
/**
* Publishpress Series Options page loader.
*
* This file loads modular settings files from inc/settings/.
* Each tab, validation, page rendering, and upgrade logic lives in its own file.
*
* @package Publishpress Series
* @since 2.2
*/
// Load modular settings files
require_once dirname(__FILE__) . '/inc/settings/settings-validation.php';
require_once dirname(__FILE__) . '/inc/settings/settings-page.php';
require_once dirname(__FILE__) . '/inc/settings/settings-upgrade.php';
require_once dirname(__FILE__) . '/inc/settings/ajax-layout-options.php';
// Admin menu
add_action('admin_menu', 'orgseries_create_options');
// Settings link on plugins page
add_filter('plugin_action_links', 'inject_orgseries_settings_link', 10, 2 );
// Upgrade and notices
add_action('admin_init', 'publishpress_series_process_upgrade');
add_action('admin_init', 'publishpress_series_sync_menu_order');
add_action('admin_notices', 'publishpress_series_upgrade_require_changes');
add_action('after_plugin_row', 'publishpress_series_upgrade_require_row_notice', 10, 2);
// Enqueue tooltips assets
add_action('admin_enqueue_scripts', 'ppseries_enqueue_tooltips_assets');
/**
* Add Settings link to plugins.
*/
function inject_orgseries_settings_link($links, $file) {
static $this_plugin;
global $orgseries;
if ( !$this_plugin ) $this_plugin = PPSERIES_BASE_NAME;
if ( $file == $this_plugin ) {
$settings_link = '<a href="'. esc_url(ppseries_series_settings_page()) .'">'.esc_html__("Settings", 'organize-series').'</a>';
array_unshift($links, $settings_link);
}
return $links;
}
//add orgSeries to the options submenu and register settings
function orgseries_create_options() {
global $orgseries;
$page = add_menu_page(
__('PublishPress Series Options', 'organize-series'),
_x('Series', 'top-level admin menu label', 'organize-series'),
'manage_publishpress_series',
'orgseries_options_page',
'orgseries_option_page',
'dashicons-book-alt',
68
);
add_submenu_page(
'orgseries_options_page',
__('Settings', 'organize-series'),
__('Settings', 'organize-series'),
'manage_publishpress_series',
'orgseries_options_page',
'orgseries_option_page'
);
do_action('publishpress_series_admin_menu_page');
add_action('admin_init', 'orgseries_options_init');
add_action('admin_print_scripts-' . $page, 'orgseries_options_scripts');
}
// enqueue tooltips assets
function ppseries_enqueue_tooltips_assets() {
if (isset($_GET['page']) && $_GET['page'] === 'orgseries_options_page') {
wp_enqueue_style(
'pp-tooltips-library',
plugin_dir_url(__FILE__) . 'assets/css/tooltip.min.css',
array(),
ORG_SERIES_VERSION
);
wp_enqueue_script(
'pp-tooltips-library',
plugin_dir_url(__FILE__) . 'assets/js/tooltip.min.js',
array(),
ORG_SERIES_VERSION,
true
);
}
}
function orgseries_options_scripts() {
wp_enqueue_script( 'orgseries_options' );
}
//register orgseries options
function orgseries_options_init() {
$orgseries_options = 'orgseries_options';
$org_opt = 'org_series_options';
register_setting($orgseries_options, $org_opt, 'orgseries_validate');
// Load tab files — each registers its own section + fields
require_once dirname(__FILE__) . '/inc/settings/tab-post-list-box.php';
require_once dirname(__FILE__) . '/inc/settings/tab-post-details.php';
require_once dirname(__FILE__) . '/inc/settings/tab-post-navigation.php';
require_once dirname(__FILE__) . '/inc/settings/tab-taxonomy.php';
require_once dirname(__FILE__) . '/inc/settings/tab-series-category.php';
require_once dirname(__FILE__) . '/inc/settings/tab-metabox.php';
require_once dirname(__FILE__) . '/inc/settings/tab-legacy.php';
if ( ! pp_series_is_pro_active() ) {
require_once dirname(__FILE__) . '/inc/settings/tab-post-types.php';
require_once dirname(__FILE__) . '/inc/settings/tab-pro-features.php';
}
require_once dirname(__FILE__) . '/inc/settings/tab-advanced.php';
// Hook for Pro to add additional settings sections
do_action('publishpress_series_register_settings_sections');
add_filter( 'ppseries_admin_settings_tabs', 'ppseries_filter_admin_settings_tabs');
}
function ppseries_filter_admin_settings_tabs($settings_tabs){
if (!pp_series_is_pro_active()) {
$settings_tabs['series_cpt_settings'] = esc_html__('Post Types', 'organize-series');
}
$settings_tabs['series_taxonomy_base_settings'] = esc_html__('Taxonomy', 'organize-series');
$settings_tabs['series_group_settings'] = esc_html__('Series Category', 'organize-series');
$settings_tabs['series_metabox_settings'] = esc_html__('Metabox', 'organize-series');
$settings_tabs['series_legacy_settings'] = esc_html__('Legacy', 'organize-series');
if (!pp_series_is_pro_active()) {
$settings_tabs['series_addon_settings'] = esc_html__('Pro Features', 'organize-series');
}
$settings_tabs['series_uninstall_settings'] = esc_html__('Advanced', 'organize-series');
return $settings_tabs;
}
?>