WP_Customize_Setting::js_value PHP Method

js_value() public method

Sanitize the setting's value for use in JavaScript.
Since: 3.4.0
public js_value ( ) : mixed
return mixed The requested escaped value.
    public function js_value()
    {
        /**
         * Filters a Customize setting value for use in JavaScript.
         *
         * The dynamic portion of the hook name, `$this->id`, refers to the setting ID.
         *
         * @since 3.4.0
         *
         * @param mixed                $value The setting value.
         * @param WP_Customize_Setting $this  WP_Customize_Setting instance.
         */
        $value = apply_filters("customize_sanitize_js_{$this->id}", $this->value(), $this);
        if (is_string($value)) {
            return html_entity_decode($value, ENT_QUOTES, 'UTF-8');
        }
        return $value;
    }

Usage Example

 /**
  * Test js_value and json methods.
  *
  * @see WP_Customize_Setting::js_value()
  * @see WP_Customize_Setting::json()
  */
 public function test_js_value()
 {
     $default = "";
     $args = array('type' => 'binary', 'default' => $default, 'transport' => 'postMessage', 'dirty' => true, 'sanitize_js_callback' => create_function('$value', 'return base64_encode( $value );'));
     $setting = new WP_Customize_Setting($this->manager, 'name', $args);
     $this->assertEquals($default, $setting->value());
     $this->assertEquals(base64_encode($default), $setting->js_value());
     $exported = $setting->json();
     $this->assertArrayHasKey('type', $exported);
     $this->assertArrayHasKey('value', $exported);
     $this->assertArrayHasKey('transport', $exported);
     $this->assertArrayHasKey('dirty', $exported);
     $this->assertEquals($setting->js_value(), $exported['value']);
     $this->assertEquals($args['type'], $setting->type);
     $this->assertEquals($args['transport'], $setting->transport);
     $this->assertEquals($args['dirty'], $setting->dirty);
 }