public function add_settings($args)
 {
     if (isset($args['settings']) && is_array($args['settings'])) {
         $settings = $args['settings'];
         $defaults = isset($args['default']) ? $args['default'] : array();
         $sanitize_callback = $args['sanitize_callback'];
         foreach ($settings as $setting_key => $setting_value) {
             $default = isset($defaults[$setting_key]) ? $defaults[$setting_key] : '';
             $transport = isset($args['transport']) ? $args['transport'] : 'refresh';
             if (isset($args['sanitize_callback']) && is_array($args['sanitize_callback'])) {
                 if (isset($args['sanitize_callback'][$setting_key])) {
                     $sanitize_callback = Kirki_Field::sanitize_callback('', array('sanitize_callback' => $args['sanitize_callback'][$setting_key]));
                 }
             }
             $this->wp_customize->add_setting($setting_value, array('default' => $default, 'type' => $args['option_type'], 'capability' => $args['capability'], 'sanitize_callback' => $sanitize_callback, 'transport' => $transport));
         }
     }
     if (isset($args['type']) && array_key_exists($args['type'], Kirki_Control::$setting_types)) {
         // We must instantiate a custom class for the setting
         $setting_classname = Kirki_Control::$setting_types[$args['type']];
         $this->wp_customize->add_setting(new $setting_classname($this->wp_customize, $args['settings'], array('default' => isset($args['default']) ? $args['default'] : '', 'type' => $args['option_type'], 'capability' => $args['capability'], 'transport' => isset($args['transport']) ? $args['transport'] : 'refresh', 'sanitize_callback' => $args['sanitize_callback'])));
     } else {
         $this->wp_customize->add_setting($args['settings'], array('default' => isset($args['default']) ? $args['default'] : '', 'type' => $args['option_type'], 'capability' => $args['capability'], 'transport' => isset($args['transport']) ? $args['transport'] : 'refresh', 'sanitize_callback' => $args['sanitize_callback']));
     }
 }
Esempio n. 2
0
 public function test_sanitize_callback()
 {
     $this->assertEquals('__return_true', Kirki_Field::sanitize_callback(array('sanitize_callback' => '__return_true')));
     $this->assertEquals(array('Kirki_Sanitize', 'checkbox'), Kirki_Field::sanitize_callback(array('type' => 'checkbox')));
     $this->assertEquals(array('Kirki_Sanitize', 'color'), Kirki_Field::sanitize_callback(array('type' => 'color-alpha')));
     $this->assertEquals(array('Kirki_Sanitize', 'color'), Kirki_Field::sanitize_callback(array('type' => 'color')));
     $this->assertEquals(array('Kirki_Sanitize', 'unfiltered'), Kirki_Field::sanitize_callback(array('type' => 'custom')));
     $this->assertEquals(array('Kirki_Sanitize', 'dropdown_pages'), Kirki_Field::sanitize_callback(array('type' => 'dropdown-pages')));
     $this->assertEquals('esc_textarea', Kirki_Field::sanitize_callback(array('type' => 'editor')));
     $this->assertEquals('esc_url_raw', Kirki_Field::sanitize_callback(array('type' => 'image')));
     $this->assertEquals(array('Kirki_Sanitize', 'multicheck'), Kirki_Field::sanitize_callback(array('type' => 'multicheck')));
     $this->assertEquals(array('Kirki_Sanitize', 'number'), Kirki_Field::sanitize_callback(array('type' => 'number')));
     $this->assertEquals('esc_attr', Kirki_Field::sanitize_callback(array('type' => 'palette')));
     $this->assertEquals('esc_attr', Kirki_Field::sanitize_callback(array('type' => 'radio-buttonset')));
     $this->assertEquals('esc_attr', Kirki_Field::sanitize_callback(array('type' => 'radio-image')));
     $this->assertEquals('esc_attr', Kirki_Field::sanitize_callback(array('type' => 'radio')));
     $this->assertEquals('esc_attr', Kirki_Field::sanitize_callback(array('type' => 'select')));
     $this->assertEquals(array('Kirki_Sanitize', 'number'), Kirki_Field::sanitize_callback(array('type' => 'slider')));
     $this->assertEquals(array('Kirki_Sanitize', 'sortable'), Kirki_Field::sanitize_callback(array('type' => 'sortable')));
     $this->assertEquals(array('Kirki_Sanitize', 'checkbox'), Kirki_Field::sanitize_callback(array('type' => 'switch')));
     $this->assertEquals('esc_textarea', Kirki_Field::sanitize_callback(array('type' => 'text')));
     $this->assertEquals('esc_textarea', Kirki_Field::sanitize_callback(array('type' => 'textarea')));
     $this->assertEquals(array('Kirki_Sanitize', 'checkbox'), Kirki_Field::sanitize_callback(array('type' => 'toggle')));
     $this->assertEquals('esc_url_raw', Kirki_Field::sanitize_callback(array('type' => 'upload')));
 }
Esempio n. 3
0
 /**
  * Create the settings and controls from the $fields array and register them.
  * @var	object	The WordPress Customizer object
  */
 public function add_fields($wp_customize)
 {
     $control_types = apply_filters('kirki/control_types', array('color' => 'WP_Customize_Color_Control', 'color-alpha' => 'Kirki_Controls_Color_Alpha_Control', 'image' => 'WP_Customize_Image_Control', 'upload' => 'WP_Customize_Upload_Control', 'switch' => 'Kirki_Controls_Switch_Control', 'toggle' => 'Kirki_Controls_Toggle_Control', 'radio-buttonset' => 'Kirki_Controls_Radio_ButtonSet_Control', 'radio-image' => 'Kirki_Controls_Radio_Image_Control', 'sortable' => 'Kirki_Controls_Sortable_Control', 'slider' => 'Kirki_Controls_Slider_Control', 'number' => 'Kirki_Controls_Number_Control', 'multicheck' => 'Kirki_Controls_MultiCheck_Control', 'palette' => 'Kirki_Controls_Palette_Control', 'custom' => 'Kirki_Controls_Custom_Control', 'editor' => 'Kirki_Controls_Editor_Control', 'select2' => 'Kirki_Controls_Select2_Control', 'select2-multiple' => 'Kirki_Controls_Select2_Multiple_Control'));
     foreach (self::$fields as $field) {
         if ('background' == $field['type']) {
             continue;
         }
         $wp_customize->add_setting(Kirki_Field::sanitize_settings($field), array('default' => Kirki_Field::sanitize_default($field), 'type' => Kirki_Field::sanitize_type($field), 'capability' => Kirki_Field::sanitize_capability($field), 'transport' => Kirki_Field::sanitize_transport($field), 'sanitize_callback' => Kirki_Field::sanitize_callback($field)));
         if (array_key_exists($field['type'], $control_types)) {
             $class_name = $control_types[$field['type']];
             $wp_customize->add_control(new $class_name($wp_customize, Kirki_Field::sanitize_id($field), Kirki_Field::sanitize_field($field)));
         } else {
             $wp_customize->add_control(new WP_Customize_Control($wp_customize, Kirki_Field::sanitize_id($field), Kirki_Field::sanitize_field($field)));
         }
     }
 }
Esempio n. 4
0
 /**
  * Create the settings and controls from the $fields array and register them.
  * @var	object	The WordPress Customizer object
  */
 public function add_fields($wp_customize)
 {
     $control_types = self::$control_types;
     $setting_types = self::$setting_types;
     foreach (self::$fields as $field) {
         if ('background' == $field['type']) {
             continue;
         }
         if (isset($field['settings']) && is_array($field['settings'])) {
             $settings = Kirki_Field::sanitize_settings($field);
             $defaults = Kirki_Field::sanitize_default($field);
             foreach ($settings as $setting_key => $setting_value) {
                 $args = array('default' => isset($defaults[$setting_key]) ? $defaults[$setting_key] : '', 'type' => Kirki_Field::sanitize_type($field), 'capability' => Kirki_Field::sanitize_capability($field), 'transport' => Kirki_Field::sanitize_transport($field));
                 if (isset($field['sanitize_callback']) && is_array($field['sanitize_callback'])) {
                     if (isset($field['sanitize_callback'][$setting_key])) {
                         $args['sanitize_callback'] = Kirki_Field::sanitize_callback(array('sanitize_callback' => $field['sanitize_callback'][$setting_key]));
                     } else {
                         $args['sanitize_callback'] = Kirki_Field::sanitize_callback($field);
                     }
                 }
                 $wp_customize->add_setting($setting_value, $args);
             }
         }
         $setting_args = array('default' => Kirki_Field::sanitize_default($field), 'type' => Kirki_Field::sanitize_type($field), 'capability' => Kirki_Field::sanitize_capability($field), 'transport' => Kirki_Field::sanitize_transport($field), 'sanitize_callback' => Kirki_Field::sanitize_callback($field));
         if (isset($field['type']) && array_key_exists($field['type'], $setting_types)) {
             // We must instantiate a custom class for the setting
             $setting_classname = $setting_types[$field['type']];
             $setting = new $setting_classname($wp_customize, Kirki_Field::sanitize_settings($field), $setting_args);
             $wp_customize->add_setting($setting);
         } else {
             $wp_customize->add_setting(Kirki_Field::sanitize_settings($field), $setting_args);
         }
         $class_name = 'WP_Customize_Control';
         if (array_key_exists($field['type'], $control_types)) {
             $class_name = $control_types[$field['type']];
         }
         $wp_customize->add_control(new $class_name($wp_customize, Kirki_Field::sanitize_id($field), Kirki_Field::sanitize_field($field)));
     }
 }
Esempio n. 5
0
 /**
  * Create the settings and controls from the $fields array and register them.
  * @var	object	The WordPress Customizer object
  */
 public function add_fields($wp_customize)
 {
     $control_types = apply_filters('kirki/control_types', array('code' => 'Kirki_Controls_Code_Control', 'color' => 'WP_Customize_Color_Control', 'color-alpha' => 'Kirki_Controls_Color_Alpha_Control', 'image' => 'WP_Customize_Image_Control', 'upload' => 'WP_Customize_Upload_Control', 'switch' => 'Kirki_Controls_Switch_Control', 'toggle' => 'Kirki_Controls_Toggle_Control', 'radio-buttonset' => 'Kirki_Controls_Radio_ButtonSet_Control', 'radio-image' => 'Kirki_Controls_Radio_Image_Control', 'sortable' => 'Kirki_Controls_Sortable_Control', 'slider' => 'Kirki_Controls_Slider_Control', 'number' => 'Kirki_Controls_Number_Control', 'multicheck' => 'Kirki_Controls_MultiCheck_Control', 'palette' => 'Kirki_Controls_Palette_Control', 'custom' => 'Kirki_Controls_Custom_Control', 'editor' => 'Kirki_Controls_Editor_Control', 'select2' => 'Kirki_Controls_Select2_Control', 'select2-multiple' => 'Kirki_Controls_Select2_Multiple_Control', 'dimension' => 'Kirki_Controls_Dimension_Control', 'repeater' => 'Kirki_Controls_Repeater_Control'));
     $setting_types = apply_filters('kirki/setting_types', array('repeater' => 'Kirki_Settings_Repeater_Setting'));
     foreach (self::$fields as $field) {
         if ('background' == $field['type']) {
             continue;
         }
         if (isset($field['settings']) && is_array($field['settings'])) {
             $settings = Kirki_Field::sanitize_settings($field);
             $defaults = Kirki_Field::sanitize_default($field);
             foreach ($settings as $setting_key => $setting_value) {
                 $args = array('default' => isset($defaults[$setting_key]) ? $defaults[$setting_key] : '', 'type' => Kirki_Field::sanitize_type($field), 'capability' => Kirki_Field::sanitize_capability($field), 'transport' => Kirki_Field::sanitize_transport($field));
                 if (isset($field['sanitize_callback']) && is_array($field['sanitize_callback'])) {
                     if (isset($field['sanitize_callback'][$setting_key])) {
                         $args['sanitize_callback'] = Kirki_Field::sanitize_callback(array('sanitize_callback' => $field['sanitize_callback'][$setting_key]));
                     } else {
                         $args['sanitize_callback'] = Kirki_Field::sanitize_callback($field);
                     }
                 }
                 $wp_customize->add_setting($setting_value, $args);
             }
         }
         $setting_args = array('default' => Kirki_Field::sanitize_default($field), 'type' => Kirki_Field::sanitize_type($field), 'capability' => Kirki_Field::sanitize_capability($field), 'transport' => Kirki_Field::sanitize_transport($field), 'sanitize_callback' => Kirki_Field::sanitize_callback($field));
         if (isset($field['type']) && array_key_exists($field['type'], $setting_types)) {
             // We must instantiate a custom class for the setting
             $setting_classname = $setting_types[$field['type']];
             $setting = new $setting_classname($wp_customize, Kirki_Field::sanitize_settings($field), $setting_args);
             $wp_customize->add_setting($setting);
         } else {
             $wp_customize->add_setting(Kirki_Field::sanitize_settings($field), $setting_args);
         }
         $class_name = 'WP_Customize_Control';
         if (array_key_exists($field['type'], $control_types)) {
             $class_name = $control_types[$field['type']];
         }
         $wp_customize->add_control(new $class_name($wp_customize, Kirki_Field::sanitize_id($field), Kirki_Field::sanitize_field($field)));
     }
 }