'; $content = ''; $i=0; $selected_tab = isset($_GET['setting_tab']) && $_GET['setting_tab'] ? sanitize_key($_GET['setting_tab']) : '' ; foreach ( (array) $wp_settings_sections[$page] as $section ) { //print_r($section); $class_active = ''; if ( $section['title'] ){ $class_active = (($selected_tab && $section['id'] == $selected_tab) || (!$selected_tab && !$i)) ? 'nav-tab-active' : ''; $tabs .= ''.$section['title'].' '; $i++; } if ( ! isset( $wp_settings_fields ) || !isset( $wp_settings_fields[$page] ) || !isset( $wp_settings_fields[$page][$section['id']] ) ){ continue; } $class_content_active = $class_active ? 'tab-target-active' : ''; ob_start(); echo '
'; if ( $section['callback'] ){ call_user_func( $section['callback'], $section ); } echo ''; do_settings_fields( $page, $section['id'] ); echo '
'; echo '
'; $content .= ob_get_clean(); } $tabs .= ''; echo $tabs.$content; return; } //////////////////////////////////////////////// /** * Register and add settings * * @return */ public static function settings_page_init(){ register_setting( ADB_Settings::$option_menu_slug, // Option group ADB_Settings::$option_name, // Option name array( __CLASS__, 'sanitize_settings' ) // Sanitize ); ///////// General add_settings_section( 'setting_section_general', // ID __('General',ADB_TEXTDOMAIN), // Title array( __CLASS__, 'print_section_general' ), // Callback ADB_Settings::$option_menu_slug // Page ); add_settings_field( 'classic_editor', // ID __('Use classic editor for Ad Block post type',ADB_TEXTDOMAIN), // Title array( __CLASS__, 'is_active_callback' ), // Callback ADB_Settings::$option_menu_slug, // Page 'setting_section_general', // Section array('option' => 'classic_editor', 'settings_name' => ADB_Settings::$option_name) // Args array ); add_settings_field( 'date_format', // ID __('Date format',ADB_TEXTDOMAIN), // Title array( __CLASS__, 'setting_date_format' ), // Callback ADB_Settings::$option_menu_slug, // Page 'setting_section_general' // Section ); //////////////// do_action('adb_settings_after_general_fields', ADB_Settings::$option_menu_slug, ADB_Settings::$option_name); return; } //////////////////////////////// /** * Sanitize each setting field as needed * * @param array $input Contains all settings fields as array keys * @return array */ static function sanitize_settings( $input ){ $new_input = array(); $new_input['date_format'] = $input['date_format'] == 'd/m/Y' || $input['date_format'] == 'm/d/Y' ? $input['date_format'] : 'd/m/Y'; $new_input['classic_editor'] = !$input['classic_editor'] ? 0 : 1; $new_input = apply_filters('adb_sanitize_'.ADB_Settings::$option_name, $new_input, $input); return $new_input; } //////////////////////////// /** * Print the Section text */ public static function print_section_general(){ // echo ''; } ////////////////////////////////////// public static function color_field_callback($args){ printf( '', isset( ADB_Settings::$settings[$args['option']] ) ? esc_attr( ADB_Settings::$settings[$args['option']]) : $args['color'] ); } //////////////////////////////////// public static function text_field_callback($args){ $add_class = isset($args['translate']) ? ' class="q_translatable"' : ''; printf( '', isset( ADB_Settings::$settings[$args['option']] ) ? esc_attr( ADB_Settings::$settings[$args['option']]) : '' ); } ///////////////////////////////////////// public static function textarea_callback($args){ printf( '', isset( ADB_Settings::$settings[$args['option']] ) ? esc_attr( ADB_Settings::$settings[$args['option']]) : '' ); } ///////////////////////////////////// public static function img_field_callback($args){ $img_src = isset( ADB_Settings::$settings[$args['option']] ) ? ADB_Settings::$settings[$args['option']] : ''; echo '
'; echo '
'; echo ''; } ////////////setting_page_select public static function setting_page_select($args){ //$args['settings_name'] $selected_page = isset(ADB_Settings::$settings[$args['option']]) ? ADB_Settings::$settings[$args['option']] : 0; $args2 = array( 'post_type' => 'page', 'numberposts' => -1, 'post_status' => 'publish', 'orderby' => 'menu_order', 'order' => 'ASC', ); $posts = get_posts( $args2 ); $post_options = ''; if ( $posts ) { foreach ( $posts as $post ) { $post_options .= ''; } } $post_options = $post_options ? '' : ''; echo $post_options; } /////////////////////////////////////////////// public static function is_active_callback($args){ $check = isset(ADB_Settings::$settings[$args['option']]) ? ADB_Settings::$settings[$args['option']] : 0; $checked1 = $check ? 'checked' : ''; $checked2 = !$check ? 'checked' : ''; echo '

'; echo '

'; } ///////////////////// public static function setting_date_format(){ $check = isset(ADB_Settings::$settings['date_format']) ? ADB_Settings::$settings['date_format'] : 'd/m/Y'; $checked1 = $check == 'd/m/Y' ? 'checked' : ''; $checked2 = $check == 'm/d/Y' ? 'checked' : ''; echo '

'; echo '

'; } /////////////////////////// } ADB_Settings_admin::init();