'px' ); /** * Enqueue control related scripts/styles. * * @access public */ public function enqueue() { $css_uri = ASTRA_THEME_URI . 'inc/customizer/custom-controls/responsive-spacing/'; $js_uri = ASTRA_THEME_URI . 'inc/customizer/custom-controls/responsive-spacing/'; wp_enqueue_script( 'astra-responsive-spacing', $js_uri . 'responsive-spacing.js', array( 'jquery', 'customize-base' ), ASTRA_THEME_VERSION, true ); wp_enqueue_style( 'astra-responsive-spacing', $css_uri . 'responsive-spacing.css', null, ASTRA_THEME_VERSION ); } /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $val = maybe_unserialize( $this->value() ); if ( ! is_array( $val ) || is_numeric( $val ) ) { $val = array( 'desktop' => array( 'top' => $val, 'right' => '', 'bottom' => $val, 'left' => '', ), 'tablet' => array( 'top' => $val, 'right' => '', 'bottom' => $val, 'left' => '', ), 'mobile' => array( 'top' => $val, 'right' => '', 'bottom' => $val, 'left' => '', ), 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); } /* Control Units */ $units = array( 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); foreach ( $units as $unit_key => $unit_value ) { if ( ! isset( $val[ $unit_key ] ) ) { $val[ $unit_key ] = $unit_value; } } $this->json['value'] = $val; $this->json['choices'] = $this->choices; $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['linked_choices'] = $this->linked_choices; $this->json['unit_choices'] = $this->unit_choices; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } $this->json['inputAttrs'] = maybe_serialize( $this->input_attrs() ); } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?>