Server IP : 104.21.14.48 / Your IP : 13.59.58.18 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/themes/consultstreet/inc/customizer/customizer-settings/ |
Upload File : |
<?php /** * Header top options. * * @package consultstreet */ defined( 'ABSPATH' ) || exit; /** * Class ConsultStreet_Customize_Base_Option */ class ConsultStreet_Customize_Base_Option { /** * Array to create customizer options. * * @var array */ protected $elements = array(); /** * Active callback array provided in $elements array. * * @var array */ protected $active_callback_old = array(); /** * Record the count of array provided for active callback. * * @var int */ protected $ac_arr_count = 0; /** * Record the count of evaluate() method called. * * @var int */ private $count_evaluate = 0; /** * Setting's default values. * * @var array */ protected $ac_default = array(); /** * ConsultStreet_Customize_Base_Option constructor. */ public function __construct() { // Register customizer options. add_action( 'customize_register', array( $this, 'consultstreet_customizer_options' ) ); // Get array of elements for particular class. $this->elements = $this->elements(); } /** * Provides an array of Menu slug => name for dropdown. * * @return array */ protected function get_menu_options() { $all_menus = get_terms( array( 'taxonomy' => 'nav_menu', 'hide_empty' => true, ) ); $menu_options = array(); $menu_options['none'] = esc_html__( 'None', 'consultstreet' ); foreach ( $all_menus as $menu_item ) { $menu_options[ $menu_item->slug ] = esc_html( $menu_item->name ); } return $menu_options; } /** * Register customizer option. * * @param WP_Customize_Manager $wp_customize Manager instance. */ public function consultstreet_customizer_options( $wp_customize ) { // Loop through array elements. foreach ( $this->elements as $el_key => $el_data ) : /** * Setting. */ $setting_args = $el_data['setting']; $default = isset( $setting_args['default'] ) ? $setting_args['default'] : ''; $option_type = isset( $el_data['setting']['type'] ) ? $el_data['setting']['type'] : 'theme_mod'; $sanitize_callback = isset( $setting_args['sanitize_callback'] ) ? $setting_args['sanitize_callback'] : ''; $wp_customize->add_setting( $el_key, array( 'default' => $default, 'type' => $option_type, 'capability' => 'edit_theme_options', 'sanitize_callback' => $sanitize_callback, ) ); /** * Control. */ $control_args = $el_data['control']; $control_type = $control_args['type']; // Is custom control? $is_custom_control = ( isset( $control_args['is_default_type'] ) && true === $control_args['is_default_type'] ) ? $control_args['is_default_type'] : 0; $control_args['setting'] = $el_key; // If array provided for active callback modify it to function reference. if ( isset( $control_args['active_callback'] ) && is_array( $control_args['active_callback'] ) ) { $this->active_callback_old[] = $control_args['active_callback']; $cb_setting_id = $this->active_callback_old[ $this->ac_arr_count ][0]['setting']; if ( 'consultstreet_pro' === substr( $cb_setting_id, 0, 9 ) && function_exists( 'consultstreet_pro_options' ) ) { $this->ac_default[] = $wp_customize->get_setting( 'consultstreet_pro[' . $cb_setting_id . ']' )->default; } else { $this->ac_default[] = $wp_customize->get_setting( $cb_setting_id )->default; } $control_args['active_callback'] = array( $this, 'evaluate' ); $this->ac_arr_count++; } // If custom control, unset type and use object, else... if ( ! $is_custom_control ) { unset( $control_args['type'] ); $control_type_uc = implode( '_', array_map( 'ucfirst', explode( '_', $control_type ) ) ); $control_type = 'ConsultStreet_Customize_' . $control_type_uc . '_Control'; $wp_customize->add_control( new $control_type( $wp_customize, $el_key, $control_args ) ); } else { $wp_customize->add_control( $el_key, $control_args ); } endforeach; } /** * Evaluates the active callback array. * * @return bool */ public function evaluate() { foreach ( $this->active_callback_old[ ( $this->count_evaluate ) ] as $count => $ruleset ) : $ac_setting_id = $ruleset['setting']; $operator = $ruleset['operator']; if ( 'consultstreet_pro' === substr( $ac_setting_id, 0, 9 ) && function_exists( 'consultstreet_pro_options' ) ) { $option_val = consultstreet_pro_options( $ac_setting_id, 'text_html' ); } else { $option_val = get_theme_mod( $ac_setting_id, 'text_html' ); } $check_val = $ruleset['value']; switch ( $operator ) { case '===': $show[] = ( $option_val === $check_val ) ? true : false; break; case '==': $show[] = ( $option_val == $check_val ) ? true : false; break; case '!==': $show[] = ( $option_val !== $check_val ) ? true : false; break; case '!=': $show[] = ( $option_val != $check_val ) ? true : false; break; default: $show[] = ( $option_val == $check_val ) ? true : false; break; } endforeach; // Evaluate final result. if ( isset( $show ) ) { $this->count_evaluate++; foreach ( $show as $result ) { if ( ! $result ) { return false; } } } return true; } }