Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget) - Version 2.6.1

Version Description

  • 16 February 2020 =

  • Fix: Conflict with Rank Math

  • Fix: Fun Factor padding issue

  • Fix: Stepflow inline editing issue

  • Fix: Gravity Forms conditional field issue

  • Fix: Inline editing issue in Elementor 2.9.*

  • Fix: Select2 width collapse issue in Elementor 2.9.*

Download this release

Release Info

Developer thehappymonster
Plugin Icon 128x128 Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget)
Version 2.6.1
Comparing to
See all releases

Code changes from version 2.6.0 to 2.6.1

assets/admin/js/editor.js CHANGED
@@ -1,4 +1,4 @@
1
- ;(function(elementor, $, window) {
2
  'use strict';
3
 
4
  elementor.on('panel:init', function() {
@@ -144,4 +144,4 @@
144
  newTab: true
145
  }, 'settings');
146
 
147
- }(elementor, jQuery, window));
1
+ ;(function($) {
2
  'use strict';
3
 
4
  elementor.on('panel:init', function() {
144
  newTab: true
145
  }, 'settings');
146
 
147
+ }(jQuery));
assets/admin/js/editor.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,t,n){"use strict";function i(){return{translate:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],skew:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],scale:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],rotate:["x","y","z","x_tablet","y_tablet","z_tablet","x_mobile","y_mobile","z_mobile"]}}function a(t,n,i){t="ha_transform_fx_"+t,n="ha_transform_fx_"+n,i.on("change:"+t,function(t,a){if(!a){var o=e.getPanelView().getCurrentPageView().children.find(function(e){return e.model.get("name")===n});i.set(n,_.extend({},i.defaults[n])),o&&o.render()}})}function o(t){var n=elementorFrontend.config.elements.data[t.cid];_.each(i(),function(e,t){_.each(e,function(e){a(t+"_toggle",t+"_"+e,n)})}),e.getPanelView().getCurrentPageView().model.on("editor:close",function(){_.each(i(),function(e,t){n.off("change:ha_transform_fx_"+t+"_toggle")})})}if(e.on("panel:init",function(){t("#elementor-panel-elements-search-input").on("keyup",_.debounce(function(){t("#elementor-panel-elements").find(".hm").parents(".elementor-element").addClass("is-ha-widget")},100))}),e.hooks.addAction("panel/open_editor/widget",function(e,t){o(t)}),e.modules.controls.Icons){var l=e.modules.controls.Icons.extend({getControlValue:function(){var e=this.constructor.__super__.getControlValue.call(this),t=this.model,n=this.getValueToMigrate(),i={value:"",library:"happy-icons"},a=this.container&&this.container.settings||this.elementSettingsModel;if(_.isObject(e)&&!_.isEmpty(e)&&"svg"!==e.library&&0===e.value.indexOf("fashm"))return i.value=e.value.substr(e.value.indexOf("hm hm-")),a.set(t.get("name"),i),i;if(!_.isObject(e)&&n&&0===n.indexOf("hm hm-"))return i.value=n,a.set(t.get("name"),i),i;if(!this.isMigrationAllowed())return n;if(!n)return e;var o=a.get(this.dataKeys.migratedKey),l=t.get("name");return this.cache.migratedFlag[l]?this.cache.migratedFlag[l]:o&&o[l]?e:this.migrateFa4toFa5(n)}});e.addControlView("icons",l)}n.ha_has_icon_library=function(){return e.helpers&&e.helpers.renderIcon},n.ha_get_feature_label=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},e.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-home",icon:"hm hm-happyaddons",title:HappyAddonsEditor.editorPanelHomeLinkTitle,type:"link",link:HappyAddonsEditor.editorPanelHomeLinkURL,newTab:!0},"settings"),e.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-widgets",icon:"hm hm-cross-game",title:HappyAddonsEditor.editorPanelWidgetsLinkTitle,type:"link",link:HappyAddonsEditor.editorPanelWidgetsLinkURL,newTab:!0},"settings")}(elementor,jQuery,window);
1
+ !function(e){"use strict";function t(){return{translate:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],skew:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],scale:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],rotate:["x","y","z","x_tablet","y_tablet","z_tablet","x_mobile","y_mobile","z_mobile"]}}function n(e,t,n){e="ha_transform_fx_"+e,t="ha_transform_fx_"+t,n.on("change:"+e,function(e,o){if(!o){var i=elementor.getPanelView().getCurrentPageView().children.find(function(e){return e.model.get("name")===t});n.set(t,_.extend({},n.defaults[t])),i&&i.render()}})}function o(e){var o=elementorFrontend.config.elements.data[e.cid];_.each(t(),function(e,t){_.each(e,function(e){n(t+"_toggle",t+"_"+e,o)})}),elementor.getPanelView().getCurrentPageView().model.on("editor:close",function(){_.each(t(),function(e,t){o.off("change:ha_transform_fx_"+t+"_toggle")})})}if(elementor.on("panel:init",function(){e("#elementor-panel-elements-search-input").on("keyup",_.debounce(function(){e("#elementor-panel-elements").find(".hm").parents(".elementor-element").addClass("is-ha-widget")},100))}),elementor.hooks.addAction("panel/open_editor/widget",function(e,t){o(t)}),elementor.modules.controls.Icons){var i=elementor.modules.controls.Icons.extend({getControlValue:function(){var e=this.constructor.__super__.getControlValue.call(this),t=this.model,n=this.getValueToMigrate(),o={value:"",library:"happy-icons"},i=this.container&&this.container.settings||this.elementSettingsModel;if(_.isObject(e)&&!_.isEmpty(e)&&"svg"!==e.library&&0===e.value.indexOf("fashm"))return o.value=e.value.substr(e.value.indexOf("hm hm-")),i.set(t.get("name"),o),o;if(!_.isObject(e)&&n&&0===n.indexOf("hm hm-"))return o.value=n,i.set(t.get("name"),o),o;if(!this.isMigrationAllowed())return n;if(!n)return e;var a=i.get(this.dataKeys.migratedKey),l=t.get("name");return this.cache.migratedFlag[l]?this.cache.migratedFlag[l]:a&&a[l]?e:this.migrateFa4toFa5(n)}});elementor.addControlView("icons",i)}window.ha_has_icon_library=function(){return elementor.helpers&&elementor.helpers.renderIcon},window.ha_get_feature_label=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-home",icon:"hm hm-happyaddons",title:HappyAddonsEditor.editorPanelHomeLinkTitle,type:"link",link:HappyAddonsEditor.editorPanelHomeLinkURL,newTab:!0},"settings"),elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-widgets",icon:"hm hm-cross-game",title:HappyAddonsEditor.editorPanelWidgetsLinkTitle,type:"link",link:HappyAddonsEditor.editorPanelWidgetsLinkURL,newTab:!0},"settings")}(jQuery);
base/widget-base.php CHANGED
@@ -151,4 +151,76 @@ abstract class Base extends Widget_Base {
151
  ] );
152
  }
153
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  }
151
  ] );
152
  }
153
  }
154
+
155
+ /**
156
+ * Add link render attributes.
157
+ *
158
+ * Used to add link tag attributes to a specific HTML element.
159
+ *
160
+ * The HTML link tag is represented by the element parameter. The `url_control` parameter
161
+ * needs to be an array of link settings in the same format they are set by Elementor's URL control.
162
+ *
163
+ * Example usage:
164
+ *
165
+ * `$this->add_link_attributes( 'button', $settings['link'] );`
166
+ *
167
+ * @since 2.8.0
168
+ * @access public
169
+ *
170
+ * @param array|string $element The HTML element.
171
+ * @param array $url_control Array of link settings.
172
+ * @param bool $overwrite Optional. Whether to overwrite existing
173
+ * attribute. Default is false, not to overwrite.
174
+ *
175
+ * @return \Elementor\Element_Base instance
176
+ */
177
+
178
+ public function add_link_attributes( $element, array $url_control, $overwrite = false ) {
179
+ /**
180
+ * add_link_attributes is only available form 2.8.0
181
+ */
182
+ if ( ha_is_elementor_version( '>=', '2.8.0' ) ) {
183
+ return parent::add_link_attributes( $element, $url_control, $overwrite );
184
+ }
185
+
186
+ $attributes = [];
187
+
188
+ if ( ! empty( $url_control['url'] ) ) {
189
+ $attributes['href'] = $url_control['url'];
190
+ }
191
+
192
+ if ( ! empty( $url_control['is_external'] ) ) {
193
+ $attributes['target'] = '_blank';
194
+ }
195
+
196
+ if ( ! empty( $url_control['nofollow'] ) ) {
197
+ $attributes['rel'] = 'nofollow';
198
+ }
199
+
200
+ if ( ! empty( $url_control['custom_attributes'] ) ) {
201
+ // Custom URL attributes should come as a string of comma-delimited key|value pairs
202
+ $custom_attributes = explode( ',', $url_control['custom_attributes'] );
203
+ $blacklist = [ 'onclick', 'onfocus', 'onblur', 'onchange', 'onresize', 'onmouseover', 'onmouseout', 'onkeydown', 'onkeyup' ];
204
+
205
+ foreach ( $custom_attributes as $attribute ) {
206
+ // Trim in case users inserted unwanted spaces
207
+ list( $attr_key, $attr_value ) = explode( '|', $attribute );
208
+
209
+ // Cover cases where key/value have spaces both before and/or after the actual value
210
+ $attr_key = trim( $attr_key );
211
+ $attr_value = trim( $attr_value );
212
+
213
+ // Implement attribute blacklist
214
+ if ( ! in_array( strtolower( $attr_key ), $blacklist, true ) ) {
215
+ $attributes[ $attr_key ] = $attr_value;
216
+ }
217
+ }
218
+ }
219
+
220
+ if ( $attributes ) {
221
+ $this->add_render_attribute( $element, $attributes, $overwrite );
222
+ }
223
+
224
+ return $this;
225
+ }
226
  }
changelog.txt CHANGED
@@ -1,3 +1,12 @@
 
 
 
 
 
 
 
 
 
1
  = 2.6.0 - 15 January 2020 =
2
 
3
  - New: Fun Factor widget
1
+ = 2.6.1 - 16 February 2020 =
2
+
3
+ - Fix: Conflict with Rank Math
4
+ - Fix: Fun Factor padding issue
5
+ - Fix: Stepflow inline editing issue
6
+ - Fix: Gravity Forms conditional field issue
7
+ - Fix: Inline editing issue in Elementor 2.9.*
8
+ - Fix: Select2 width collapse issue in Elementor 2.9.*
9
+
10
  = 2.6.0 - 15 January 2020 =
11
 
12
  - New: Fun Factor widget
classes/assets-manager.php CHANGED
@@ -19,7 +19,8 @@ class Assets_Manager {
19
  // Edit and preview enqueue
20
  add_action( 'elementor/preview/enqueue_styles', [ __CLASS__, 'enqueue_preview_style' ] );
21
 
22
- add_action( 'elementor/editor/before_enqueue_scripts', [ __CLASS__, 'enqueue_editor_scripts' ] );
 
23
 
24
  // Placeholder image replacement
25
  add_filter( 'elementor/utils/get_placeholder_image_src', [ __CLASS__, 'set_placeholder_image' ] );
@@ -35,16 +36,24 @@ class Assets_Manager {
35
  * @return array
36
  */
37
  public static function add_inline_editing_intermediate_toolbar( $config ) {
38
- $config['inlineEditing'] = [
39
- 'toolbar' => [
40
- 'intermediate' => [
41
- 'bold',
42
- 'underline',
43
- 'italic',
44
- 'createlink',
45
- ],
46
- ]
47
- ];
 
 
 
 
 
 
 
 
48
  return $config;
49
  }
50
 
19
  // Edit and preview enqueue
20
  add_action( 'elementor/preview/enqueue_styles', [ __CLASS__, 'enqueue_preview_style' ] );
21
 
22
+ // Enqueue editor scripts
23
+ add_action( 'elementor/editor/after_enqueue_scripts', [ __CLASS__, 'enqueue_editor_scripts' ] );
24
 
25
  // Placeholder image replacement
26
  add_filter( 'elementor/utils/get_placeholder_image_src', [ __CLASS__, 'set_placeholder_image' ] );
36
  * @return array
37
  */
38
  public static function add_inline_editing_intermediate_toolbar( $config ) {
39
+ if ( isset( $config['inlineEditing'] ) ) {
40
+ $tools = [
41
+ 'bold',
42
+ 'underline',
43
+ 'italic',
44
+ 'createlink',
45
+ ];
46
+
47
+ if ( isset( $config['inlineEditing']['toolbar'] ) ) {
48
+ $config['inlineEditing']['toolbar']['intermediate'] = $tools;
49
+ } else {
50
+ $config['inlineEditing'] = [
51
+ 'toolbar' => [
52
+ 'intermediate' => $tools,
53
+ ],
54
+ ];
55
+ }
56
+ }
57
  return $config;
58
  }
59
 
classes/dashboard.php CHANGED
@@ -13,6 +13,8 @@ class Dashboard {
13
 
14
  const PAGE_SLUG = 'happy-addons';
15
 
 
 
16
  const WIDGETS_NONCE = 'ha_save_dashboard';
17
 
18
  static $menu_slug = '';
@@ -27,6 +29,19 @@ class Dashboard {
27
  add_filter( 'plugin_action_links_' . plugin_basename( HAPPY_ADDONS__FILE__ ), [ __CLASS__, 'add_action_links' ] );
28
 
29
  add_action( 'happyaddons_save_dashboard_data', [ __CLASS__, 'save_widgets_data' ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
 
32
  public static function activation_redirect() {
13
 
14
  const PAGE_SLUG = 'happy-addons';
15
 
16
+ const LICENSE_PAGE_SLUG = 'happy-addons-license';
17
+
18
  const WIDGETS_NONCE = 'ha_save_dashboard';
19
 
20
  static $menu_slug = '';
29
  add_filter( 'plugin_action_links_' . plugin_basename( HAPPY_ADDONS__FILE__ ), [ __CLASS__, 'add_action_links' ] );
30
 
31
  add_action( 'happyaddons_save_dashboard_data', [ __CLASS__, 'save_widgets_data' ] );
32
+
33
+ add_action( 'in_admin_header', [ __CLASS__, 'remove_all_notices' ], PHP_INT_MAX );
34
+ }
35
+
36
+ public static function is_page() {
37
+ return ( isset( $_GET['page'] ) && ( $_GET['page'] === self::PAGE_SLUG || $_GET['page'] === self::LICENSE_PAGE_SLUG ) );
38
+ }
39
+
40
+ public static function remove_all_notices() {
41
+ if ( self::is_page() ) {
42
+ remove_all_actions( 'admin_notices' );
43
+ remove_all_actions( 'all_admin_notices' );
44
+ }
45
  }
46
 
47
  public static function activation_redirect() {
plugin.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Happy Elementor Addons
4
  * Plugin URI: https://happyaddons.com/
5
  * Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
6
- * Version: 2.6.0
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * License: GPLv2
@@ -34,7 +34,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
- define( 'HAPPY_ADDONS_VERSION', '2.6.0' );
38
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
39
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
40
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
3
  * Plugin Name: Happy Elementor Addons
4
  * Plugin URI: https://happyaddons.com/
5
  * Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
6
+ * Version: 2.6.1
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * License: GPLv2
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
+ define( 'HAPPY_ADDONS_VERSION', '2.6.1' );
38
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
39
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
40
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
readme.txt CHANGED
@@ -1,6 +1,6 @@
1
  === Happy Elementor Addons ===
2
  Plugin Name: Happy Elementor Addons
3
- Version: 2.6.0
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, obiplabon
@@ -268,6 +268,15 @@ It's really easy and super simple to install **Happy Elementor Addons** plugin b
268
 
269
  == Changelog ==
270
 
 
 
 
 
 
 
 
 
 
271
  = 2.6.0 - 15 January 2020 =
272
 
273
  - New: Fun Factor widget
1
  === Happy Elementor Addons ===
2
  Plugin Name: Happy Elementor Addons
3
+ Version: 2.6.1
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, obiplabon
268
 
269
  == Changelog ==
270
 
271
+ = 2.6.1 - 16 February 2020 =
272
+
273
+ - Fix: Conflict with Rank Math
274
+ - Fix: Fun Factor padding issue
275
+ - Fix: Stepflow inline editing issue
276
+ - Fix: Gravity Forms conditional field issue
277
+ - Fix: Inline editing issue in Elementor 2.9.*
278
+ - Fix: Select2 width collapse issue in Elementor 2.9.*
279
+
280
  = 2.6.0 - 15 January 2020 =
281
 
282
  - New: Fun Factor widget
widgets/card/widget.php CHANGED
@@ -594,6 +594,7 @@ class Card extends Base {
594
  [
595
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
596
  'type' => Controls_Manager::HOVER_ANIMATION,
 
597
  ]
598
  );
599
 
594
  [
595
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
596
  'type' => Controls_Manager::HOVER_ANIMATION,
597
+ 'label_block' => true,
598
  ]
599
  );
600
 
widgets/fun-factor/widget.php CHANGED
@@ -430,7 +430,7 @@ class Fun_Factor extends Base {
430
  'type' => Controls_Manager::SLIDER,
431
  'size_units' => ['px'],
432
  'selectors' => [
433
- '{{WRAPPER}} .ha-fun-factor-image-section img, {{WRAPPER}} .ha-fun-factor-icon-section' => 'padding: {{SIZE}}{{UNIT}};',
434
  ],
435
  ]
436
  );
430
  'type' => Controls_Manager::SLIDER,
431
  'size_units' => ['px'],
432
  'selectors' => [
433
+ '{{WRAPPER}} .ha-fun-factor-image-section img, {{WRAPPER}} .ha-fun-factor-icon-section' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
434
  ],
435
  ]
436
  );
widgets/gravityforms/widget.php CHANGED
@@ -946,7 +946,7 @@ class GravityForms extends Base {
946
  $settings = $this->get_settings_for_display();
947
 
948
  if ( ! empty( $settings['form_id'] ) ) {
949
- gravity_form( $settings['form_id'], $settings['form_title_show'] );
950
  }
951
  }
952
  }
946
  $settings = $this->get_settings_for_display();
947
 
948
  if ( ! empty( $settings['form_id'] ) ) {
949
+ gravity_form( $settings['form_id'], $settings['form_title_show'], $echo = true );
950
  }
951
  }
952
  }
widgets/image-grid/widget.php CHANGED
@@ -397,7 +397,7 @@ class Image_Grid extends Base {
397
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
398
  'type' => Controls_Manager::HOVER_ANIMATION,
399
  'default' => 'grow',
400
- 'label_block' => false,
401
  ]
402
  );
403
 
397
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
398
  'type' => Controls_Manager::HOVER_ANIMATION,
399
  'default' => 'grow',
400
+ 'label_block' => true,
401
  ]
402
  );
403
 
widgets/justified-gallery/widget.php CHANGED
@@ -400,7 +400,7 @@ class Justified_Gallery extends Base {
400
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
401
  'type' => Controls_Manager::HOVER_ANIMATION,
402
  'default' => 'grow',
403
- 'label_block' => false,
404
  ]
405
  );
406
 
@@ -409,6 +409,7 @@ class Justified_Gallery extends Base {
409
  [
410
  'label' => __( 'Hover Cursor', 'happy-elementor-addons' ),
411
  'type' => Controls_Manager::SELECT2,
 
412
  'options' => ha_get_css_cursors(),
413
  'default' => 'default',
414
  'selectors' => [
400
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
401
  'type' => Controls_Manager::HOVER_ANIMATION,
402
  'default' => 'grow',
403
+ 'label_block' => true,
404
  ]
405
  );
406
 
409
  [
410
  'label' => __( 'Hover Cursor', 'happy-elementor-addons' ),
411
  'type' => Controls_Manager::SELECT2,
412
+ 'label_block' => true,
413
  'options' => ha_get_css_cursors(),
414
  'default' => 'default',
415
  'selectors' => [
widgets/logo-grid/widget.php CHANGED
@@ -502,6 +502,7 @@ class Logo_Grid extends Base {
502
  [
503
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
504
  'type' => Controls_Manager::HOVER_ANIMATION,
 
505
  ]
506
  );
507
 
502
  [
503
  'label' => __( 'Hover Animation', 'happy-elementor-addons' ),
504
  'type' => Controls_Manager::HOVER_ANIMATION,
505
+ 'label_block' => true,
506
  ]
507
  );
508
 
widgets/member/widget.php CHANGED
@@ -255,6 +255,7 @@ class Member extends Base {
255
  [
256
  'label' => __( 'Profile Name', 'happy-elementor-addons' ),
257
  'type' => Controls_Manager::SELECT2,
 
258
  'select2options' => [
259
  'allowClear' => false,
260
  ],
@@ -267,7 +268,7 @@ class Member extends Base {
267
  'label' => __( 'Profile Link', 'happy-elementor-addons' ),
268
  'placeholder' => __( 'Add your profile link', 'happy-elementor-addons' ),
269
  'type' => Controls_Manager::URL,
270
- 'label_block' => false,
271
  'autocomplete' => false,
272
  'show_external' => false,
273
  'condition' => [
255
  [
256
  'label' => __( 'Profile Name', 'happy-elementor-addons' ),
257
  'type' => Controls_Manager::SELECT2,
258
+ 'label_block' => true,
259
  'select2options' => [
260
  'allowClear' => false,
261
  ],
268
  'label' => __( 'Profile Link', 'happy-elementor-addons' ),
269
  'placeholder' => __( 'Add your profile link', 'happy-elementor-addons' ),
270
  'type' => Controls_Manager::URL,
271
+ 'label_block' => true,
272
  'autocomplete' => false,
273
  'show_external' => false,
274
  'condition' => [
widgets/step-flow/widget.php CHANGED
@@ -661,7 +661,6 @@ class Step_Flow extends Base {
661
  protected function render() {
662
  $settings = $this->get_settings_for_display();
663
 
664
- $this->add_inline_editing_attributes( 'title', 'basic' );
665
  $this->add_render_attribute( 'title', 'class', 'ha-steps-title' );
666
 
667
  $this->add_inline_editing_attributes( 'description', 'intermediate' );
@@ -670,26 +669,16 @@ class Step_Flow extends Base {
670
  $this->add_render_attribute( 'badge', 'class', 'ha-steps-label' );
671
  $this->add_inline_editing_attributes( 'badge', 'none' );
672
 
673
- if ( $settings['link']['url'] ) {
 
674
  $this->add_inline_editing_attributes( 'link', 'basic', 'title' );
675
- $this->add_render_attribute( 'link', 'href', esc_url( $settings['link']['url'] ) );
676
- if ( ! empty( $settings['link']['is_external'] ) ) {
677
- $this->add_render_attribute( 'link', 'target', '_blank' );
678
- }
679
- if ( ! empty( $settings['link']['nofollow'] ) ) {
680
- $this->set_render_attribute( 'link', 'rel', 'nofollow' );
681
- }
682
- } else {
683
- $this->add_inline_editing_attributes( 'title', 'basic' );
684
- }
685
 
686
- if ( ! empty( $settings['link']['url'] ) ) {
687
- $title = sprintf(
688
- '<a %1$s>%2$s</a>',
689
  $this->get_render_attribute_string( 'link' ),
690
  ha_kses_basic( $settings['title'] )
691
  );
692
  } else {
 
693
  $title = ha_kses_basic( $settings['title'] );
694
  }
695
  ?>
@@ -709,8 +698,7 @@ class Step_Flow extends Base {
709
  </div>
710
 
711
  <?php
712
- printf(
713
- '<%1$s %2$s>%3$s</%1$s>',
714
  tag_escape( $settings['title_tag'] ),
715
  $this->get_render_attribute_string( 'title' ),
716
  $title
661
  protected function render() {
662
  $settings = $this->get_settings_for_display();
663
 
 
664
  $this->add_render_attribute( 'title', 'class', 'ha-steps-title' );
665
 
666
  $this->add_inline_editing_attributes( 'description', 'intermediate' );
669
  $this->add_render_attribute( 'badge', 'class', 'ha-steps-label' );
670
  $this->add_inline_editing_attributes( 'badge', 'none' );
671
 
672
+ if ( ! empty( $settings['link']['url'] ) ) {
673
+ $this->add_link_attributes( 'link', $settings['link'] );
674
  $this->add_inline_editing_attributes( 'link', 'basic', 'title' );
 
 
 
 
 
 
 
 
 
 
675
 
676
+ $title = sprintf( '<a %s>%s</a>',
 
 
677
  $this->get_render_attribute_string( 'link' ),
678
  ha_kses_basic( $settings['title'] )
679
  );
680
  } else {
681
+ $this->add_inline_editing_attributes( 'title', 'basic' );
682
  $title = ha_kses_basic( $settings['title'] );
683
  }
684
  ?>
698
  </div>
699
 
700
  <?php
701
+ printf( '<%1$s %2$s>%3$s</%1$s>',
 
702
  tag_escape( $settings['title_tag'] ),
703
  $this->get_render_attribute_string( 'title' ),
704
  $title