set_label( __( 'Settings', 'elementor' ) ) ->set_items( [ Select_Control::bind_to( 'tag' ) ->set_label( esc_html__( 'HTML Tag', 'elementor' ) ) ->set_options( [ [ 'value' => 'div', 'label' => 'Div', ], [ 'value' => 'header', 'label' => 'Header', ], [ 'value' => 'section', 'label' => 'Section', ], [ 'value' => 'article', 'label' => 'Article', ], [ 'value' => 'aside', 'label' => 'Aside', ], [ 'value' => 'footer', 'label' => 'Footer', ], ]), ]), ]; } protected static function define_props_schema(): array { return [ 'classes' => Classes_Prop_Type::make() ->default( [] ), 'tag' => String_Prop_Type::make() ->enum( [ 'div', 'header', 'section', 'article', 'aside', 'footer' ] ) ->default( 'div' ), ]; } protected function _get_default_child_type( array $element_data ) { if ( 'div-block' === $element_data['elType'] ) { return Plugin::$instance->elements_manager->get_element_types( 'div-block' ); } return Plugin::$instance->widgets_manager->get_widget_types( $element_data['widgetType'] ); } protected function content_template() { ?> get_atomic_settings(); $this->add_render_attribute( '_wrapper', [ 'class' => [ 'e-div-block', $settings['classes'] ?? '', ], ] ); } public function before_render() { ?> <print_html_tag(); ?> print_render_attribute_string( '_wrapper' ); ?>> print_html_tag(); ?>> get_atomic_settings()['tag'] ?? 'div'; Utils::print_validated_html_tag( $html_tag ); } }