HT Mega – Addons for Elementor Page Builder ( Elementor Addons, Post Grid, Post Slider, Post Carousel, Mega Menu, Elementor Widgets, Elementor Templates, Accordion, Forms, Tables) - Version 1.5.7

Version Description

Download this release

Release Info

Developer devitemsllc
Plugin Icon 128x128 HT Mega – Addons for Elementor Page Builder ( Elementor Addons, Post Grid, Post Slider, Post Carousel, Mega Menu, Elementor Widgets, Elementor Templates, Accordion, Forms, Tables)
Version 1.5.7
Comparing to
See all releases

Code changes from version 1.5.6 to 1.5.7

admin/assets/js/template_library_manager.js CHANGED
@@ -251,6 +251,7 @@
251
  if (htwptSearchFieldValue != "") {
252
  htwptProjectGroupData = htwptProjectGroupData.filter(i => i.tags.filter(j => j == htwptSearchFieldValue)[0])
253
  }
 
254
  let $this = $(this),
255
  $group = $this.data('group'),
256
  htwptPrintGroupData = htwptProjectGroupData.filter(i => i.shareId == $group),
@@ -268,7 +269,6 @@
268
  freePlugins,
269
  proPlugins,
270
  requiredtheme,
271
- fullimage
272
  } = htwptPrintGroupData[i];
273
  if(isPro == '1' ){
274
  $impbutton = `<a href="${HTTM.prolink}" target="_blank">${HTTM.buttontxt.buynow}</a>`;
@@ -281,7 +281,7 @@
281
  <div class="htwpt-project-item">
282
  <div class="htwpt-project-thumb">
283
  <a href="${thumbnail}" class="htwpt-image htwpt-image-popup">
284
- <img src="${thumbnail}" data-preview='{"templpateid":"${id}","templpattitle":"${title}","parentid":"${shareId}","fullimage":"${fullimage}"}' alt="${title}" />
285
  <span class="img-loader"></span>
286
  </a>
287
  <div class="htwpt-actions">
@@ -294,7 +294,7 @@
294
  <h6 class="sub-title">${shareId}</h6>
295
  </div>
296
  </div>
297
- <div id="htwpt-popup-prev-${id}" style="display: none;"><img src="${fullimage}" alt="${title}" style="width:100%;"/></div>
298
  </div>`;
299
  }
300
  if (!$(htwptLoaderSelector).hasClass('finish')) {
251
  if (htwptSearchFieldValue != "") {
252
  htwptProjectGroupData = htwptProjectGroupData.filter(i => i.tags.filter(j => j == htwptSearchFieldValue)[0])
253
  }
254
+
255
  let $this = $(this),
256
  $group = $this.data('group'),
257
  htwptPrintGroupData = htwptProjectGroupData.filter(i => i.shareId == $group),
269
  freePlugins,
270
  proPlugins,
271
  requiredtheme,
 
272
  } = htwptPrintGroupData[i];
273
  if(isPro == '1' ){
274
  $impbutton = `<a href="${HTTM.prolink}" target="_blank">${HTTM.buttontxt.buynow}</a>`;
281
  <div class="htwpt-project-item">
282
  <div class="htwpt-project-thumb">
283
  <a href="${thumbnail}" class="htwpt-image htwpt-image-popup">
284
+ <img src="${thumbnail}" data-preview='{"templpateid":"${id}","templpattitle":"${title}","parentid":"${shareId}","fullimage":"${thumbnail}"}' alt="${title}" />
285
  <span class="img-loader"></span>
286
  </a>
287
  <div class="htwpt-actions">
294
  <h6 class="sub-title">${shareId}</h6>
295
  </div>
296
  </div>
297
+ <div id="htwpt-popup-prev-${id}" style="display: none;"><img src="${thumbnail}" alt="${title}" style="width:100%;"/></div>
298
  </div>`;
299
  }
300
  if (!$(htwptLoaderSelector).hasClass('finish')) {
extensions/ht-builder/widgets/bl_page_title.php CHANGED
@@ -19,7 +19,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
19
  }
20
 
21
  public function get_title() {
22
- return __( 'BL: Page Title', 'ht-builder' );
23
  }
24
 
25
  public function get_icon() {
@@ -36,13 +36,13 @@ class Bl_Page_Title_ELement extends Widget_Base {
36
  $this->start_controls_section(
37
  'title_content',
38
  [
39
- 'label' => __( 'Page Title', 'ht-builder' ),
40
  ]
41
  );
42
  $this->add_control(
43
  'title_html_tag',
44
  [
45
- 'label' => __( 'Title HTML Tag', 'ht-builder' ),
46
  'type' => Controls_Manager::SELECT,
47
  'options' => htmega_html_tag_lists(),
48
  'default' => 'h1',
@@ -55,7 +55,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
55
  $this->start_controls_section(
56
  'title_style_section',
57
  array(
58
- 'label' => __( 'Page Title', 'ht-builder' ),
59
  'tab' => Controls_Manager::TAB_STYLE,
60
  )
61
  );
@@ -63,7 +63,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
63
  $this->add_control(
64
  'title_color',
65
  [
66
- 'label' => __( 'Color', 'ht-builder' ),
67
  'type' => Controls_Manager::COLOR,
68
  'selectors' => [
69
  '{{WRAPPER}} .htpage-title' => 'color: {{VALUE}};',
@@ -75,7 +75,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
75
  Group_Control_Typography::get_type(),
76
  array(
77
  'name' => 'title_typography',
78
- 'label' => __( 'Typography', 'ht-builder' ),
79
  'selector' => '{{WRAPPER}} .htpage-title',
80
  )
81
  );
@@ -84,7 +84,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
84
  Group_Control_Border::get_type(),
85
  [
86
  'name' => 'title_border',
87
- 'label' => __( 'Border', 'ht-builder' ),
88
  'selector' => '{{WRAPPER}} .htpage-title',
89
  'separator' => 'before',
90
  ]
@@ -93,7 +93,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
93
  $this->add_responsive_control(
94
  'title_border_radius',
95
  [
96
- 'label' => __( 'Border Radius', 'ht-builder' ),
97
  'type' => Controls_Manager::DIMENSIONS,
98
  'size_units' => [ 'px', '%', 'em' ],
99
  'selectors' => [
@@ -105,7 +105,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
105
  $this->add_responsive_control(
106
  'title_padding',
107
  [
108
- 'label' => __( 'Padding', 'ht-builder' ),
109
  'type' => Controls_Manager::DIMENSIONS,
110
  'size_units' => [ 'px', '%', 'em' ],
111
  'selectors' => [
@@ -118,7 +118,7 @@ class Bl_Page_Title_ELement extends Widget_Base {
118
  $this->add_responsive_control(
119
  'title_margin',
120
  [
121
- 'label' => __( 'Margin', 'ht-builder' ),
122
  'type' => Controls_Manager::DIMENSIONS,
123
  'size_units' => [ 'px', '%', 'em' ],
124
  'selectors' => [
@@ -130,23 +130,23 @@ class Bl_Page_Title_ELement extends Widget_Base {
130
  $this->add_responsive_control(
131
  'title_align',
132
  [
133
- 'label' => __( 'Alignment', 'ht-builder' ),
134
  'type' => Controls_Manager::CHOOSE,
135
  'options' => [
136
  'left' => [
137
- 'title' => __( 'Left', 'ht-builder' ),
138
  'icon' => 'fa fa-align-left',
139
  ],
140
  'center' => [
141
- 'title' => __( 'Center', 'ht-builder' ),
142
  'icon' => 'fa fa-align-center',
143
  ],
144
  'right' => [
145
- 'title' => __( 'Right', 'ht-builder' ),
146
  'icon' => 'fa fa-align-right',
147
  ],
148
  'justify' => [
149
- 'title' => __( 'Justified', 'ht-builder' ),
150
  'icon' => 'fa fa-align-justify',
151
  ],
152
  ],
@@ -161,10 +161,13 @@ class Bl_Page_Title_ELement extends Widget_Base {
161
 
162
  protected function render( $instance = [] ) {
163
  $settings = $this->get_settings_for_display();
 
 
 
164
  if( Elementor::instance()->editor->is_edit_mode() ){
165
- echo sprintf( '<%1$s class="htpage-title">' . __('Page Title', 'ht-builder' ). '</%1$s>', $settings['title_html_tag'] );
166
  }else{
167
- echo sprintf( '<%1$s class="htpage-title">%2$s</%1$s>' , $settings['title_html_tag'], wp_title( '', false ) );
168
  }
169
  }
170
 
19
  }
20
 
21
  public function get_title() {
22
+ return __( 'BL: Page Title', 'htmega-addons' );
23
  }
24
 
25
  public function get_icon() {
36
  $this->start_controls_section(
37
  'title_content',
38
  [
39
+ 'label' => __( 'Page Title', 'htmega-addons' ),
40
  ]
41
  );
42
  $this->add_control(
43
  'title_html_tag',
44
  [
45
+ 'label' => __( 'Title HTML Tag', 'htmega-addons' ),
46
  'type' => Controls_Manager::SELECT,
47
  'options' => htmega_html_tag_lists(),
48
  'default' => 'h1',
55
  $this->start_controls_section(
56
  'title_style_section',
57
  array(
58
+ 'label' => __( 'Page Title', 'htmega-addons' ),
59
  'tab' => Controls_Manager::TAB_STYLE,
60
  )
61
  );
63
  $this->add_control(
64
  'title_color',
65
  [
66
+ 'label' => __( 'Color', 'htmega-addons' ),
67
  'type' => Controls_Manager::COLOR,
68
  'selectors' => [
69
  '{{WRAPPER}} .htpage-title' => 'color: {{VALUE}};',
75
  Group_Control_Typography::get_type(),
76
  array(
77
  'name' => 'title_typography',
78
+ 'label' => __( 'Typography', 'htmega-addons' ),
79
  'selector' => '{{WRAPPER}} .htpage-title',
80
  )
81
  );
84
  Group_Control_Border::get_type(),
85
  [
86
  'name' => 'title_border',
87
+ 'label' => __( 'Border', 'htmega-addons' ),
88
  'selector' => '{{WRAPPER}} .htpage-title',
89
  'separator' => 'before',
90
  ]
93
  $this->add_responsive_control(
94
  'title_border_radius',
95
  [
96
+ 'label' => __( 'Border Radius', 'htmega-addons' ),
97
  'type' => Controls_Manager::DIMENSIONS,
98
  'size_units' => [ 'px', '%', 'em' ],
99
  'selectors' => [
105
  $this->add_responsive_control(
106
  'title_padding',
107
  [
108
+ 'label' => __( 'Padding', 'htmega-addons' ),
109
  'type' => Controls_Manager::DIMENSIONS,
110
  'size_units' => [ 'px', '%', 'em' ],
111
  'selectors' => [
118
  $this->add_responsive_control(
119
  'title_margin',
120
  [
121
+ 'label' => __( 'Margin', 'htmega-addons' ),
122
  'type' => Controls_Manager::DIMENSIONS,
123
  'size_units' => [ 'px', '%', 'em' ],
124
  'selectors' => [
130
  $this->add_responsive_control(
131
  'title_align',
132
  [
133
+ 'label' => __( 'Alignment', 'htmega-addons' ),
134
  'type' => Controls_Manager::CHOOSE,
135
  'options' => [
136
  'left' => [
137
+ 'title' => __( 'Left', 'htmega-addons' ),
138
  'icon' => 'fa fa-align-left',
139
  ],
140
  'center' => [
141
+ 'title' => __( 'Center', 'htmega-addons' ),
142
  'icon' => 'fa fa-align-center',
143
  ],
144
  'right' => [
145
+ 'title' => __( 'Right', 'htmega-addons' ),
146
  'icon' => 'fa fa-align-right',
147
  ],
148
  'justify' => [
149
+ 'title' => __( 'Justified', 'htmega-addons' ),
150
  'icon' => 'fa fa-align-justify',
151
  ],
152
  ],
161
 
162
  protected function render( $instance = [] ) {
163
  $settings = $this->get_settings_for_display();
164
+
165
+ $title_tag = htmega_validate_html_tag( $settings['title_html_tag'] );
166
+
167
  if( Elementor::instance()->editor->is_edit_mode() ){
168
+ echo sprintf( '<%1$s class="htpage-title">' . __('Page Title', 'htmega-addons' ). '</%1$s>', $title_tag );
169
  }else{
170
+ echo sprintf( '<%1$s class="htpage-title">%2$s</%1$s>', $title_tag, wp_title( '', false ) );
171
  }
172
  }
173
 
extensions/ht-builder/widgets/bl_post_archive_title.php CHANGED
@@ -19,7 +19,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
19
  }
20
 
21
  public function get_title() {
22
- return __( 'BL: Archive Title', 'ht-builder' );
23
  }
24
 
25
  public function get_icon() {
@@ -36,14 +36,14 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
36
  $this->start_controls_section(
37
  'title_content',
38
  [
39
- 'label' => __( 'Archive Title', 'ht-builder' ),
40
  ]
41
  );
42
 
43
  $this->add_control(
44
  'title_html_tag',
45
  [
46
- 'label' => __( 'Title HTML Tag', 'ht-builder' ),
47
  'type' => Controls_Manager::SELECT,
48
  'options' => htmega_html_tag_lists(),
49
  'default' => 'h1',
@@ -57,7 +57,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
57
  $this->start_controls_section(
58
  'title_style_section',
59
  array(
60
- 'label' => __( 'Archive Title', 'ht-builder' ),
61
  'tab' => Controls_Manager::TAB_STYLE,
62
  )
63
  );
@@ -65,7 +65,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
65
  $this->add_control(
66
  'title_color',
67
  [
68
- 'label' => __( 'Color', 'ht-builder' ),
69
  'type' => Controls_Manager::COLOR,
70
  'selectors' => [
71
  '{{WRAPPER}} .htarchive-title' => 'color: {{VALUE}};',
@@ -77,7 +77,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
77
  Group_Control_Typography::get_type(),
78
  array(
79
  'name' => 'title_typography',
80
- 'label' => __( 'Typography', 'ht-builder' ),
81
  'selector' => '{{WRAPPER}} .htarchive-title',
82
  )
83
  );
@@ -86,7 +86,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
86
  Group_Control_Border::get_type(),
87
  [
88
  'name' => 'title_border',
89
- 'label' => __( 'Border', 'ht-builder' ),
90
  'selector' => '{{WRAPPER}} .htarchive-title',
91
  'separator' => 'before',
92
  ]
@@ -95,7 +95,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
95
  $this->add_responsive_control(
96
  'title_border_radius',
97
  [
98
- 'label' => __( 'Border Radius', 'ht-builder' ),
99
  'type' => Controls_Manager::DIMENSIONS,
100
  'size_units' => [ 'px', '%', 'em' ],
101
  'selectors' => [
@@ -107,7 +107,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
107
  $this->add_responsive_control(
108
  'title_padding',
109
  [
110
- 'label' => __( 'Padding', 'ht-builder' ),
111
  'type' => Controls_Manager::DIMENSIONS,
112
  'size_units' => [ 'px', '%', 'em' ],
113
  'selectors' => [
@@ -120,7 +120,7 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
120
  $this->add_responsive_control(
121
  'title_margin',
122
  [
123
- 'label' => __( 'Margin', 'ht-builder' ),
124
  'type' => Controls_Manager::DIMENSIONS,
125
  'size_units' => [ 'px', '%', 'em' ],
126
  'selectors' => [
@@ -132,23 +132,23 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
132
  $this->add_responsive_control(
133
  'title_align',
134
  [
135
- 'label' => __( 'Alignment', 'ht-builder' ),
136
  'type' => Controls_Manager::CHOOSE,
137
  'options' => [
138
  'left' => [
139
- 'title' => __( 'Left', 'ht-builder' ),
140
  'icon' => 'fa fa-align-left',
141
  ],
142
  'center' => [
143
- 'title' => __( 'Center', 'ht-builder' ),
144
  'icon' => 'fa fa-align-center',
145
  ],
146
  'right' => [
147
- 'title' => __( 'Right', 'ht-builder' ),
148
  'icon' => 'fa fa-align-right',
149
  ],
150
  'justify' => [
151
- 'title' => __( 'Justified', 'ht-builder' ),
152
  'icon' => 'fa fa-align-justify',
153
  ],
154
  ],
@@ -163,11 +163,15 @@ class Bl_Post_Archive_Title_ELement extends Widget_Base {
163
 
164
  protected function render( $instance = [] ) {
165
  $settings = $this->get_settings_for_display();
 
 
 
166
  if( Elementor::instance()->editor->is_edit_mode() ){
167
- echo sprintf( '<%1$s class="htarchive-title">' . __('Archive Title', 'ht-builder' ). '</%1$s>', $settings['title_html_tag'] );
168
  }else{
169
- echo sprintf( '<%1$s class="htarchive-title">%2$s</%1$s>' , $settings['title_html_tag'], get_the_archive_title() );
170
  }
 
171
  }
172
 
173
  }
19
  }
20
 
21
  public function get_title() {
22
+ return __( 'BL: Archive Title', 'htmega-addons' );
23
  }
24
 
25
  public function get_icon() {
36
  $this->start_controls_section(
37
  'title_content',
38
  [
39
+ 'label' => __( 'Archive Title', 'htmega-addons' ),
40
  ]
41
  );
42
 
43
  $this->add_control(
44
  'title_html_tag',
45
  [
46
+ 'label' => __( 'Title HTML Tag', 'htmega-addons' ),
47
  'type' => Controls_Manager::SELECT,
48
  'options' => htmega_html_tag_lists(),
49
  'default' => 'h1',
57
  $this->start_controls_section(
58
  'title_style_section',
59
  array(
60
+ 'label' => __( 'Archive Title', 'htmega-addons' ),
61
  'tab' => Controls_Manager::TAB_STYLE,
62
  )
63
  );
65
  $this->add_control(
66
  'title_color',
67
  [
68
+ 'label' => __( 'Color', 'htmega-addons' ),
69
  'type' => Controls_Manager::COLOR,
70
  'selectors' => [
71
  '{{WRAPPER}} .htarchive-title' => 'color: {{VALUE}};',
77
  Group_Control_Typography::get_type(),
78
  array(
79
  'name' => 'title_typography',
80
+ 'label' => __( 'Typography', 'htmega-addons' ),
81
  'selector' => '{{WRAPPER}} .htarchive-title',
82
  )
83
  );
86
  Group_Control_Border::get_type(),
87
  [
88
  'name' => 'title_border',
89
+ 'label' => __( 'Border', 'htmega-addons' ),
90
  'selector' => '{{WRAPPER}} .htarchive-title',
91
  'separator' => 'before',
92
  ]
95
  $this->add_responsive_control(
96
  'title_border_radius',
97
  [
98
+ 'label' => __( 'Border Radius', 'htmega-addons' ),
99
  'type' => Controls_Manager::DIMENSIONS,
100
  'size_units' => [ 'px', '%', 'em' ],
101
  'selectors' => [
107
  $this->add_responsive_control(
108
  'title_padding',
109
  [
110
+ 'label' => __( 'Padding', 'htmega-addons' ),
111
  'type' => Controls_Manager::DIMENSIONS,
112
  'size_units' => [ 'px', '%', 'em' ],
113
  'selectors' => [
120
  $this->add_responsive_control(
121
  'title_margin',
122
  [
123
+ 'label' => __( 'Margin', 'htmega-addons' ),
124
  'type' => Controls_Manager::DIMENSIONS,
125
  'size_units' => [ 'px', '%', 'em' ],
126
  'selectors' => [
132
  $this->add_responsive_control(
133
  'title_align',
134
  [
135
+ 'label' => __( 'Alignment', 'htmega-addons' ),
136
  'type' => Controls_Manager::CHOOSE,
137
  'options' => [
138
  'left' => [
139
+ 'title' => __( 'Left', 'htmega-addons' ),
140
  'icon' => 'fa fa-align-left',
141
  ],
142
  'center' => [
143
+ 'title' => __( 'Center', 'htmega-addons' ),
144
  'icon' => 'fa fa-align-center',
145
  ],
146
  'right' => [
147
+ 'title' => __( 'Right', 'htmega-addons' ),
148
  'icon' => 'fa fa-align-right',
149
  ],
150
  'justify' => [
151
+ 'title' => __( 'Justified', 'htmega-addons' ),
152
  'icon' => 'fa fa-align-justify',
153
  ],
154
  ],
163
 
164
  protected function render( $instance = [] ) {
165
  $settings = $this->get_settings_for_display();
166
+
167
+ $title_tag = htmega_validate_html_tag( $settings['title_html_tag'] );
168
+
169
  if( Elementor::instance()->editor->is_edit_mode() ){
170
+ echo sprintf( '<%1$s class="htarchive-title">' . __('Archive Title', 'htmega-addons' ). '</%1$s>', $title_tag );
171
  }else{
172
+ echo sprintf( '<%1$s class="htarchive-title">%2$s</%1$s>', $title_tag, get_the_archive_title() );
173
  }
174
+
175
  }
176
 
177
  }
extensions/ht-builder/widgets/bl_post_author_info.php CHANGED
@@ -327,6 +327,8 @@ class Bl_Post_Author_Info_ELement extends Widget_Base {
327
  $author_link = $author_link;
328
  }
329
 
 
 
330
  ?>
331
  <div class="htbuilder-author-box htavaterpos-<?php echo $settings['avater_image_position']; ?>">
332
  <?php if ( $settings['show_avater_image'] == 'yes' ): ?>
@@ -344,9 +346,9 @@ class Bl_Post_Author_Info_ELement extends Widget_Base {
344
  <?php
345
  if( $settings['show_name'] == 'yes' ){
346
  if( !empty( $author_link ) ){
347
- echo sprintf( '<a href="%1$s" target="_blank"><%2$s class="htauthor-name">%3$s</%2$s></a>', $author_link, $settings['name_html_tag'], $author_info['display_name'] );
348
  }else{
349
- echo sprintf( '<%1$s class="htauthor-name">%2$s</%1$s>', $settings['name_html_tag'], $author_info['display_name'] );
350
  }
351
  }
352
  if( $settings['show_biography'] == 'yes' ){
327
  $author_link = $author_link;
328
  }
329
 
330
+ $name_tag = htmega_validate_html_tag( $settings['name_html_tag'] );
331
+
332
  ?>
333
  <div class="htbuilder-author-box htavaterpos-<?php echo $settings['avater_image_position']; ?>">
334
  <?php if ( $settings['show_avater_image'] == 'yes' ): ?>
346
  <?php
347
  if( $settings['show_name'] == 'yes' ){
348
  if( !empty( $author_link ) ){
349
+ echo sprintf( '<a href="%1$s" target="_blank"><%2$s class="htauthor-name">%3$s</%2$s></a>', $author_link, $name_tag, $author_info['display_name'] );
350
  }else{
351
+ echo sprintf( '<%1$s class="htauthor-name">%2$s</%1$s>', $name_tag, $author_info['display_name'] );
352
  }
353
  }
354
  if( $settings['show_biography'] == 'yes' ){
extensions/ht-builder/widgets/bl_post_title.php CHANGED
@@ -20,7 +20,7 @@ class Bl_Post_Title_ELement extends Widget_Base {
20
  }
21
 
22
  public function get_title() {
23
- return __( 'BL: Post Title', 'ht-builder' );
24
  }
25
 
26
  public function get_icon() {
@@ -38,13 +38,13 @@ class Bl_Post_Title_ELement extends Widget_Base {
38
  $this->start_controls_section(
39
  'blog_title_content',
40
  [
41
- 'label' => __( 'Post Title', 'ht-builder' ),
42
  ]
43
  );
44
  $this->add_control(
45
  'blog_title_html_tag',
46
  [
47
- 'label' => __( 'Title HTML Tag', 'ht-builder' ),
48
  'type' => Controls_Manager::SELECT,
49
  'options' => htmega_html_tag_lists(),
50
  'default' => 'h1',
@@ -57,7 +57,7 @@ class Bl_Post_Title_ELement extends Widget_Base {
57
  $this->start_controls_section(
58
  'blog_title_style_section',
59
  array(
60
- 'label' => __( 'Post Title', 'ht-builder' ),
61
  'tab' => Controls_Manager::TAB_STYLE,
62
  )
63
  );
@@ -65,7 +65,7 @@ class Bl_Post_Title_ELement extends Widget_Base {
65
  $this->add_control(
66
  'blog_title_color',
67
  [
68
- 'label' => __( 'Title Color', 'ht-builder' ),
69
  'type' => Controls_Manager::COLOR,
70
  'selectors' => [
71
  '{{WRAPPER}} .entry-title' => 'color: {{VALUE}};',
@@ -77,7 +77,7 @@ class Bl_Post_Title_ELement extends Widget_Base {
77
  Group_Control_Typography::get_type(),
78
  array(
79
  'name' => 'blog_title_typography',
80
- 'label' => __( 'Typography', 'ht-builder' ),
81
  'selector' => '{{WRAPPER}} .entry-title',
82
  )
83
  );
@@ -85,7 +85,7 @@ class Bl_Post_Title_ELement extends Widget_Base {
85
  $this->add_responsive_control(
86
  'blog_title_margin',
87
  [
88
- 'label' => __( 'Margin', 'ht-builder' ),
89
  'type' => Controls_Manager::DIMENSIONS,
90
  'size_units' => [ 'px', '%', 'em' ],
91
  'selectors' => [
@@ -98,23 +98,23 @@ class Bl_Post_Title_ELement extends Widget_Base {
98
  $this->add_responsive_control(
99
  'blog_title_align',
100
  [
101
- 'label' => __( 'Alignment', 'ht-builder' ),
102
  'type' => Controls_Manager::CHOOSE,
103
  'options' => [
104
  'left' => [
105
- 'title' => __( 'Left', 'ht-builder' ),
106
  'icon' => 'fa fa-align-left',
107
  ],
108
  'center' => [
109
- 'title' => __( 'Center', 'ht-builder' ),
110
  'icon' => 'fa fa-align-center',
111
  ],
112
  'right' => [
113
- 'title' => __( 'Right', 'ht-builder' ),
114
  'icon' => 'fa fa-align-right',
115
  ],
116
  'justify' => [
117
- 'title' => __( 'Justified', 'ht-builder' ),
118
  'icon' => 'fa fa-align-justify',
119
  ],
120
  ],
@@ -129,10 +129,13 @@ class Bl_Post_Title_ELement extends Widget_Base {
129
 
130
  protected function render( $instance = [] ) {
131
  $settings = $this->get_settings_for_display();
 
 
 
132
  if( Elementor::instance()->editor->is_edit_mode() ){
133
- echo sprintf( '<%1$s class="entry-title">' . __('Blog Title', 'ht-builder' ). '</%1$s>', $settings['blog_title_html_tag'] );
134
  }else{
135
- echo sprintf( the_title( '<%1$s class="entry-title">', '</%1$s>', false ), $settings['blog_title_html_tag'] );
136
  }
137
 
138
  }
20
  }
21
 
22
  public function get_title() {
23
+ return __( 'BL: Post Title', 'htmega-addons' );
24
  }
25
 
26
  public function get_icon() {
38
  $this->start_controls_section(
39
  'blog_title_content',
40
  [
41
+ 'label' => __( 'Post Title', 'htmega-addons' ),
42
  ]
43
  );
44
  $this->add_control(
45
  'blog_title_html_tag',
46
  [
47
+ 'label' => __( 'Title HTML Tag', 'htmega-addons' ),
48
  'type' => Controls_Manager::SELECT,
49
  'options' => htmega_html_tag_lists(),
50
  'default' => 'h1',
57
  $this->start_controls_section(
58
  'blog_title_style_section',
59
  array(
60
+ 'label' => __( 'Post Title', 'htmega-addons' ),
61
  'tab' => Controls_Manager::TAB_STYLE,
62
  )
63
  );
65
  $this->add_control(
66
  'blog_title_color',
67
  [
68
+ 'label' => __( 'Title Color', 'htmega-addons' ),
69
  'type' => Controls_Manager::COLOR,
70
  'selectors' => [
71
  '{{WRAPPER}} .entry-title' => 'color: {{VALUE}};',
77
  Group_Control_Typography::get_type(),
78
  array(
79
  'name' => 'blog_title_typography',
80
+ 'label' => __( 'Typography', 'htmega-addons' ),
81
  'selector' => '{{WRAPPER}} .entry-title',
82
  )
83
  );
85
  $this->add_responsive_control(
86
  'blog_title_margin',
87
  [
88
+ 'label' => __( 'Margin', 'htmega-addons' ),
89
  'type' => Controls_Manager::DIMENSIONS,
90
  'size_units' => [ 'px', '%', 'em' ],
91
  'selectors' => [
98
  $this->add_responsive_control(
99
  'blog_title_align',
100
  [
101
+ 'label' => __( 'Alignment', 'htmega-addons' ),
102
  'type' => Controls_Manager::CHOOSE,
103
  'options' => [
104
  'left' => [
105
+ 'title' => __( 'Left', 'htmega-addons' ),
106
  'icon' => 'fa fa-align-left',
107
  ],
108
  'center' => [
109
+ 'title' => __( 'Center', 'htmega-addons' ),
110
  'icon' => 'fa fa-align-center',
111
  ],
112
  'right' => [
113
+ 'title' => __( 'Right', 'htmega-addons' ),
114
  'icon' => 'fa fa-align-right',
115
  ],
116
  'justify' => [
117
+ 'title' => __( 'Justified', 'htmega-addons' ),
118
  'icon' => 'fa fa-align-justify',
119
  ],
120
  ],
129
 
130
  protected function render( $instance = [] ) {
131
  $settings = $this->get_settings_for_display();
132
+
133
+ $title_tag = htmega_validate_html_tag( $settings['blog_title_html_tag'] );
134
+
135
  if( Elementor::instance()->editor->is_edit_mode() ){
136
+ echo sprintf( '<%1$s class="entry-title">' . __('Blog Title', 'htmega-addons' ). '</%1$s>', $title_tag );
137
  }else{
138
+ echo sprintf( the_title( '<%1$s class="entry-title">', '</%1$s>', false ), $title_tag );
139
  }
140
 
141
  }
extensions/ht-builder/widgets/bl_site_title.php CHANGED
@@ -19,7 +19,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
19
  }
20
 
21
  public function get_title() {
22
- return __( 'BL: Site Title', 'ht-builder' );
23
  }
24
 
25
  public function get_icon() {
@@ -36,14 +36,14 @@ class Bl_Site_Title_ELement extends Widget_Base {
36
  $this->start_controls_section(
37
  'title_content',
38
  [
39
- 'label' => __( 'Site Title', 'ht-builder' ),
40
  ]
41
  );
42
 
43
  $this->add_control(
44
  'title_html_tag',
45
  [
46
- 'label' => __( 'Title HTML Tag', 'ht-builder' ),
47
  'type' => Controls_Manager::SELECT,
48
  'options' => htmega_html_tag_lists(),
49
  'default' => 'h1',
@@ -57,7 +57,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
57
  $this->start_controls_section(
58
  'title_style_section',
59
  array(
60
- 'label' => __( 'Site Title', 'ht-builder' ),
61
  'tab' => Controls_Manager::TAB_STYLE,
62
  )
63
  );
@@ -65,7 +65,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
65
  $this->add_control(
66
  'title_color',
67
  [
68
- 'label' => __( 'Color', 'ht-builder' ),
69
  'type' => Controls_Manager::COLOR,
70
  'selectors' => [
71
  '{{WRAPPER}} .htsite-title' => 'color: {{VALUE}};',
@@ -77,7 +77,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
77
  Group_Control_Typography::get_type(),
78
  array(
79
  'name' => 'title_typography',
80
- 'label' => __( 'Typography', 'ht-builder' ),
81
  'selector' => '{{WRAPPER}} .htsite-title',
82
  )
83
  );
@@ -86,7 +86,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
86
  Group_Control_Border::get_type(),
87
  [
88
  'name' => 'title_border',
89
- 'label' => __( 'Border', 'ht-builder' ),
90
  'selector' => '{{WRAPPER}} .htsite-title',
91
  'separator' => 'before',
92
  ]
@@ -95,7 +95,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
95
  $this->add_responsive_control(
96
  'title_border_radius',
97
  [
98
- 'label' => __( 'Border Radius', 'ht-builder' ),
99
  'type' => Controls_Manager::DIMENSIONS,
100
  'size_units' => [ 'px', '%', 'em' ],
101
  'selectors' => [
@@ -107,7 +107,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
107
  $this->add_responsive_control(
108
  'title_padding',
109
  [
110
- 'label' => __( 'Padding', 'ht-builder' ),
111
  'type' => Controls_Manager::DIMENSIONS,
112
  'size_units' => [ 'px', '%', 'em' ],
113
  'selectors' => [
@@ -120,7 +120,7 @@ class Bl_Site_Title_ELement extends Widget_Base {
120
  $this->add_responsive_control(
121
  'title_margin',
122
  [
123
- 'label' => __( 'Margin', 'ht-builder' ),
124
  'type' => Controls_Manager::DIMENSIONS,
125
  'size_units' => [ 'px', '%', 'em' ],
126
  'selectors' => [
@@ -132,23 +132,23 @@ class Bl_Site_Title_ELement extends Widget_Base {
132
  $this->add_responsive_control(
133
  'title_align',
134
  [
135
- 'label' => __( 'Alignment', 'ht-builder' ),
136
  'type' => Controls_Manager::CHOOSE,
137
  'options' => [
138
  'left' => [
139
- 'title' => __( 'Left', 'ht-builder' ),
140
  'icon' => 'fa fa-align-left',
141
  ],
142
  'center' => [
143
- 'title' => __( 'Center', 'ht-builder' ),
144
  'icon' => 'fa fa-align-center',
145
  ],
146
  'right' => [
147
- 'title' => __( 'Right', 'ht-builder' ),
148
  'icon' => 'fa fa-align-right',
149
  ],
150
  'justify' => [
151
- 'title' => __( 'Justified', 'ht-builder' ),
152
  'icon' => 'fa fa-align-justify',
153
  ],
154
  ],
@@ -163,10 +163,13 @@ class Bl_Site_Title_ELement extends Widget_Base {
163
 
164
  protected function render( $instance = [] ) {
165
  $settings = $this->get_settings_for_display();
 
 
 
166
  if( Elementor::instance()->editor->is_edit_mode() ){
167
- echo sprintf( '<%1$s class="htsite-title">' . __('Site Title', 'ht-builder' ). '</%1$s>', $settings['title_html_tag'] );
168
  }else{
169
- echo sprintf( '<%1$s class="htsite-title">%2$s</%1$s>' , $settings['title_html_tag'], get_bloginfo( 'name', 'display' ) );
170
  }
171
  }
172
 
19
  }
20
 
21
  public function get_title() {
22
+ return __( 'BL: Site Title', 'htmega-addons' );
23
  }
24
 
25
  public function get_icon() {
36
  $this->start_controls_section(
37
  'title_content',
38
  [
39
+ 'label' => __( 'Site Title', 'htmega-addons' ),
40
  ]
41
  );
42
 
43
  $this->add_control(
44
  'title_html_tag',
45
  [
46
+ 'label' => __( 'Title HTML Tag', 'htmega-addons' ),
47
  'type' => Controls_Manager::SELECT,
48
  'options' => htmega_html_tag_lists(),
49
  'default' => 'h1',
57
  $this->start_controls_section(
58
  'title_style_section',
59
  array(
60
+ 'label' => __( 'Site Title', 'htmega-addons' ),
61
  'tab' => Controls_Manager::TAB_STYLE,
62
  )
63
  );
65
  $this->add_control(
66
  'title_color',
67
  [
68
+ 'label' => __( 'Color', 'htmega-addons' ),
69
  'type' => Controls_Manager::COLOR,
70
  'selectors' => [
71
  '{{WRAPPER}} .htsite-title' => 'color: {{VALUE}};',
77
  Group_Control_Typography::get_type(),
78
  array(
79
  'name' => 'title_typography',
80
+ 'label' => __( 'Typography', 'htmega-addons' ),
81
  'selector' => '{{WRAPPER}} .htsite-title',
82
  )
83
  );
86
  Group_Control_Border::get_type(),
87
  [
88
  'name' => 'title_border',
89
+ 'label' => __( 'Border', 'htmega-addons' ),
90
  'selector' => '{{WRAPPER}} .htsite-title',
91
  'separator' => 'before',
92
  ]
95
  $this->add_responsive_control(
96
  'title_border_radius',
97
  [
98
+ 'label' => __( 'Border Radius', 'htmega-addons' ),
99
  'type' => Controls_Manager::DIMENSIONS,
100
  'size_units' => [ 'px', '%', 'em' ],
101
  'selectors' => [
107
  $this->add_responsive_control(
108
  'title_padding',
109
  [
110
+ 'label' => __( 'Padding', 'htmega-addons' ),
111
  'type' => Controls_Manager::DIMENSIONS,
112
  'size_units' => [ 'px', '%', 'em' ],
113
  'selectors' => [
120
  $this->add_responsive_control(
121
  'title_margin',
122
  [
123
+ 'label' => __( 'Margin', 'htmega-addons' ),
124
  'type' => Controls_Manager::DIMENSIONS,
125
  'size_units' => [ 'px', '%', 'em' ],
126
  'selectors' => [
132
  $this->add_responsive_control(
133
  'title_align',
134
  [
135
+ 'label' => __( 'Alignment', 'htmega-addons' ),
136
  'type' => Controls_Manager::CHOOSE,
137
  'options' => [
138
  'left' => [
139
+ 'title' => __( 'Left', 'htmega-addons' ),
140
  'icon' => 'fa fa-align-left',
141
  ],
142
  'center' => [
143
+ 'title' => __( 'Center', 'htmega-addons' ),
144
  'icon' => 'fa fa-align-center',
145
  ],
146
  'right' => [
147
+ 'title' => __( 'Right', 'htmega-addons' ),
148
  'icon' => 'fa fa-align-right',
149
  ],
150
  'justify' => [
151
+ 'title' => __( 'Justified', 'htmega-addons' ),
152
  'icon' => 'fa fa-align-justify',
153
  ],
154
  ],
163
 
164
  protected function render( $instance = [] ) {
165
  $settings = $this->get_settings_for_display();
166
+
167
+ $title_tag = htmega_validate_html_tag( $settings['title_html_tag'] );
168
+
169
  if( Elementor::instance()->editor->is_edit_mode() ){
170
+ echo sprintf( '<%1$s class="htsite-title">' . __('Site Title', 'htmega-addons' ). '</%1$s>', $title_tag );
171
  }else{
172
+ echo sprintf( '<%1$s class="htsite-title">%2$s</%1$s>' , $title_tag, get_bloginfo( 'name', 'display' ) );
173
  }
174
  }
175
 
htmega_addons_elementor.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: http://demo.wphash.com/htmega/
6
  * Author: HasThemes
7
  * Author URI: https://hasthemes.com/
8
- * Version: 1.5.6
9
  * License: GPL2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: htmega-addons
@@ -13,7 +13,7 @@
13
  */
14
 
15
  if( ! defined( 'ABSPATH' ) ) exit(); // Exit if accessed directly
16
- define( 'HTMEGA_VERSION', '1.5.6' );
17
  define( 'HTMEGA_ADDONS_PL_ROOT', __FILE__ );
18
  define( 'HTMEGA_ADDONS_PL_URL', plugins_url( '/', HTMEGA_ADDONS_PL_ROOT ) );
19
  define( 'HTMEGA_ADDONS_PL_PATH', plugin_dir_path( HTMEGA_ADDONS_PL_ROOT ) );
5
  * Plugin URI: http://demo.wphash.com/htmega/
6
  * Author: HasThemes
7
  * Author URI: https://hasthemes.com/
8
+ * Version: 1.5.7
9
  * License: GPL2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: htmega-addons
13
  */
14
 
15
  if( ! defined( 'ABSPATH' ) ) exit(); // Exit if accessed directly
16
+ define( 'HTMEGA_VERSION', '1.5.7' );
17
  define( 'HTMEGA_ADDONS_PL_ROOT', __FILE__ );
18
  define( 'HTMEGA_ADDONS_PL_URL', plugins_url( '/', HTMEGA_ADDONS_PL_ROOT ) );
19
  define( 'HTMEGA_ADDONS_PL_PATH', plugin_dir_path( HTMEGA_ADDONS_PL_ROOT ) );
includes/helper-function.php CHANGED
@@ -139,6 +139,32 @@ if( !function_exists('htmega_html_tag_lists') ){
139
  }
140
  }
141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  /*
143
  * Custom Pagination
144
  */
139
  }
140
  }
141
 
142
+ /*
143
+ * HTML Tag Validation
144
+ * return strig
145
+ */
146
+ function htmega_validate_html_tag( $tag ) {
147
+ $allowed_html_tags = [
148
+ 'article',
149
+ 'aside',
150
+ 'footer',
151
+ 'header',
152
+ 'section',
153
+ 'nav',
154
+ 'main',
155
+ 'div',
156
+ 'h1',
157
+ 'h2',
158
+ 'h3',
159
+ 'h4',
160
+ 'h5',
161
+ 'h6',
162
+ 'p',
163
+ 'span',
164
+ ];
165
+ return in_array( strtolower( $tag ), $allowed_html_tags ) ? $tag : 'div';
166
+ }
167
+
168
  /*
169
  * Custom Pagination
170
  */
includes/widgets/htmega_accordion.php CHANGED
@@ -230,10 +230,6 @@ class HTMega_Elementor_Widget_Accordion extends Widget_Base {
230
  ]
231
  );
232
 
233
-
234
-
235
-
236
-
237
  $this->add_control(
238
  'htmega_accordion_list_three',
239
  [
@@ -1188,6 +1184,8 @@ class HTMega_Elementor_Widget_Accordion extends Widget_Base {
1188
  $accordion_id = $this->get_id();
1189
  $this->add_render_attribute( 'accordion_heading', 'data-toggle', 'htbcollapse' );
1190
 
 
 
1191
  // Accordiant Style Two
1192
  if( $settings['accordiantstyle'] == 'two' ){
1193
  if( $accordion_list_two ){
@@ -1278,9 +1276,9 @@ class HTMega_Elementor_Widget_Accordion extends Widget_Base {
1278
  <div class="htmega-accourdion-title">
1279
  <?php
1280
  if( ( $current_item == $i ) && ( $settings['accordion_close_all'] != 'yes' ) ){
1281
- echo sprintf('<%1$s %2$s data-target="#htmega-collapse%3$s" class="htmega-items-hedding">%4$s %5$s</%1$s>', $settings['accourdion_title_html_tag'], $this->get_render_attribute_string( 'accordion_heading' ), $j, $item['accordion_title'], $buttonicon );
1282
  }else{
1283
- echo sprintf('<%1$s %2$s data-target="#htmega-collapse%3$s" class="htb-collapsed htmega-items-hedding">%4$s %5$s</%1$s>', $settings['accourdion_title_html_tag'], $this->get_render_attribute_string( 'accordion_heading' ), $j, $item['accordion_title'], $buttonicon );
1284
  }
1285
  ?>
1286
  </div>
230
  ]
231
  );
232
 
 
 
 
 
233
  $this->add_control(
234
  'htmega_accordion_list_three',
235
  [
1184
  $accordion_id = $this->get_id();
1185
  $this->add_render_attribute( 'accordion_heading', 'data-toggle', 'htbcollapse' );
1186
 
1187
+ $title_tag = htmega_validate_html_tag( $settings['accourdion_title_html_tag'] );
1188
+
1189
  // Accordiant Style Two
1190
  if( $settings['accordiantstyle'] == 'two' ){
1191
  if( $accordion_list_two ){
1276
  <div class="htmega-accourdion-title">
1277
  <?php
1278
  if( ( $current_item == $i ) && ( $settings['accordion_close_all'] != 'yes' ) ){
1279
+ echo sprintf('<%1$s %2$s data-target="#htmega-collapse%3$s" class="htmega-items-hedding">%4$s %5$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'accordion_heading' ), $j, $item['accordion_title'], $buttonicon );
1280
  }else{
1281
+ echo sprintf('<%1$s %2$s data-target="#htmega-collapse%3$s" class="htb-collapsed htmega-items-hedding">%4$s %5$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'accordion_heading' ), $j, $item['accordion_title'], $buttonicon );
1282
  }
1283
  ?>
1284
  </div>
includes/widgets/htmega_call_to_action.php CHANGED
@@ -527,7 +527,20 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
527
  $this->add_render_attribute( 'url', 'rel', 'nofollow' );
528
  }
529
  }
530
-
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  ?>
532
  <div <?php echo $this->get_render_attribute_string( 'htmega_callto_action_attr' ); ?>>
533
  <div class="htmega-content">
@@ -539,10 +552,10 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
539
  <div class="content">
540
  <?php
541
  if( !empty( $settings['callto_action_title'] ) ){
542
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_title_tag'], $this->get_render_attribute_string( 'callto_title_attr' ), $settings['callto_action_title'] );
543
  }
544
  if( !empty( $settings['callto_action_description'] ) ){
545
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_description_tag'], $this->get_render_attribute_string( 'callto_description_attr' ), $settings['callto_action_description'] );
546
  }
547
  ?>
548
  </div>
@@ -552,7 +565,7 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
552
  <div class="text-right">
553
  <?php
554
  if( !empty( $settings['callto_action_buttontxt'] ) ){
555
- echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), $settings['callto_action_buttontxt'] );
556
  }
557
  ?>
558
  </div>
@@ -563,17 +576,17 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
563
  <div class="content">
564
  <?php
565
  if( !empty( $settings['callto_action_description'] ) ){
566
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_description_tag'], $this->get_render_attribute_string( 'callto_description_attr' ), $settings['callto_action_description'] );
567
  }
568
  if( !empty( $settings['callto_action_title'] ) ){
569
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_title_tag'], $this->get_render_attribute_string( 'callto_title_attr' ), $settings['callto_action_title'] );
570
  }
571
  ?>
572
  </div>
573
  <div class="action-btn">
574
  <?php
575
  if( !empty( $settings['callto_action_buttontxt'] ) ){
576
- echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), $settings['callto_action_buttontxt'] );
577
  }
578
  ?>
579
  </div>
@@ -582,17 +595,17 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
582
  <div class="content">
583
  <?php
584
  if( !empty( $settings['callto_action_title'] ) ){
585
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_title_tag'], $this->get_render_attribute_string( 'callto_title_attr' ), $settings['callto_action_title'] );
586
  }
587
  if( !empty( $settings['callto_action_description'] ) ){
588
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_description_tag'], $this->get_render_attribute_string( 'callto_description_attr' ), $settings['callto_action_description'] );
589
  }
590
  ?>
591
  </div>
592
  <div class="action-btn">
593
  <?php
594
  if( !empty( $settings['callto_action_buttontxt'] ) ){
595
- echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), $settings['callto_action_buttontxt'] );
596
  }
597
  ?>
598
  </div>
@@ -602,17 +615,17 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
602
  <div class="content">
603
  <?php
604
  if( !empty( $settings['callto_action_title'] ) ){
605
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_title_tag'], $this->get_render_attribute_string( 'callto_title_attr' ), $settings['callto_action_title'] );
606
  }
607
  if( !empty( $settings['callto_action_description'] ) ){
608
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_description_tag'], $this->get_render_attribute_string( 'callto_description_attr' ), $settings['callto_action_description'] );
609
  }
610
  ?>
611
  </div>
612
  <div class="action-btn">
613
  <?php
614
  if( !empty( $settings['callto_action_buttontxt'] ) ){
615
- echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), $settings['callto_action_buttontxt'] );
616
  }
617
  ?>
618
  </div>
@@ -621,13 +634,13 @@ class HTMega_Elementor_Widget_Call_To_Action extends Widget_Base {
621
  <?php else:?>
622
  <?php
623
  if( !empty( $settings['callto_action_description'] ) ){
624
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_description_tag'], $this->get_render_attribute_string( 'callto_description_attr' ), $settings['callto_action_description'] );
625
  }
626
  if( !empty( $settings['callto_action_title'] ) ){
627
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['callto_action_title_tag'], $this->get_render_attribute_string( 'callto_title_attr' ), $settings['callto_action_title'] );
628
  }
629
  if( !empty( $settings['callto_action_buttontxt'] ) ){
630
- echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), $settings['callto_action_buttontxt'] );
631
  }
632
  ?>
633
  <?php endif;?>
527
  $this->add_render_attribute( 'url', 'rel', 'nofollow' );
528
  }
529
  }
530
+
531
+ $title_tag = htmega_validate_html_tag( $settings['callto_action_title_tag'] );
532
+ $description_tag = htmega_validate_html_tag( $settings['callto_action_description_tag'] );
533
+
534
+ $allow_html = array(
535
+ 'a' => array(
536
+ 'href' => array(),
537
+ 'title' => array()
538
+ ),
539
+ 'br' => array(),
540
+ 'em' => array(),
541
+ 'strong' => array(),
542
+ );
543
+
544
  ?>
545
  <div <?php echo $this->get_render_attribute_string( 'htmega_callto_action_attr' ); ?>>
546
  <div class="htmega-content">
552
  <div class="content">
553
  <?php
554
  if( !empty( $settings['callto_action_title'] ) ){
555
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'callto_title_attr' ), wp_kses( $settings['callto_action_title'], $allow_html ) );
556
  }
557
  if( !empty( $settings['callto_action_description'] ) ){
558
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $description_tag, $this->get_render_attribute_string( 'callto_description_attr' ), wp_kses( $settings['callto_action_description'], $allow_html ) );
559
  }
560
  ?>
561
  </div>
565
  <div class="text-right">
566
  <?php
567
  if( !empty( $settings['callto_action_buttontxt'] ) ){
568
+ echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), wp_kses( $settings['callto_action_buttontxt'], $allow_html ) );
569
  }
570
  ?>
571
  </div>
576
  <div class="content">
577
  <?php
578
  if( !empty( $settings['callto_action_description'] ) ){
579
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $description_tag, $this->get_render_attribute_string( 'callto_description_attr' ), wp_kses( $settings['callto_action_description'], $allow_html ) );
580
  }
581
  if( !empty( $settings['callto_action_title'] ) ){
582
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'callto_title_attr' ), wp_kses( $settings['callto_action_title'], $allow_html ) );
583
  }
584
  ?>
585
  </div>
586
  <div class="action-btn">
587
  <?php
588
  if( !empty( $settings['callto_action_buttontxt'] ) ){
589
+ echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), wp_kses( $settings['callto_action_buttontxt'], $allow_html ) );
590
  }
591
  ?>
592
  </div>
595
  <div class="content">
596
  <?php
597
  if( !empty( $settings['callto_action_title'] ) ){
598
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'callto_title_attr' ), wp_kses( $settings['callto_action_title'], $allow_html ) );
599
  }
600
  if( !empty( $settings['callto_action_description'] ) ){
601
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $description_tag, $this->get_render_attribute_string( 'callto_description_attr' ), wp_kses( $settings['callto_action_description'], $allow_html ) );
602
  }
603
  ?>
604
  </div>
605
  <div class="action-btn">
606
  <?php
607
  if( !empty( $settings['callto_action_buttontxt'] ) ){
608
+ echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), wp_kses( $settings['callto_action_buttontxt'], $allow_html ) );
609
  }
610
  ?>
611
  </div>
615
  <div class="content">
616
  <?php
617
  if( !empty( $settings['callto_action_title'] ) ){
618
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'callto_title_attr' ), wp_kses( $settings['callto_action_title'], $allow_html ) );
619
  }
620
  if( !empty( $settings['callto_action_description'] ) ){
621
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $description_tag, $this->get_render_attribute_string( 'callto_description_attr' ), wp_kses( $settings['callto_action_description'], $allow_html ) );
622
  }
623
  ?>
624
  </div>
625
  <div class="action-btn">
626
  <?php
627
  if( !empty( $settings['callto_action_buttontxt'] ) ){
628
+ echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), wp_kses( $settings['callto_action_buttontxt'], $allow_html ) );
629
  }
630
  ?>
631
  </div>
634
  <?php else:?>
635
  <?php
636
  if( !empty( $settings['callto_action_description'] ) ){
637
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $description_tag, $this->get_render_attribute_string( 'callto_description_attr' ), wp_kses( $settings['callto_action_description'], $allow_html ) );
638
  }
639
  if( !empty( $settings['callto_action_title'] ) ){
640
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'callto_title_attr' ), wp_kses( $settings['callto_action_title'], $allow_html ) );
641
  }
642
  if( !empty( $settings['callto_action_buttontxt'] ) ){
643
+ echo sprintf('<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), wp_kses( $settings['callto_action_buttontxt'], $allow_html ) );
644
  }
645
  ?>
646
  <?php endif;?>
includes/widgets/htmega_section_title.php CHANGED
@@ -860,16 +860,19 @@ class HTMega_Elementor_Widget_Section_Title extends Widget_Base {
860
  $subtitle = sprintf( '<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'suburl' ), $subtitle );
861
  }
862
 
 
 
 
863
  ?>
864
  <div <?php echo $this->get_render_attribute_string( 'section_area_attr' ); ?>>
865
  <?php
866
  if( $titlestyle == 'one' ){
867
 
868
  if( !empty($title) ){
869
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['section_title_tag'], $this->get_render_attribute_string( 'section_title_text' ), $title );
870
  }
871
  if( !empty( $subtitle ) ){
872
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['section_subtitle_tag'], $this->get_render_attribute_string( 'section_subtitle_attr' ), $subtitle );
873
  }
874
 
875
  if( !empty( $settings['titleimage'] ) ){
@@ -883,13 +886,13 @@ class HTMega_Elementor_Widget_Section_Title extends Widget_Base {
883
  }else{
884
 
885
  if( !empty( $title ) ){
886
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>%4$s', $settings['section_title_tag'], $this->get_render_attribute_string( 'section_title_text' ), $title, '<div class=htmega-title-sperator-sec><span class="htmega-title-sperator">&nbsp;</span></div>' );
887
  }
888
  if( !empty($settings['section_advancetitle_text']) && $titlestyle == 'five' ){
889
  echo sprintf( '<div %1$s>%2$s</div>', $this->get_render_attribute_string( 'section_advancetitle_attr' ), $settings['section_advancetitle_text'] );
890
  }
891
  if( !empty( $subtitle ) ){
892
- echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $settings['section_subtitle_tag'], $this->get_render_attribute_string( 'section_subtitle_attr' ), $subtitle );
893
  }
894
  if( !empty( $settings['titleimage'] ) ){
895
  echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'iconimagesize', 'titleimage' );
860
  $subtitle = sprintf( '<a %1$s>%2$s</a>', $this->get_render_attribute_string( 'suburl' ), $subtitle );
861
  }
862
 
863
+ $title_tag = htmega_validate_html_tag( $settings['section_title_tag'] );
864
+ $sub_title_tag = htmega_validate_html_tag( $settings['section_subtitle_tag'] );
865
+
866
  ?>
867
  <div <?php echo $this->get_render_attribute_string( 'section_area_attr' ); ?>>
868
  <?php
869
  if( $titlestyle == 'one' ){
870
 
871
  if( !empty($title) ){
872
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $title_tag, $this->get_render_attribute_string( 'section_title_text' ), $title );
873
  }
874
  if( !empty( $subtitle ) ){
875
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $sub_title_tag, $this->get_render_attribute_string( 'section_subtitle_attr' ), $subtitle );
876
  }
877
 
878
  if( !empty( $settings['titleimage'] ) ){
886
  }else{
887
 
888
  if( !empty( $title ) ){
889
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>%4$s', $title_tag, $this->get_render_attribute_string( 'section_title_text' ), $title, '<div class=htmega-title-sperator-sec><span class="htmega-title-sperator">&nbsp;</span></div>' );
890
  }
891
  if( !empty($settings['section_advancetitle_text']) && $titlestyle == 'five' ){
892
  echo sprintf( '<div %1$s>%2$s</div>', $this->get_render_attribute_string( 'section_advancetitle_attr' ), $settings['section_advancetitle_text'] );
893
  }
894
  if( !empty( $subtitle ) ){
895
+ echo sprintf( '<%1$s %2$s>%3$s</%1$s>', $sub_title_tag, $this->get_render_attribute_string( 'section_subtitle_attr' ), $subtitle );
896
  }
897
  if( !empty( $settings['titleimage'] ) ){
898
  echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'iconimagesize', 'titleimage' );
readme.txt CHANGED
@@ -170,6 +170,9 @@ Feel free to [Contact us](https://htplugins.com/contact-us/)
170
  Visit [HasThemes](https://hasthemes.com/) for more details about HTML, Shopify and WordPress products and services.
171
 
172
  == Changelog ==
 
 
 
173
  = Version: 1.5.5- Date: 2021-03-11 =
174
  * Instagram issue solved.
175
 
170
  Visit [HasThemes](https://hasthemes.com/) for more details about HTML, Shopify and WordPress products and services.
171
 
172
  == Changelog ==
173
+ = Version: 1.5.7 - Date: 2021-03-27 =
174
+ * HTML tags validation issue solved.
175
+
176
  = Version: 1.5.5- Date: 2021-03-11 =
177
  * Instagram issue solved.
178