Server : Apache System : Linux server.lienzindia.com 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 User : plutus ( 1007) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/plutus/public_html/wp-content/themes/vrm/inc/customizer/ |
Upload File : |
<?php namespace TotalTheme\Customizer; use TotalTheme\Customizer; \defined( 'ABSPATH' ) || exit; /** * Customizer Manager. */ class Manager extends Customizer { /** * Start things up. */ public function __construct() { $this->init_hooks(); } /** * Hook into actions and filters. */ public function init_hooks() { add_action( 'admin_menu', [ $this, 'add_admin_submenu_page' ], 40 ); add_action( 'admin_init', [ $this, 'register_settings' ] ); } /** * Add sub menu page for the custom CSS input. */ public function add_admin_submenu_page() { $hook_suffix = add_submenu_page( WPEX_THEME_PANEL_SLUG, esc_html__( 'Customizer Manager', 'total' ), esc_html__( 'Customizer Manager', 'total' ), 'administrator', // allow admin to decide what "edit_theme_options" roles can edit. WPEX_THEME_PANEL_SLUG . '-customizer', array( $this, 'render_admin_page' ) ); \add_action( "load-{$hook_suffix}", [ $this, 'admin_help_tab' ] ); } /** * Add admin help tab. */ public function admin_help_tab() { $screen = \get_current_screen(); if ( ! $screen ) { return; } $screen->add_help_tab( [ 'id' => 'totaltheme_customizer_manager', 'title' => \esc_html__( 'Overview', 'total' ), 'content' => '<p>' . esc_html__( 'Disable sections in the Customizer that you no longer need. It will NOT alter any options already set in the Customizer or disable sections visible on the front-end of your site.', 'total' ) . '</p>' ] ); } /** * Function that will register admin page settings. */ public function register_settings() { register_setting( 'wpex_customizer_editor', 'wpex_disabled_customizer_panels', array( 'type' => 'array', 'sanitize_callback' => array( $this, 'sanitize_callback' ), ) ); } /** * Sanitize option. */ public function sanitize_callback( $option ) { if ( is_array( $option ) ) { $option = array_map( 'sanitize_text_field', $option ); } else { $option = []; } return $option; } /** * Save option. */ protected function save_option( $option ) { $excluded_panels = []; $panels = $this->panels(); foreach ( $panels as $id => $val ) { if ( ! isset( $option[$id] ) ) { $excluded_panels[] = $id; } } if ( $excluded_panels ) { update_option( 'wpex_disabled_customizer_panels', $excluded_panels, false ); } else { delete_option( 'wpex_disabled_customizer_panels' ); } } /** * Settings page output. * */ public function render_admin_page() { if ( ! current_user_can( 'administrator' ) ) { return; } wp_enqueue_style( 'wpex-admin-pages' ); wp_enqueue_script( 'wpex-admin-pages' ); if ( array_key_exists( 'wpex_customizer_manager_nonce_field', $_POST ) && wp_verify_nonce( $_POST['wpex_customizer_manager_nonce_field'], 'wpex_customizer_manager_nonce_action' ) ) { $option = $_POST['wpex_disabled_customizer_panels'] ?? []; // allow disabling of all fields. $this->save_option( $option ); } ?> <div id="wpex-customizer-manager-admin-page" class="wrap"> <h2 class="nav-tab-wrapper"> <a href="#" class="nav-tab nav-tab-active"><?php esc_html_e( 'Panels', 'total' ); ?></a> <a href="<?php echo esc_url( admin_url( 'customize.php' ) ); ?>" class="nav-tab"><?php esc_html_e( 'Customizer', 'total' ); ?> <span class="dashicons dashicons-external"></span></a> </h2> <div class="wpex-check-uncheck"> <a href="#" class="wpex-customizer-check-all"><?php esc_html_e( 'Check all', 'total' ); ?></a> | <a href="#" class="wpex-customizer-uncheck-all"><?php esc_html_e( 'Uncheck all', 'total' ); ?></a> </div> <form method="post"> <table class="form-table wpex-customizer-editor-table"> <?php // Get panels. $panels = $this->panels(); // Get disabled panels. $disabled_panels = get_option( 'wpex_disabled_customizer_panels' ) ?: array(); // Loop through panels and add checkbox foreach ( $panels as $id => $val ) { $title = $val['title'] ?? $val; $condition = $val['condition'] ?? true; // Check if option should be hidden $is_hidden = isset( $val['condition'] ) && ! call_user_func( $val['condition'] ) ? true : false; // Check if a given section is enabled $is_enabled = wpex_has_customizer_panel( $id ) ? 'on' : ''; ?> <tr valign="top"<?php if ( $is_hidden ) echo ' style="display:none;"'; ?>> <th scope="row"><label for="wpex_disabled_customizer_panels[<?php echo esc_attr( $id ); ?>]"><?php echo esc_html( $title ); ?></label></th> <td> <?php // Condition isn't met so add setting as a hidden item if ( $is_hidden ) { ?> <input type="hidden" id="wpex_disabled_customizer_panels[<?php echo esc_attr( $id ); ?>]" name="wpex_disabled_customizer_panels[<?php echo esc_attr( $id ); ?>]"<?php checked( $is_enabled, 'on' ); ?>> <?php } // Display setting else { ?> <input class="wpex-customizer-editor-checkbox" type="checkbox" id="wpex_disabled_customizer_panels[<?php echo esc_attr( $id ); ?>]" name="wpex_disabled_customizer_panels[<?php echo esc_attr( $id ); ?>]"<?php checked( $is_enabled, 'on' ); ?>> <?php } ?> </td> </tr> <?php } ?> </table> <?php wp_nonce_field( 'wpex_customizer_manager_nonce_action', 'wpex_customizer_manager_nonce_field' ); ?> <?php submit_button(); ?> </form> </div> <?php } }