| 1 |
<?php /** @noinspection PhpUnused, SpellCheckingInspection, DuplicatedCode */ |
| 2 |
|
| 3 |
namespace King_Addons\AJAX_Select2; |
| 4 |
|
| 5 |
use Elementor\Base_Data_Control; |
| 6 |
|
| 7 |
if (!defined('ABSPATH')) { |
| 8 |
exit; // Exit if accessed directly. |
| 9 |
} |
| 10 |
|
| 11 |
class Ajax_Select2 extends Base_Data_Control |
| 12 |
{ |
| 13 |
public function get_type(): string |
| 14 |
{ |
| 15 |
return 'king-addons-ajax-select2'; |
| 16 |
} |
| 17 |
|
| 18 |
public function enqueue(): void |
| 19 |
{ |
| 20 |
wp_enqueue_script(KING_ADDONS_ASSETS_UNIQUE_KEY . '-ajax-select2', KING_ADDONS_URL . 'includes/controls/Ajax_Select2/ajax-select2.js', array('jquery'), KING_ADDONS_VERSION); |
| 21 |
} |
| 22 |
|
| 23 |
protected function get_default_settings(): array |
| 24 |
{ |
| 25 |
return [ |
| 26 |
'options' => [], |
| 27 |
'multiple' => false, |
| 28 |
'select2options' => [], |
| 29 |
'query_slug' => '', |
| 30 |
]; |
| 31 |
} |
| 32 |
|
| 33 |
public function content_template(): void |
| 34 |
{ |
| 35 |
$control_uid = $this->get_control_uid(); |
| 36 |
?> |
| 37 |
<div class="elementor-control-field"> |
| 38 |
<label for="<?php echo esc_attr($control_uid); ?>" class="elementor-control-title">{{{ data.label }}}</label> |
| 39 |
<div class="elementor-control-input-wrapper"> |
| 40 |
<# var multiple = ( data.multiple ) ? 'multiple' : ''; #> |
| 41 |
<!--suppress HtmlUnknownAttribute --> |
| 42 |
<select id="<?php echo esc_attr($control_uid); ?>" |
| 43 |
class="elementor-control-type-king-addons-ajaxselect2" {{ |
| 44 |
multiple }} data-query-slug="{{data.query_slug}}" data-setting="{{ data.name }}" |
| 45 |
data-rest-url="<?php echo esc_attr(get_rest_url() . 'kingaddons/v1' . '/{{data.options}}/'); ?>"> |
| 46 |
</select> |
| 47 |
</div> |
| 48 |
</div> |
| 49 |
<# if ( data.description ) { #> |
| 50 |
<div class="elementor-control-field-description">{{{ data.description }}}</div> |
| 51 |
<# } #> |
| 52 |
<?php |
| 53 |
} |
| 54 |
} |