Server IP : 192.158.238.246 / Your IP : 52.14.137.94 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/jenniferflocom/www/wp-content/themes/open-shop/customizer/ |
Upload File : |
<?php /** * Customizer Custom function. * * @package Open Shop * @author ThemeHunk * @since Open Shop 1.0.0 */ /** * Sanitization for textarea field */ function open_shop_sanitize_textarea( $input ){ global $allowedposttags; $output = wp_kses( $input, $allowedposttags ); return $output; } function open_shop_sanitize_text( $string ) { return wp_kses_post( balanceTags( $string ) ); } function open_shop_sanitize_font_weight( $input ) { $valid = array( 'normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900', ); if ( in_array( $input, $valid ) ) { return $input; } else { return 'normal'; } } /** * Returns a sanitized filepath if it has a valid extension. */ function open_shop_sanitize_upload( $upload ) { $return = ''; $fype = wp_check_filetype( $upload ); if ( $fype["ext"] ) { $return = esc_url_raw( $upload ); } return $return; } /** * Checkbox sanitization callback * */ function open_shop_sanitize_checkbox( $checked ) { // Boolean check. return ( ( isset( $checked ) && true == $checked ) ? true : false ); } /** * Select sanitization callback */ function open_shop_sanitize_select( $input, $setting ) { // Ensure input is a slug. $input = sanitize_key( $input ); // Get list of choices from the control associated with the setting. $choices = $setting->manager->get_control( $setting->id ); if (is_object($choices)) { $choices = $choices->choices; } // If the input is a valid key, return it; otherwise, return the default. if (is_array($choices)) { return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } } /** * Color sanitization callback * * @since 1.2.1 */ function open_shop_sanitize_color( $color ){ if ( empty( $color ) || is_array( $color ) ){ return ''; } // If string does not start with 'rgba', then treat as hex. // sanitize the hex color and finally convert hex to rgba if ( false === strpos( $color, 'rgba' ) ) { return sanitize_hex_color( $color ); } // By now we know the string is formatted as an rgba color so we need to further sanitize it. $color = str_replace( ' ', '', $color ); sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha ); return 'rgba('.$red.','.$green.','.$blue.','.$alpha.')'; } // Multiple Checkbox Show function open_shop_checkbox_explode( $values ){ $multi_values = !is_array( $values ) ? explode( ',', $values ) : $values; return !empty( $multi_values ) ? array_map( 'sanitize_text_field', $multi_values ) : array(); } // Multiple Checkbox Show function open_shop_sanitize_number( $val, $setting ){ $input_attrs = $setting->manager->get_control( $setting->id )->input_attrs; if ( isset( $input_attrs ) ) { $input_attrs['min'] = isset( $input_attrs['min'] ) ? $input_attrs['min'] : 0; $input_attrs['step'] = isset( $input_attrs['step'] ) ? $input_attrs['step'] : 1; if ( isset( $input_attrs['max'] ) && $val > $input_attrs['max'] ) { $val = $input_attrs['max']; } elseif ( $val < $input_attrs['min'] ) { $val = $input_attrs['min']; } $dv = $val / $input_attrs['step']; $dv = round( $dv ); $val = $dv * $input_attrs['step']; $val = number_format( (float) $val, 2, '.', '' ); if ( $val == (int) $val ) { $val = (int) $val; } } return is_numeric( $val ) ? $val : 0; } // radio function open_shop_sanitize_radio( $input, $setting ){ // Ensure input is a slug. $input = sanitize_key( $input ); // Get list of choices from the control associated with the setting. $choices = $setting->manager->get_control( $setting->id ); if (is_object($choices)) { $choices = $choices->choices; } // If the input is a valid key, return it; otherwise, return the default. if (is_array($choices)) { return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } } // MULTI-CHOICE function open_sanitize_multi_choices( $input, $setting ){ // Get list of choices from the control // associated with the setting. $choices = $setting->manager->get_control( $setting->id )->choices; $input_keys = $input; foreach ( $input_keys as $key => $value ){ if ( ! array_key_exists( $value, $choices ) ){ unset( $input[ $key ] ); } } // If the input is a valid key, return it; // otherwise, return the default. return ( is_array( $input ) ? $input : $setting->default ); } //Repeater Control /** * Sanitize repeater control. * * @param object $value Control output. * * @return object */ function open_shop_repeater_sanitize( $value ) { $value_decoded = json_decode( $value, true ); if ( ! empty( $value_decoded ) ) { foreach ( $value_decoded as $boxk => $box ) { foreach ( $box as $key => $value ) { $value_decoded[ $boxk ][ $key ] = wp_kses_post( force_balance_tags( $value ) ); } } return json_encode( $value_decoded ); } return $value; } /** * Default color picker palettes */ if ( ! function_exists( 'open_shop_default_color_palettes' ) ){ function open_shop_default_color_palettes() { $palettes = array( '#000000', '#ffffff', '#dd3333', '#dd9933', '#eeee22', '#81d742', '#1e73be', '#8224e3', ); // Apply filters and return return apply_filters( 'open_shop_default_color_palettes', $palettes ); } } // Open_Shop_Customizer_Sanitizes if ( ! class_exists( 'Open_Shop_Customizer_Sanitizes' ) ){ /** * Customizer Sanitizes Initial setup */ class Open_Shop_Customizer_Sanitizes{ /** * Instance * * @access private * @var object */ private static $instance; /** * Initiator */ public static function get_instance(){ if ( ! isset( self::$instance ) ){ self::$instance = new self; } return self::$instance; } /** * Constructor */ public function __construct() { } /** * Sanitize responsive Spacing * * @param number $val Customizer setting input number. * @return number Return number. * @since 1.2.1 */ static public function open_sanitize_responsive_spacing( $val ) { $spacing = array( 'desktop' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'tablet' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'mobile' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); if ( isset( $val['desktop'] ) ) { $spacing['desktop'] = array_map( function ( $value ) { return ( is_numeric( $value ) && $value >= 0 ) ? $value : ''; }, $val['desktop'] ); $spacing['tablet'] = array_map( function ( $value ) { return ( is_numeric( $value ) && $value >= 0 ) ? $value : ''; }, $val['tablet'] ); $spacing['mobile'] = array_map( function ( $value ) { return ( is_numeric( $value ) && $value >= 0 ) ? $value : ''; }, $val['mobile'] ); if ( isset( $val['desktop-unit'] ) ) { $spacing['desktop-unit'] = $val['desktop-unit']; } if ( isset( $val['tablet-unit'] ) ) { $spacing['tablet-unit'] = $val['tablet-unit']; } if ( isset( $val['mobile-unit'] ) ) { $spacing['mobile-unit'] = $val['mobile-unit']; } return $spacing; } else { foreach ( $val as $key => $value ) { $val[ $key ] = is_numeric( $val[ $key ] ) ? $val[ $key ] : ''; } return $val; } } } } Open_Shop_Customizer_Sanitizes::get_instance(); function open_shop_customize_function_register( $wp_customize ){ /** * Multiple checkbox customize control class. * * @since 1.0.0 * @access public */ class Open_Shop_Customize_Control_Checkbox_Multiple extends WP_Customize_Control{ /** * The type of customize control being rendered. * * @since 1.0.0 * @access public * @var string */ public $type = 'checkbox-multiple'; /** * Enqueue scripts/styles. * * @since 1.0.0 * @access public * @return void */ public function enqueue() { } /** * Displays the control content. * * @since 1.0.0 * @access public * @return void */ public function render_content() { if ( empty( $this->choices ) ){ return; } ?> <?php if ( !empty( $this->label ) ) : ?> <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span> <?php endif; ?> <?php if ( !empty( $this->description ) ) : ?> <span class="description customize-control-description"><?php echo esc_html($this->description); ?></span> <?php endif; ?> <?php $multi_values = !is_array( $this->value() ) ? explode( ',', $this->value() ) : $this->value(); ?> <ul> <?php foreach ( $this->choices as $value => $label ) : ?> <li> <label> <input type="checkbox" value="<?php echo esc_attr( $value ); ?>" <?php checked( in_array( $value, $multi_values ) ); ?> /> <?php echo esc_html( $label ); ?> </label> </li> <?php endforeach; ?> </ul> <input type="hidden" <?php $this->link(); ?> value="<?php echo esc_attr( implode( ',', $multi_values ) ); ?>" /> <?php } } /** *widget-redirect * */ class Open_Shop_Widegt_Redirect extends WP_Customize_Control { /** * Control id * * @var string $id Control id. */ public $id = ''; /** * Button class. * * @var mixed|string */ public $button_class = ''; /** * Icon class. * * @var mixed|string */ public $icon_class = ''; /** * Button text. * * @var mixed|string */ public $button_text = ''; /** * Text constructor. * * @param WP_Customize_Manager $manager Customizer manager. * @param string $id Control id. * @param array $args Argument. */ public function __construct( $manager, $id, $args = array() ) { parent::__construct( $manager, $id, $args ); $this->id = $id; if ( ! empty( $args['button_class'] ) ) { $this->button_class = $args['button_class']; } if ( ! empty( $args['icon_class'] ) ) { $this->icon_class = $args['icon_class']; } if ( ! empty( $args['button_text'] ) ) { $this->button_text = $args['button_text']; } } /** * Render content for the control. * * */ public function render_content() { if ( ! empty( $this->button_text ) ) { echo '<button type="button" class="button menu-shortcut ' . esc_attr( $this->button_class ) . '" tabindex="0">'; if ( ! empty( $this->button_class ) ) { echo '<span class="dashicons dashicons-admin-generic" style="margin-right: 10px;margin-top:3PX; color:#999;"></span>'; } echo esc_html( $this->button_text ); echo '</button>'; } } } class Open_Shop_Customize_Sort_List extends WP_Customize_Control { /** * The type of customize control being rendered. */ public $type = 'sort-list'; public function enqueue() { } public function render_content() { if ( empty( $this->choices ) ){ return; } ?> <?php if ( !empty( $this->label ) ) : ?> <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span> <?php endif; ?> <?php if ( !empty( $this->description ) ) : ?> <span class="description customize-control-description"><?php echo esc_html($this->description); ?></span> <?php endif; $sort_arr = $this->value(); $default_arr = explode( ',',implode(',',array_keys($this->choices))); $new_arr = array_unique(array_merge($sort_arr,$default_arr)); $multi_values = (!empty($sort_arr)) ? explode( ',',implode(',',$new_arr )) : explode( ',',implode(',',array_keys($this->choices))); ?> <ul id="sortable"> <?php foreach ( $multi_values as $value => $label ) : ?> <li class="ui-state-default" id='<?php echo esc_attr($label); ?>' ><label><?php echo esc_html($this->choices[$label]); ?></label></li> <?php endforeach; ?> </ul> <input type="hidden" <?php echo esc_attr($this->link()); ?> value="" /> <?php } } // divider class Open_Shop_Misc_Control extends WP_Customize_Control{ public $description = ''; public $url = ''; public $label = ''; public $title = ''; public function render_content() { switch ( $this->type ) { default: case 'heading': echo '<span class="customize-control-title">'.esc_html($this->title).'</span>'; break; case 'custom_message' : echo '<p class="description">' .esc_html($this->description). '</p>'; break; case 'pro-text' : echo '<span class="view-pro">' .esc_html($this->label). '</span><span class="pro-desc">' .esc_html($this->description). '</span>'; break; case'pro-link': echo sprintf( '<a href="%1$s" target="_blank">'.esc_html($this->label).'</a>', esc_url( $this->url ) ); break; case 'doc-link': echo sprintf( '<p class="opn-doc-link"> %1$s <a href="%2$s" target="_blank">%3$s</a></p>', esc_html( $this->description ), esc_url( $this->url ), esc_html__('Doc', 'open-shop' ) ); break; case 'hr' : echo '<hr />'; break; } } } // Register customizer setting $wp_customize->register_panel_type( 'Open_Shop_WP_Customize_Panel' ); $wp_customize->register_section_type( 'Open_Shop_WP_Customize_Section' ); $wp_customize->register_section_type( 'Open_Shop_WP_Customize_Control_Radio_Image' ); $wp_customize->register_section_type( 'Open_Shop_WP_Customizer_Range_Value_Control' ); $wp_customize->register_section_type( 'Open_Shop_Customizer_Color_Control' ); $wp_customize->register_section_type( 'Open_Shop_Customize_Custom_Background_Control' ); $wp_customize->register_section_type( 'Open_Shop_Customizer_Buttonset_Control' ); $wp_customize->register_section_type( 'Open_Shop_Toggle_Control' ); } add_action('customize_register','open_shop_customize_function_register'); //js function open_shop_customizer_script_registers(){ wp_enqueue_script( 'open_custom_customizer_script', get_template_directory_uri() . '/customizer/js/customizer.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_script', OPEN_SHOP_THEME_URI .'customizer/extend-customizer/extend-js/extend-customizer.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script', get_template_directory_uri() . '/customizer/js/customizer-toogle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_above_header', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-above-header-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_main_header', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-main-header-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_container', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-container-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_blog_archive', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customizer-blog-archive-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_above_footer', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-above-footer-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_widget_footer', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-footer-widget-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_bottom_footer', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customzier-bottom-footer-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_top_lider', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-top-slider-toggle.js', array("jquery"), '', true ); wp_enqueue_script( 'open_customizer_toggle_script_cat_slider', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customize-cat-slider-toggle.js', array("jquery"), '', true ); //banner wp_enqueue_script( 'open_customizer_toggle_script_banner', get_template_directory_uri() . '/customizer/js/customizer-control-toggle/customizer-banner-toggle.js', array("jquery"), '', true ); //widget wp_enqueue_script( 'open_widget', get_template_directory_uri() . '/customizer/js/widget.js', array("jquery"), '', true ); } add_action('customize_controls_enqueue_scripts', 'open_shop_customizer_script_registers' ); // style function open_shop_customizer_style_registers(){ wp_enqueue_style('open_shop_customizer_styles', OPEN_SHOP_THEME_URI .'customizer/extend-customizer/extend-css/extend-customizer.css'); wp_enqueue_style( 'font-awesome', OPEN_SHOP_THEME_URI . '/third-party/fonts/font-awesome/css/font-awesome.css', OPEN_SHOP_THEME_VERSION); } add_action('customize_controls_print_styles', 'open_shop_customizer_style_registers'); /** * Used by hook: 'customize_preview_init' * * @see add_action('customize_preview_init',$func) */ function open_shop_customizer_live_preview(){ wp_enqueue_script( 'open_shop_live_customizer', get_template_directory_uri().'/customizer/js/live-customizer.js', array("jquery"),'', true ); } add_action('customize_preview_init','open_shop_customizer_live_preview');