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
|
<?php class PenNew_Theme_Option { /** * Constructor. */ public function __construct() { add_filter( 'mb_settings_pages', array( $this, 'settings_pages' ) );
// Register meta boxes and fields for settings page add_filter( 'rwmb_meta_boxes', array( $this, 'register_options' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
// Add hooks add_action( 'load-appearance_page_theme-options', array( $this, 'reset' ) );
add_action( 'mb_settings_page_submit_buttons', array( $this, 'add_button_reset' ) );
add_action( 'admin_bar_menu', array( $this,'admin_bar_menu' ), 50 );
}
/** * Add admin bar menu * @global $menu , $submenu, $wp_admin_bar * @return void */ function admin_bar_menu() { global $menu, $submenu, $wp_admin_bar;
if ( ! is_super_admin() || ! is_admin_bar_showing() ) { return; } $args = array( 'id' => 'pennew-theme-option', 'title' => '<span class="ab-icon dashicons-portfolio"></span>' . esc_html( 'Pennew Options', 'edupro' ), 'href' => admin_url( 'themes.php?page=theme-options' ), 'meta' => array( 'class' => 'pennew-theme-option' ) ); $wp_admin_bar->add_node( $args ); }
public function add_button_reset() { submit_button( esc_html__( 'Reset Settings', 'edupro' ), 'delete', 'edupro-reset-settings', false ); }
/** * Enqueue style theme */ public function admin_enqueue_scripts() { //wp_enqueue_style( 'edupro-theme-options', get_template_directory_uri() . '/css/admin.css', '', '1.0.0' ); }
/** * * Add setting page * * @param $settings_pages * * @return array */ public function settings_pages( $settings_pages ) { $settings_pages[] = array( 'id' => 'theme-options', 'option_name' => 'theme_mods_' . get_template(), 'menu_title' => esc_html__( 'Theme Options', 'edupro' ), 'parent' => 'themes.php', 'icon_url' => 'dashicons-images-alt', 'submenu_title' => esc_html__( 'Settings', 'edupro' ), 'style' => 'no-boxes', 'columns' => 1, 'tabs' => array( 'general' => esc_html__( 'General', 'edupro' ), ), // Tab style: 'default', 'box' or 'left'. Optional 'tab_style' => 'box', 'position' => 68, );
return $settings_pages; }
/** * Add option * * @param $meta_boxes * * @return array */ public function register_options( $meta_boxes ) { $pattern = PENCI_ADDONS_DIR . '/theme-options/*.php'; $files = array_map( 'basename', glob( $pattern ) ); $files = array_diff( $files, array( 'default.php', 'theme-options.php' ) ); foreach ( $files as $file ) { $meta_boxes[] = include $file; }
return $meta_boxes; }
/** * Get list font size * * @return array */ public static function list_font_size() {
$font_size = range( 0, 48 ); foreach ( $font_size as $k => $v ) {
$font_size[ $k ] = $v . ' px'; }
return $font_size; }
function reset() { if ( empty( $_POST['edupro-reset-settings'] ) ) { return; }
edupro_get_setting_default( '', true ); } }
new PenNew_Theme_Option;
|