* @license http://www.gnu.org/licenses/gpl-2.0.html * @link https://github.com/maddisondesigns */ class Appointment_category_dropdown_customControl extends WP_Customize_Control { /** * The type of control being rendered */ public $type = 'dropdown_select2'; /** * The type of Select2 Dropwdown to display. Can be either a single select dropdown or a multi-select dropdown. Either false for true. Default = false */ private $multiselect = false; /** * The Placeholder value to display. Select2 requires a Placeholder value to be set when using the clearall option. Default = 'Please select...' */ private $placeholder = 'Please select...'; /** * Constructor */ public function __construct($manager, $id, $args = array(), $options = array()) { parent::__construct($manager, $id, $args); // Check if this is a multi-select field if (isset($this->input_attrs['multiselect']) && $this->input_attrs['multiselect']) { $this->multiselect = true; } // Check if a placeholder string has been specified if (isset($this->input_attrs['placeholder']) && $this->input_attrs['placeholder']) { $this->placeholder = $this->input_attrs['placeholder']; } } /** * Enqueue our scripts and styles */ public function enqueue() { wp_enqueue_script('appointment-select2-js', APPOINTMENT_TEMPLATE_DIR_URI . '/js/select2.full.min.js', array('jquery'), '4.0.13', true); wp_enqueue_script('appointment-custom-controls-js', APPOINTMENT_TEMPLATE_DIR_URI . '/js/customizer.js', array('appointment-select2-js'), '1.0', true); wp_enqueue_style('appointment-custom-controls-css', APPOINTMENT_TEMPLATE_DIR_URI . '/css/customizer.css', array(), '1.1', 'all'); wp_enqueue_style('appointment-select2-css', APPOINTMENT_TEMPLATE_DIR_URI . '/css/select2.min.css', array(), '4.0.13', 'all'); } /** * Render the control in the customizer */ public function render_content() { $defaultValue = $this->value(); if(is_array($defaultValue)){ $defaultValue= implode(',', $defaultValue); } if ($this->multiselect) { $defaultValue = explode(',', $defaultValue); } // $this->choices=get_categories(); $appointment_cats = get_categories(); $appointment_CatIdName = array(); foreach ($appointment_cats as $value) { $appointment_CatIdName[$value->term_id] = $value->name; } $this->choices = $appointment_CatIdName; ?>