52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
namespace Elementor\TemplateLibrary\Forms;
|
|
|
|
use Elementor\Controls_Manager;
|
|
use Elementor\Controls_Stack;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
class New_Template_Form extends Controls_Stack {
|
|
|
|
public function get_name() {
|
|
return 'add-template-form';
|
|
}
|
|
|
|
/**
|
|
* @throws \Exception
|
|
*/
|
|
public function render() {
|
|
foreach ( $this->get_controls() as $control ) {
|
|
switch ( $control['type'] ) {
|
|
case Controls_Manager::SELECT:
|
|
$this->render_select( $control );
|
|
break;
|
|
default:
|
|
throw new \Exception( "'{$control['type']}' control type is not supported." );
|
|
}
|
|
}
|
|
}
|
|
|
|
private function render_select( $control_settings ) {
|
|
$control_id = "elementor-new-template__form__{$control_settings['name']}";
|
|
$wrapper_class = isset( $control_settings['wrapper_class'] ) ? $control_settings['wrapper_class'] : '';
|
|
?>
|
|
<div id="<?php echo esc_attr( $control_id ); ?>__wrapper" class="elementor-form-field <?php echo esc_attr( $wrapper_class ); ?>">
|
|
<label for="<?php echo esc_attr( $control_id ); ?>" class="elementor-form-field__label">
|
|
<?php echo esc_html( $control_settings['label'] ); ?>
|
|
</label>
|
|
<div class="elementor-form-field__select__wrapper">
|
|
<select id="<?php echo esc_attr( $control_id ); ?>" class="elementor-form-field__select" name="meta[<?php echo esc_html( $control_settings['name'] ); ?>]">
|
|
<?php
|
|
foreach ( $control_settings['options'] as $key => $value ) {
|
|
echo sprintf( '<option value="%1$s">%2$s</option>', esc_html( $key ), esc_html( $value ) );
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
}
|