'cx-ui-select-id', 'name' => 'cx-ui-select-name', 'multiple' => false, 'filter' => false, 'size' => 1, 'inline_style' => 'width: 100%', 'value' => 'select-8', 'placeholder' => null, 'options' => array( 'select-1' => 'select 1', 'select-2' => 'select 2', 'select-3' => 'select 3', 'select-4' => 'select 4', 'select-5' => array( 'label' => 'Group 1', ), 'optgroup-1' => array( 'label' => 'Group 1', 'group_options' => array( 'select-6' => 'select 6', 'select-7' => 'select 7', 'select-8' => 'select 8', ), ), 'optgroup-2' => array( 'label' => 'Group 2', 'group_options' => array( 'select-9' => 'select 9', 'select-10' => 'select 10', 'select-11' => 'select 11', ), ), ), 'label' => '', 'class' => '', ); /** * Register control dependencies * * @return [type] [description] */ public function register_depends() { wp_register_script( 'cx-select2', $this->base_url . 'assets/lib/select2/select2.min.js', array( 'jquery' ), '4.0.5', true ); wp_register_style( 'cx-select2', $this->base_url . 'assets/lib/select2/select2.min.css', array(), '4.0.5', 'all' ); } /** * Retrun scripts dependencies list for current control. * * @return array */ public function get_script_depends() { return array( 'cx-select2' ); } /** * Retrun styles dependencies list for current control. * * @return array */ public function get_style_depends() { return array( 'cx-select2' ); } /** * Render html UI_Select. * * @since 1.0.0 */ public function render() { $html = ''; $class = implode( ' ', array( $this->settings['class'], ) ); if ( isset( $this->settings['options_callback'] ) ) { $this->settings['options'] = call_user_func( $this->settings['options_callback'] ); } $html .= '
'; $html .= '
'; ( $this->settings['filter'] ) ? $filter_state = 'data-filter="true"' : $filter_state = 'data-filter="false"' ; ( $this->settings['multiple'] ) ? $multi_state = 'multiple="multiple"' : $multi_state = '' ; ( $this->settings['multiple'] ) ? $name = $this->settings['name'] . '[]' : $name = $this->settings['name'] ; if ( '' !== $this->settings['label'] ) { $html .= ' '; } $inline_style = $this->settings['inline_style'] ? 'style="' . esc_attr( $this->settings['inline_style'] ) . '"' : '' ; $html .= ''; $html .= '
'; $html .= '
'; return $html; } } }