Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
themes
/
buildbench
/
components
/
editor
/
elementor
/
controls
:
select2.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Elementor select2 control. * * A base control for creating select2 control. Displays a select box control * based on select2 jQuery plugin @see https://select2.github.io/ . * It accepts an array in which the `key` is the value and the `value` is the * option name. Set `multiple` to `true` to allow multiple value selection. * * @since 1.0.0 */ class Control_Ajax_Select2 extends \Elementor\Base_Data_Control { /** * Get select2 control type. * * Retrieve the control type, in this case `select2`. * * @since 1.0.0 * @access public * * @return string Control type. */ public function get_type() { return 'ajaxselect2'; } /** * Get select2 control default settings. * * Retrieve the default settings of the select2 control. Used to return the * default settings while initializing the select2 control. * * @since 1.8.0 * @access protected * * @return array Control default settings. */ protected function get_default_settings() { return [ 'options' => [], 'multiple' => false, 'select2options' => [], ]; } /** * Enqueue ontrol scripts and styles. * * @since 1.0.0 * @access public */ public function enqueue() { wp_register_script( 'ajaxselect2-control', BUILDBENCH_JS . '/ajaxselect2-control.js' ); wp_enqueue_script( 'ajaxselect2-control' ); } /** * Render select2 control output in the editor. * * Used to generate the control HTML in the editor using Underscore JS * template. The variables for the class are available using `data` JS * object. * * @since 1.0.0 * @access public */ public function content_template() { $control_uid = $this->get_control_uid(); $restAPi = get_site_url('') . '/wp-json/ajaxselect2/v1'; ?> <div class="elementor-control-field"> <label for="<?php echo esc_attr($control_uid); ?>" class="elementor-control-title">{{{ data.label }}}</label> <div class="elementor-control-input-wrapper"> <# var multiple = ( data.multiple ) ? 'multiple' : ''; #> <select id="<?php echo esc_attr($control_uid); ?>" class="elementor-ajaxselect2" type="ajaxselect2" {{ multiple }} data-setting="{{ data.name }}" data-ajax-url="<?php echo esc_url($restAPi) . '/{{data.options}}/'; ?>"" > </select> </div> </div> <# if ( data.description ) { #> <div class="elementor-control-field-description">{{{ data.description }}}</div> <# } #> <?php } }