Version Description
7 October 2019 =
Update: Style copy-paste support improved
Fix: Image Grid image alt attribute value issue
Fix: Justified Gallery image alt attribute value issue
Fix: Skills Bar % sign visibility inconsistency issue
Download this release
Release Info
Developer | thehappymonster |
Plugin | Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget) |
Version | 2.2.0 |
Comparing to | |
See all releases |
Code changes from version 2.1.0 to 2.2.0
- assets/js/happy-addons.js +1 -1
- assets/js/happy-addons.min.js +1 -1
- base.php +6 -1
- classes/widgets-manager.php +24 -19
- plugin.php +2 -2
- readme.txt +8 -1
- vendor/appsero/src/License.php +6 -1
- widgets/card/widget.php +3 -2
- widgets/carousel/widget.php +4 -0
- widgets/dual-button/widget.php +12 -4
- widgets/flip-box/widget.php +2 -0
- widgets/image-grid/widget.php +8 -12
- widgets/infobox/widget.php +3 -2
- widgets/justified-gallery/widget.php +8 -7
- widgets/logo-grid/widget.php +3 -1
- widgets/member/widget.php +12 -6
- widgets/pricing-table/widget.php +4 -3
- widgets/review/widget.php +4 -1
- widgets/skills/widget.php +8 -4
- widgets/slider/widget.php +2 -1
assets/js/happy-addons.js
CHANGED
@@ -305,7 +305,7 @@
|
|
305 |
$lt.numerator({
|
306 |
toValue: lv + '%',
|
307 |
duration: 1300,
|
308 |
-
|
309 |
$lt.append('%');
|
310 |
}
|
311 |
});
|
305 |
$lt.numerator({
|
306 |
toValue: lv + '%',
|
307 |
duration: 1300,
|
308 |
+
onStep: function() {
|
309 |
$lt.append('%');
|
310 |
}
|
311 |
});
|
assets/js/happy-addons.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
"use strict";!function(t,e){function i(e,i){var n=e.find(".hajs-gallery-filter");n.length&&n.on("click","button",function(e){e.stopPropagation();var n=t(this);n.parent().addClass("ha-filter-active").siblings().removeClass("ha-filter-active"),i(n.data("filter"))})}function n(e,i,n,s){if(t.fn.magnificPopup){if(!n)return void t.magnificPopup.close();e.on("click",i,function(t){t.stopPropagation()}),e.find(i).magnificPopup({key:s,type:"image",image:{titleSrc:function(t){return t.el.attr("title")?t.el.attr("title"):t.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(t){return t.is("img")?t:t.find("img")}}})}}var s=t(e);t.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(t){var e=t.find(".hajs-image-comparison"),i=e.getHappySettings();i[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[i.move_handle||"on_swipe"]]=!0,delete i.move_handle,e.imagesLoaded().done(function(){e.twentytwenty(i)})},a=function(e){var s=e.find(".hajs-justified-gallery"),o=s.getHappySettings(),a=o.enable_popup;s.justifiedGallery(t.extend({},{rowHeight:150,lastRow:"justify",margins:10},o)),n(e,".ha-js-popup",a,"justifiedgallery"),i(e,function(t){s.justifiedGallery({lastRow:"*"===t?o.lastRow:"nojustify",filter:t}),n(e,"*"!==t?t:".ha-js-popup",a,"justifiedgallery")})};s.on("elementor/frontend/init",function(){var e=elementorFrontend,s=elementorModules,
|
1 |
+
"use strict";!function(t,e){function i(e,i){var n=e.find(".hajs-gallery-filter");n.length&&n.on("click","button",function(e){e.stopPropagation();var n=t(this);n.parent().addClass("ha-filter-active").siblings().removeClass("ha-filter-active"),i(n.data("filter"))})}function n(e,i,n,s){if(t.fn.magnificPopup){if(!n)return void t.magnificPopup.close();e.on("click",i,function(t){t.stopPropagation()}),e.find(i).magnificPopup({key:s,type:"image",image:{titleSrc:function(t){return t.el.attr("title")?t.el.attr("title"):t.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(t){return t.is("img")?t:t.find("img")}}})}}var s=t(e);t.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(t){var e=t.find(".hajs-image-comparison"),i=e.getHappySettings();i[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[i.move_handle||"on_swipe"]]=!0,delete i.move_handle,e.imagesLoaded().done(function(){e.twentytwenty(i)})},a=function(e){var s=e.find(".hajs-justified-gallery"),o=s.getHappySettings(),a=o.enable_popup;s.justifiedGallery(t.extend({},{rowHeight:150,lastRow:"justify",margins:10},o)),n(e,".ha-js-popup",a,"justifiedgallery"),i(e,function(t){s.justifiedGallery({lastRow:"*"===t?o.lastRow:"nojustify",filter:t}),n(e,"*"!==t?t:".ha-js-popup",a,"justifiedgallery")})};s.on("elementor/frontend/init",function(){var e=elementorFrontend,s=elementorModules,r=s.frontend.handlers.Base.extend({onInit:function(){s.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.widgetContainer=this.$element.find(".elementor-widget-container")[0],this.initFloatingEffects(),this.initBackgroundOverlay()},initBackgroundOverlay:function(){this.isEdit&&this.$element.addClass("ha-has-background-overlay")},getDefaultSettings:function(){return{targets:this.widgetContainer,loop:!0,direction:"alternate",easing:"easeInOutSine"}},onElementChange:function(){this.animation&&this.animation.restart(),this.initFloatingEffects()},getConfig:function(t){return this.getElementSettings("ha_floating_fx_"+t)},initFloatingEffects:function(){var t=this.getDefaultSettings();this.getConfig("translate_toggle")&&((this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to"))&&(t.translateX={value:[this.getConfig("translate_x.sizes.from")||0,this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0}),(this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to"))&&(t.translateY={value:[this.getConfig("translate_y.sizes.from")||0,this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0})),this.getConfig("rotate_toggle")&&((this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to"))&&(t.rotateX={value:[this.getConfig("rotate_x.sizes.from")||0,this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to"))&&(t.rotateY={value:[this.getConfig("rotate_y.sizes.from")||0,this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to"))&&(t.rotateZ={value:[this.getConfig("rotate_z.sizes.from")||0,this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0})),this.getConfig("scale_toggle")&&((this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to"))&&(t.scaleX={value:[this.getConfig("scale_x.sizes.from")||0,this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0}),(this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to"))&&(t.scaleY={value:[this.getConfig("scale_y.sizes.from")||0,this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0})),(this.getConfig("translate_toggle")||this.getConfig("rotate_toggle")||this.getConfig("scale_toggle"))&&(this.widgetContainer.style.setProperty("will-change","transform"),this.animation=anime(t))}}),l=s.frontend.handlers.Base.extend({onInit:function(){s.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$container=this.$element.find(".hajs-slick"),this.run()},isCarousel:function(){return this.$element.hasClass("ha-carousel")},getDefaultSettings:function(){return{arrows:!1,dots:!1,checkVisible:!1,infinite:!0,slidesToShow:this.isCarousel()?3:1,rows:0,prevArrow:'<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>'}},onElementChange:function(){this.$container.slick("unslick"),this.run()},getReadySettings:function(){var i={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":i.arrows=!0;break;case"dots":i.dots=!0;break;case"both":i.arrows=!0,i.dots=!0}return this.isCarousel()&&(i.slidesToShow=this.getElementSettings("slides_to_show")||3,i.responsive=[{breakpoint:e.config.breakpoints.lg,settings:{slidesToShow:this.getElementSettings("slides_to_show_tablet")||i.slidesToShow}},{breakpoint:e.config.breakpoints.md,settings:{slidesToShow:this.getElementSettings("slides_to_show_mobile")||this.getElementSettings("slides_to_show_tablet")||i.slidesToShow}}]),t.extend({},this.getDefaultSettings(),i)},run:function(){this.$container.slick(this.getReadySettings())}}),g=function(t){e.waypoint(t,function(){var e=t.find(".ha-number-text");e.numerator(e.data("animation"))})},h=function(i){e.waypoint(i,function(){i.find(".ha-skill-level").each(function(){var e=t(this),i=e.find(".ha-skill-level-text"),n=e.data("level");e.animate({width:n+"%"},500),i.numerator({toValue:n+"%",duration:1300,onStep:function(){i.append("%")}})})})},f=s.frontend.handlers.Base.extend({onInit:function(){s.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$container=this.$element.find(".hajs-isotope"),this.run(),this.runFilter()},getLayoutMode:function(){var t=this.getElementSettings("layout");return"even"===t?"masonry":t},getDefaultSettings:function(){return{itemSelector:".ha-image-grid-item",percentPosition:!0,layoutMode:this.getLayoutMode()}},runFilter:function(){var t=this;i(this.$element,function(e){t.$container.isotope({filter:e});var i="*"!==e?e:".ha-js-popup";n(t.$element,i,t.getElementSettings("enable_popup"),"imagegrid")})},onElementChange:function(t){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(t)&&this.run()},run:function(){var t=this;this.$container.isotope(t.getDefaultSettings()),this.$container.imagesLoaded().progress(function(){t.$container.isotope("layout")}),n(this.$element,".ha-js-popup",this.getElementSettings("enable_popup"),"imagegrid")}}),d={"ha-image-compare.default":o,"ha-justified-gallery.default":a,"ha-number.default":g,"ha-skills.default":h};t.each(d,function(t,i){e.hooks.addAction("frontend/element_ready/"+t,i)});var u={"ha-slider.default":l,"ha-carousel.default":l,"ha-image-grid.default":f,widget:r};t.each(u,function(t,i){e.hooks.addAction("frontend/element_ready/"+t,function(t){e.elementsHandler.addHandler(i,{$element:t})})})})}(jQuery,window);
|
base.php
CHANGED
@@ -78,7 +78,12 @@ class Base {
|
|
78 |
);
|
79 |
|
80 |
// Active insights
|
81 |
-
$this->appsero->insights()
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
83 |
|
84 |
public function include_files() {
|
78 |
);
|
79 |
|
80 |
// Active insights
|
81 |
+
$this->appsero->insights()
|
82 |
+
->add_extra([
|
83 |
+
'pro_installed' => ha_has_pro() ? 'Yes' : 'No',
|
84 |
+
'pro_version' => ha_has_pro() ? HAPPY_ADDONS_PRO_VERSION : '',
|
85 |
+
])
|
86 |
+
->init();
|
87 |
}
|
88 |
|
89 |
public function include_files() {
|
classes/widgets-manager.php
CHANGED
@@ -86,100 +86,105 @@ class Widgets_Manager {
|
|
86 |
public static function get_pro_widget_map() {
|
87 |
return [
|
88 |
'google-map' => [
|
89 |
-
'title' => __( 'Google Map', 'happy-addons
|
90 |
'icon' => 'hm hm-map-marker',
|
91 |
'is_pro' => true,
|
92 |
],
|
93 |
'advanced-heading' => [
|
94 |
-
'title' => __( 'Advanced Heading', 'happy-addons
|
95 |
'icon' => 'hm hm-advanced-heading',
|
96 |
'is_pro' => true,
|
97 |
],
|
98 |
'list-group' => [
|
99 |
-
'title' => __( 'List Group', 'happy-addons
|
100 |
'icon' => 'hm hm-list-group',
|
101 |
'is_pro' => true,
|
102 |
],
|
103 |
'hover-box' => [
|
104 |
-
'title' => __( 'Hover Box', 'happy-addons
|
105 |
'icon' => 'hm hm-finger-point',
|
106 |
'is_pro' => true,
|
107 |
],
|
108 |
'countdown' => [
|
109 |
-
'title' => __( 'Countdown', 'happy-addons
|
110 |
'icon' => 'hm hm-refresh-time',
|
111 |
'is_pro' => true,
|
112 |
],
|
113 |
'team-carousel' => [
|
114 |
-
'title' => __( 'Team Carousel', 'happy-addons
|
115 |
'icon' => 'hm hm-team-carousel',
|
116 |
'is_pro' => true,
|
117 |
],
|
118 |
'logo-carousel' => [
|
119 |
-
'title' => __( 'Logo Carousel', 'happy-addons
|
120 |
'icon' => 'hm hm-logo-carousel',
|
121 |
'is_pro' => true,
|
122 |
],
|
123 |
'source-code' => [
|
124 |
-
'title' => __( 'Source Code', 'happy-addons
|
125 |
'icon' => 'hm hm-code-browser',
|
126 |
'is_pro' => true,
|
127 |
],
|
128 |
'feature-list' => [
|
129 |
-
'title' => __( 'Feature List', 'happy-addons
|
130 |
'icon' => 'hm hm-list-2',
|
131 |
'is_pro' => true,
|
132 |
],
|
133 |
'testimonial-carousel' => [
|
134 |
-
'title' => __( 'Testimonial Carousel', 'happy-addons
|
135 |
'icon' => 'hm hm-testimonial-carousel',
|
136 |
'is_pro' => true,
|
137 |
],
|
138 |
'advanced-tabs' => [
|
139 |
-
'title' => __( 'Advanced Tabs', 'happy-addons
|
140 |
'icon' => 'hm hm-tab',
|
141 |
'is_pro' => true,
|
142 |
],
|
143 |
'animated-text' => [
|
144 |
-
'title' => __( 'Animated Text', 'happy-addons
|
145 |
'icon' => 'hm hm-text-animation',
|
146 |
'is_pro' => true,
|
147 |
],
|
148 |
'timeline' => [
|
149 |
-
'title' => __( 'Timeline', 'happy-addons
|
150 |
'icon' => 'hm hm-timeline',
|
151 |
'is_pro' => true,
|
152 |
],
|
153 |
'instagram-feed' => [
|
154 |
-
'title' => __( 'Instagram Feed', 'happy-addons
|
155 |
'icon' => 'hm hm-instagram',
|
156 |
'is_pro' => true,
|
157 |
],
|
158 |
'scrolling-image' => [
|
159 |
-
'title' => __( 'Scrolling Image', 'happy-addons
|
160 |
'icon' => 'hm hm-scrolling-image',
|
161 |
'is_pro' => true,
|
162 |
],
|
163 |
'toggle' => [
|
164 |
-
'title' => __( 'Advanced Toggle', 'happy-addons
|
165 |
'icon' => 'hm hm-accordion-vertical',
|
166 |
'is_pro' => true,
|
167 |
],
|
168 |
'accordion' => [
|
169 |
-
'title' => __( 'Advanced Accordion', 'happy-addons
|
170 |
'icon' => 'hm hm-accordion-vertical',
|
171 |
'is_pro' => true,
|
172 |
],
|
173 |
'advanced-pricing-table' => [
|
174 |
-
'title' => __( 'Advanced Pricing Table', 'happy-addons
|
175 |
'icon' => 'hm hm-file-cabinet',
|
176 |
'is_pro' => true,
|
177 |
],
|
178 |
'advanced-flip-box' => [
|
179 |
-
'title' => __( 'Advanced Flip Box', 'happy-addons
|
180 |
'icon' => 'hm hm-flip-card1',
|
181 |
'is_pro' => true,
|
182 |
],
|
|
|
|
|
|
|
|
|
|
|
183 |
];
|
184 |
}
|
185 |
|
86 |
public static function get_pro_widget_map() {
|
87 |
return [
|
88 |
'google-map' => [
|
89 |
+
'title' => __( 'Google Map', 'happy-elementor-addons' ),
|
90 |
'icon' => 'hm hm-map-marker',
|
91 |
'is_pro' => true,
|
92 |
],
|
93 |
'advanced-heading' => [
|
94 |
+
'title' => __( 'Advanced Heading', 'happy-elementor-addons' ),
|
95 |
'icon' => 'hm hm-advanced-heading',
|
96 |
'is_pro' => true,
|
97 |
],
|
98 |
'list-group' => [
|
99 |
+
'title' => __( 'List Group', 'happy-elementor-addons' ),
|
100 |
'icon' => 'hm hm-list-group',
|
101 |
'is_pro' => true,
|
102 |
],
|
103 |
'hover-box' => [
|
104 |
+
'title' => __( 'Hover Box', 'happy-elementor-addons' ),
|
105 |
'icon' => 'hm hm-finger-point',
|
106 |
'is_pro' => true,
|
107 |
],
|
108 |
'countdown' => [
|
109 |
+
'title' => __( 'Countdown', 'happy-elementor-addons' ),
|
110 |
'icon' => 'hm hm-refresh-time',
|
111 |
'is_pro' => true,
|
112 |
],
|
113 |
'team-carousel' => [
|
114 |
+
'title' => __( 'Team Carousel', 'happy-elementor-addons' ),
|
115 |
'icon' => 'hm hm-team-carousel',
|
116 |
'is_pro' => true,
|
117 |
],
|
118 |
'logo-carousel' => [
|
119 |
+
'title' => __( 'Logo Carousel', 'happy-elementor-addons' ),
|
120 |
'icon' => 'hm hm-logo-carousel',
|
121 |
'is_pro' => true,
|
122 |
],
|
123 |
'source-code' => [
|
124 |
+
'title' => __( 'Source Code', 'happy-elementor-addons' ),
|
125 |
'icon' => 'hm hm-code-browser',
|
126 |
'is_pro' => true,
|
127 |
],
|
128 |
'feature-list' => [
|
129 |
+
'title' => __( 'Feature List', 'happy-elementor-addons' ),
|
130 |
'icon' => 'hm hm-list-2',
|
131 |
'is_pro' => true,
|
132 |
],
|
133 |
'testimonial-carousel' => [
|
134 |
+
'title' => __( 'Testimonial Carousel', 'happy-elementor-addons' ),
|
135 |
'icon' => 'hm hm-testimonial-carousel',
|
136 |
'is_pro' => true,
|
137 |
],
|
138 |
'advanced-tabs' => [
|
139 |
+
'title' => __( 'Advanced Tabs', 'happy-elementor-addons' ),
|
140 |
'icon' => 'hm hm-tab',
|
141 |
'is_pro' => true,
|
142 |
],
|
143 |
'animated-text' => [
|
144 |
+
'title' => __( 'Animated Text', 'happy-elementor-addons' ),
|
145 |
'icon' => 'hm hm-text-animation',
|
146 |
'is_pro' => true,
|
147 |
],
|
148 |
'timeline' => [
|
149 |
+
'title' => __( 'Timeline', 'happy-elementor-addons' ),
|
150 |
'icon' => 'hm hm-timeline',
|
151 |
'is_pro' => true,
|
152 |
],
|
153 |
'instagram-feed' => [
|
154 |
+
'title' => __( 'Instagram Feed', 'happy-elementor-addons' ),
|
155 |
'icon' => 'hm hm-instagram',
|
156 |
'is_pro' => true,
|
157 |
],
|
158 |
'scrolling-image' => [
|
159 |
+
'title' => __( 'Scrolling Image', 'happy-elementor-addons' ),
|
160 |
'icon' => 'hm hm-scrolling-image',
|
161 |
'is_pro' => true,
|
162 |
],
|
163 |
'toggle' => [
|
164 |
+
'title' => __( 'Advanced Toggle', 'happy-elementor-addons' ),
|
165 |
'icon' => 'hm hm-accordion-vertical',
|
166 |
'is_pro' => true,
|
167 |
],
|
168 |
'accordion' => [
|
169 |
+
'title' => __( 'Advanced Accordion', 'happy-elementor-addons' ),
|
170 |
'icon' => 'hm hm-accordion-vertical',
|
171 |
'is_pro' => true,
|
172 |
],
|
173 |
'advanced-pricing-table' => [
|
174 |
+
'title' => __( 'Advanced Pricing Table', 'happy-elementor-addons'),
|
175 |
'icon' => 'hm hm-file-cabinet',
|
176 |
'is_pro' => true,
|
177 |
],
|
178 |
'advanced-flip-box' => [
|
179 |
+
'title' => __( 'Advanced Flip Box', 'happy-elementor-addons' ),
|
180 |
'icon' => 'hm hm-flip-card1',
|
181 |
'is_pro' => true,
|
182 |
],
|
183 |
+
'business-hour' => [
|
184 |
+
'title' => __( 'Business Hour', 'happy-elementor-addons' ),
|
185 |
+
'icon' => 'hm hm-hand-watch',
|
186 |
+
'is_pro' => true,
|
187 |
+
],
|
188 |
];
|
189 |
}
|
190 |
|
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.
|
7 |
* Author: HappyMonster
|
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.
|
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.2.0
|
7 |
* Author: HappyMonster
|
8 |
* Author URI: https://happyaddons.com/
|
9 |
* License: GPLv2
|
34 |
|
35 |
defined( 'ABSPATH' ) || die();
|
36 |
|
37 |
+
define( 'HAPPY_ADDONS_VERSION', '2.2.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__ ) );
|
readme.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
=== Happy Elementor Addons ===
|
2 |
Plugin Name: Happy Elementor Addons
|
3 |
-
Version: 2.
|
4 |
Author: HappyMonster
|
5 |
Author URI: https://happyaddons.com/
|
6 |
Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, obiplabon, sourav926, wedevs
|
@@ -140,6 +140,13 @@ It's really easy and super simple to install **Happy Elementor Addons** plugin b
|
|
140 |
|
141 |
== Changelog ==
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
= 2.1.0 - 3 October 2019 =
|
144 |
|
145 |
- New: Widgets control panel link in Elementor Finder
|
1 |
=== Happy Elementor Addons ===
|
2 |
Plugin Name: Happy Elementor Addons
|
3 |
+
Version: 2.2.0
|
4 |
Author: HappyMonster
|
5 |
Author URI: https://happyaddons.com/
|
6 |
Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, obiplabon, sourav926, wedevs
|
140 |
|
141 |
== Changelog ==
|
142 |
|
143 |
+
= 2.2.0 - 7 October 2019 =
|
144 |
+
|
145 |
+
- Update: Style copy-paste support improved
|
146 |
+
- Fix: Image Grid image alt attribute value issue
|
147 |
+
- Fix: Justified Gallery image alt attribute value issue
|
148 |
+
- Fix: Skills Bar % sign visibility inconsistency issue
|
149 |
+
|
150 |
= 2.1.0 - 3 October 2019 =
|
151 |
|
152 |
- New: Widgets control panel link in Elementor Finder
|
vendor/appsero/src/License.php
CHANGED
@@ -206,6 +206,11 @@ class License {
|
|
206 |
}
|
207 |
}
|
208 |
|
|
|
|
|
|
|
|
|
|
|
209 |
/**
|
210 |
* License menu output
|
211 |
*/
|
@@ -249,7 +254,7 @@ class License {
|
|
249 |
<label>License key</label>
|
250 |
</th>
|
251 |
<td>
|
252 |
-
<input type="text" class="regular-text code" value="<?php echo $license['key']; ?>"
|
253 |
placeholder="Enter your license key" name="license_key"
|
254 |
<?php echo ( 'Deactive' == $action ) ? 'readonly="readonly"' : ''; ?> />
|
255 |
</td>
|
206 |
}
|
207 |
}
|
208 |
|
209 |
+
protected function make_license_key_unreadable( $key ) {
|
210 |
+
$len = strlen( $key );
|
211 |
+
return str_pad( substr( $key, 0, $len / 2 ), $len, '*' );
|
212 |
+
}
|
213 |
+
|
214 |
/**
|
215 |
* License menu output
|
216 |
*/
|
254 |
<label>License key</label>
|
255 |
</th>
|
256 |
<td>
|
257 |
+
<input type="text" class="regular-text code" value="<?php echo $this->make_license_key_unreadable( $license['key'] ); ?>"
|
258 |
placeholder="Enter your license key" name="license_key"
|
259 |
<?php echo ( 'Deactive' == $action ) ? 'readonly="readonly"' : ''; ?> />
|
260 |
</td>
|
widgets/card/widget.php
CHANGED
@@ -103,6 +103,7 @@ class Card extends Base {
|
|
103 |
'toggle' => false,
|
104 |
'default' => 'top',
|
105 |
'prefix_class' => 'ha-card--',
|
|
|
106 |
]
|
107 |
);
|
108 |
|
@@ -135,7 +136,7 @@ class Card extends Base {
|
|
135 |
$this->add_control(
|
136 |
'title',
|
137 |
[
|
138 |
-
'label' => __( 'Title
|
139 |
'label_block' => true,
|
140 |
'type' => Controls_Manager::TEXT,
|
141 |
'default' => __( 'Happy Card Title', 'happy-elementor-addons' ),
|
@@ -151,7 +152,6 @@ class Card extends Base {
|
|
151 |
[
|
152 |
'label' => __( 'Description', 'happy-elementor-addons' ),
|
153 |
'description' => ha_get_allowed_html_desc( 'intermediate' ),
|
154 |
-
'show_label' => false,
|
155 |
'type' => Controls_Manager::TEXTAREA,
|
156 |
'default' => __( 'Happy card description goes here', 'happy-elementor-addons' ),
|
157 |
'placeholder' => __( 'Type card description', 'happy-elementor-addons' ),
|
@@ -304,6 +304,7 @@ class Card extends Base {
|
|
304 |
'default' => 'before',
|
305 |
'toggle' => false,
|
306 |
'condition' => $condition,
|
|
|
307 |
]
|
308 |
);
|
309 |
|
103 |
'toggle' => false,
|
104 |
'default' => 'top',
|
105 |
'prefix_class' => 'ha-card--',
|
106 |
+
'style_transfer' => true,
|
107 |
]
|
108 |
);
|
109 |
|
136 |
$this->add_control(
|
137 |
'title',
|
138 |
[
|
139 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
140 |
'label_block' => true,
|
141 |
'type' => Controls_Manager::TEXT,
|
142 |
'default' => __( 'Happy Card Title', 'happy-elementor-addons' ),
|
152 |
[
|
153 |
'label' => __( 'Description', 'happy-elementor-addons' ),
|
154 |
'description' => ha_get_allowed_html_desc( 'intermediate' ),
|
|
|
155 |
'type' => Controls_Manager::TEXTAREA,
|
156 |
'default' => __( 'Happy card description goes here', 'happy-elementor-addons' ),
|
157 |
'placeholder' => __( 'Type card description', 'happy-elementor-addons' ),
|
304 |
'default' => 'before',
|
305 |
'toggle' => false,
|
306 |
'condition' => $condition,
|
307 |
+
'style_transfer' => true,
|
308 |
]
|
309 |
);
|
310 |
|
widgets/carousel/widget.php
CHANGED
@@ -217,6 +217,7 @@ class Carousel extends Base {
|
|
217 |
'return_value' => 'yes',
|
218 |
'description' => __( 'Best works with odd number of slides (Slides To Show) and loop (Infinite Loop)', 'happy-elementor-addons' ),
|
219 |
'frontend_available' => true,
|
|
|
220 |
]
|
221 |
);
|
222 |
|
@@ -229,6 +230,7 @@ class Carousel extends Base {
|
|
229 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
230 |
'return_value' => 'yes',
|
231 |
'frontend_available' => true,
|
|
|
232 |
]
|
233 |
);
|
234 |
|
@@ -245,6 +247,7 @@ class Carousel extends Base {
|
|
245 |
],
|
246 |
'default' => 'arrow',
|
247 |
'frontend_available' => true,
|
|
|
248 |
]
|
249 |
);
|
250 |
|
@@ -265,6 +268,7 @@ class Carousel extends Base {
|
|
265 |
'tablet_default' => 3,
|
266 |
'mobile_default' => 2,
|
267 |
'frontend_available' => true,
|
|
|
268 |
]
|
269 |
);
|
270 |
|
217 |
'return_value' => 'yes',
|
218 |
'description' => __( 'Best works with odd number of slides (Slides To Show) and loop (Infinite Loop)', 'happy-elementor-addons' ),
|
219 |
'frontend_available' => true,
|
220 |
+
'style_transfer' => true,
|
221 |
]
|
222 |
);
|
223 |
|
230 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
231 |
'return_value' => 'yes',
|
232 |
'frontend_available' => true,
|
233 |
+
'style_transfer' => true,
|
234 |
]
|
235 |
);
|
236 |
|
247 |
],
|
248 |
'default' => 'arrow',
|
249 |
'frontend_available' => true,
|
250 |
+
'style_transfer' => true,
|
251 |
]
|
252 |
);
|
253 |
|
268 |
'tablet_default' => 3,
|
269 |
'mobile_default' => 2,
|
270 |
'frontend_available' => true,
|
271 |
+
'style_transfer' => true,
|
272 |
]
|
273 |
);
|
274 |
|
widgets/dual-button/widget.php
CHANGED
@@ -128,7 +128,8 @@ class Dual_Button extends Base {
|
|
128 |
],
|
129 |
'toggle' => false,
|
130 |
'default' => 'before',
|
131 |
-
'condition' => $condition
|
|
|
132 |
]
|
133 |
);
|
134 |
|
@@ -185,7 +186,8 @@ class Dual_Button extends Base {
|
|
185 |
'default' => 'text',
|
186 |
'condition' => [
|
187 |
'button_connector_hide!' => 'yes',
|
188 |
-
]
|
|
|
189 |
]
|
190 |
);
|
191 |
|
@@ -222,6 +224,10 @@ class Dual_Button extends Base {
|
|
222 |
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
223 |
'type' => Controls_Manager::ICONS,
|
224 |
'fa4compatibility' => 'button_connector_icon',
|
|
|
|
|
|
|
|
|
225 |
'condition' => [
|
226 |
'button_connector_hide!' => 'yes',
|
227 |
'button_connector_type' => 'icon',
|
@@ -306,7 +312,8 @@ class Dual_Button extends Base {
|
|
306 |
],
|
307 |
'toggle' => false,
|
308 |
'default' => 'after',
|
309 |
-
'condition' => $condition
|
|
|
310 |
]
|
311 |
);
|
312 |
|
@@ -347,7 +354,8 @@ class Dual_Button extends Base {
|
|
347 |
'tablet_default' => 'queue',
|
348 |
'mobile_default' => 'queue',
|
349 |
'separator' => 'before',
|
350 |
-
'prefix_class' => 'ha-dual-button-%s-layout-'
|
|
|
351 |
]
|
352 |
);
|
353 |
|
128 |
],
|
129 |
'toggle' => false,
|
130 |
'default' => 'before',
|
131 |
+
'condition' => $condition,
|
132 |
+
'style_transfer' => true,
|
133 |
]
|
134 |
);
|
135 |
|
186 |
'default' => 'text',
|
187 |
'condition' => [
|
188 |
'button_connector_hide!' => 'yes',
|
189 |
+
],
|
190 |
+
'style_transfer' => true,
|
191 |
]
|
192 |
);
|
193 |
|
224 |
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
225 |
'type' => Controls_Manager::ICONS,
|
226 |
'fa4compatibility' => 'button_connector_icon',
|
227 |
+
'default' => [
|
228 |
+
'library' => 'happy-icons',
|
229 |
+
'value' => 'hm hm-happyaddons',
|
230 |
+
],
|
231 |
'condition' => [
|
232 |
'button_connector_hide!' => 'yes',
|
233 |
'button_connector_type' => 'icon',
|
312 |
],
|
313 |
'toggle' => false,
|
314 |
'default' => 'after',
|
315 |
+
'condition' => $condition,
|
316 |
+
'style_transfer' => true,
|
317 |
]
|
318 |
);
|
319 |
|
354 |
'tablet_default' => 'queue',
|
355 |
'mobile_default' => 'queue',
|
356 |
'separator' => 'before',
|
357 |
+
'prefix_class' => 'ha-dual-button-%s-layout-',
|
358 |
+
'style_transfer' => true,
|
359 |
]
|
360 |
);
|
361 |
|
widgets/flip-box/widget.php
CHANGED
@@ -79,6 +79,7 @@ class Flip_Box extends Base {
|
|
79 |
],
|
80 |
],
|
81 |
'toggle' => false,
|
|
|
82 |
]
|
83 |
);
|
84 |
|
@@ -235,6 +236,7 @@ class Flip_Box extends Base {
|
|
235 |
],
|
236 |
],
|
237 |
'toggle' => false,
|
|
|
238 |
]
|
239 |
);
|
240 |
|
79 |
],
|
80 |
],
|
81 |
'toggle' => false,
|
82 |
+
'style_transfer' => true,
|
83 |
]
|
84 |
);
|
85 |
|
236 |
],
|
237 |
],
|
238 |
'toggle' => false,
|
239 |
+
'style_transfer' => true,
|
240 |
]
|
241 |
);
|
242 |
|
widgets/image-grid/widget.php
CHANGED
@@ -125,7 +125,8 @@ class Image_Grid extends Base {
|
|
125 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
126 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
127 |
'return_value' => 'yes',
|
128 |
-
'description' => __( 'Enable to display filter menu.', 'happy-elementor-addons' )
|
|
|
129 |
]
|
130 |
);
|
131 |
|
@@ -141,7 +142,8 @@ class Image_Grid extends Base {
|
|
141 |
'description' => __( 'Enable to display "All" filter in filter menu.', 'happy-elementor-addons' ),
|
142 |
'condition' => [
|
143 |
'show_filter' => 'yes'
|
144 |
-
]
|
|
|
145 |
]
|
146 |
);
|
147 |
|
@@ -178,7 +180,8 @@ class Image_Grid extends Base {
|
|
178 |
'prefix_class' => 'ha-image-grid--col-',
|
179 |
'selectors' => [
|
180 |
'{{WRAPPER}} .ha-image-grid-item' => 'width: calc(100% / {{VALUE}});',
|
181 |
-
]
|
|
|
182 |
]
|
183 |
);
|
184 |
|
@@ -196,6 +199,7 @@ class Image_Grid extends Base {
|
|
196 |
'render' => 'none',
|
197 |
'frontend_available' => true,
|
198 |
'prefix_class' => 'ha-image-grid--layout-',
|
|
|
199 |
]
|
200 |
);
|
201 |
|
@@ -734,15 +738,7 @@ class Image_Grid extends Base {
|
|
734 |
|
735 |
<<?php echo $item_html_tag; ?> <?php echo $popup; ?> class="ha-image-grid-item ha-js-popup <?php echo esc_attr( implode( ' ', $filters ) ); ?>">
|
736 |
<div class="ha-image-grid-inner">
|
737 |
-
<?php echo wp_get_attachment_image(
|
738 |
-
$id,
|
739 |
-
$settings['thumbnail_size'],
|
740 |
-
false,
|
741 |
-
[
|
742 |
-
'alt' => wp_get_attachment_caption( $id ),
|
743 |
-
'class' => 'elementor-animation-' . esc_attr( $settings['image_hover_animation'] )
|
744 |
-
]
|
745 |
-
); ?>
|
746 |
</div>
|
747 |
</<?php echo $item_html_tag; ?>>
|
748 |
|
125 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
126 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
127 |
'return_value' => 'yes',
|
128 |
+
'description' => __( 'Enable to display filter menu.', 'happy-elementor-addons' ),
|
129 |
+
'style_transfer' => true,
|
130 |
]
|
131 |
);
|
132 |
|
142 |
'description' => __( 'Enable to display "All" filter in filter menu.', 'happy-elementor-addons' ),
|
143 |
'condition' => [
|
144 |
'show_filter' => 'yes'
|
145 |
+
],
|
146 |
+
'style_transfer' => true,
|
147 |
]
|
148 |
);
|
149 |
|
180 |
'prefix_class' => 'ha-image-grid--col-',
|
181 |
'selectors' => [
|
182 |
'{{WRAPPER}} .ha-image-grid-item' => 'width: calc(100% / {{VALUE}});',
|
183 |
+
],
|
184 |
+
'style_transfer' => true,
|
185 |
]
|
186 |
);
|
187 |
|
199 |
'render' => 'none',
|
200 |
'frontend_available' => true,
|
201 |
'prefix_class' => 'ha-image-grid--layout-',
|
202 |
+
'style_transfer' => true,
|
203 |
]
|
204 |
);
|
205 |
|
738 |
|
739 |
<<?php echo $item_html_tag; ?> <?php echo $popup; ?> class="ha-image-grid-item ha-js-popup <?php echo esc_attr( implode( ' ', $filters ) ); ?>">
|
740 |
<div class="ha-image-grid-inner">
|
741 |
+
<?php echo wp_get_attachment_image( $id, $settings['thumbnail_size'], false, [ 'class' => 'elementor-animation-' . esc_attr( $settings['image_hover_animation'] ) ] ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
742 |
</div>
|
743 |
</<?php echo $item_html_tag; ?>>
|
744 |
|
widgets/infobox/widget.php
CHANGED
@@ -77,6 +77,7 @@ class InfoBox extends Base {
|
|
77 |
],
|
78 |
'default' => 'icon',
|
79 |
'toggle' => false,
|
|
|
80 |
]
|
81 |
);
|
82 |
|
@@ -162,7 +163,7 @@ class InfoBox extends Base {
|
|
162 |
$this->add_control(
|
163 |
'title',
|
164 |
[
|
165 |
-
'label' => __( 'Title
|
166 |
'label_block' => true,
|
167 |
'type' => Controls_Manager::TEXT,
|
168 |
'default' => __( 'Happy Info Box Title', 'happy-elementor-addons' ),
|
@@ -177,7 +178,6 @@ class InfoBox extends Base {
|
|
177 |
'description',
|
178 |
[
|
179 |
'label' => __( 'Description', 'happy-elementor-addons' ),
|
180 |
-
'show_label' => false,
|
181 |
'description' => ha_get_allowed_html_desc( 'intermediate' ),
|
182 |
'type' => Controls_Manager::TEXTAREA,
|
183 |
'default' => __( 'Happy info box description goes here', 'happy-elementor-addons' ),
|
@@ -331,6 +331,7 @@ class InfoBox extends Base {
|
|
331 |
'default' => 'after',
|
332 |
'toggle' => false,
|
333 |
'condition' => $condition,
|
|
|
334 |
]
|
335 |
);
|
336 |
|
77 |
],
|
78 |
'default' => 'icon',
|
79 |
'toggle' => false,
|
80 |
+
'style_transfer' => true,
|
81 |
]
|
82 |
);
|
83 |
|
163 |
$this->add_control(
|
164 |
'title',
|
165 |
[
|
166 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
167 |
'label_block' => true,
|
168 |
'type' => Controls_Manager::TEXT,
|
169 |
'default' => __( 'Happy Info Box Title', 'happy-elementor-addons' ),
|
178 |
'description',
|
179 |
[
|
180 |
'label' => __( 'Description', 'happy-elementor-addons' ),
|
|
|
181 |
'description' => ha_get_allowed_html_desc( 'intermediate' ),
|
182 |
'type' => Controls_Manager::TEXTAREA,
|
183 |
'default' => __( 'Happy info box description goes here', 'happy-elementor-addons' ),
|
331 |
'default' => 'after',
|
332 |
'toggle' => false,
|
333 |
'condition' => $condition,
|
334 |
+
'style_transfer' => true,
|
335 |
]
|
336 |
);
|
337 |
|
widgets/justified-gallery/widget.php
CHANGED
@@ -14,7 +14,6 @@ use Elementor\Group_Control_Box_Shadow;
|
|
14 |
use Elementor\Group_Control_Image_Size;
|
15 |
use Elementor\Group_Control_Typography;
|
16 |
use Elementor\Scheme_Typography;
|
17 |
-
use Elementor\Utils;
|
18 |
|
19 |
defined( 'ABSPATH' ) || die();
|
20 |
|
@@ -126,7 +125,8 @@ class Justified_Gallery extends Base {
|
|
126 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
127 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
128 |
'return_value' => 'yes',
|
129 |
-
'description' => __( 'Enable to display filter menu.', 'happy-elementor-addons' )
|
|
|
130 |
]
|
131 |
);
|
132 |
|
@@ -142,7 +142,8 @@ class Justified_Gallery extends Base {
|
|
142 |
'description' => __( 'Enable to display "All" filter in filter menu.', 'happy-elementor-addons' ),
|
143 |
'condition' => [
|
144 |
'show_filter' => 'yes'
|
145 |
-
]
|
|
|
146 |
]
|
147 |
);
|
148 |
|
@@ -170,7 +171,8 @@ class Justified_Gallery extends Base {
|
|
170 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
171 |
'return_value' => 'yes',
|
172 |
'separator' => 'before',
|
173 |
-
'description' => __( 'Make sure to add image caption.', 'happy-elementor-addons' )
|
|
|
174 |
]
|
175 |
);
|
176 |
|
@@ -811,12 +813,11 @@ class Justified_Gallery extends Base {
|
|
811 |
|
812 |
<div <?php echo $this->get_render_attribute_string( 'container' ); ?>>
|
813 |
<?php foreach ( $gallery['items'] as $id => $filters ) :
|
814 |
-
$
|
815 |
-
$caption = $settings['show_caption'] ? $alt : '';
|
816 |
$popup = $has_popup ? sprintf( 'href="%s"', esc_url( wp_get_attachment_image_url( $id, $settings['popup_image_size'] ) ) ) : '';
|
817 |
?>
|
818 |
<<?php echo $item_html_tag; ?> <?php echo $popup; ?> class="ha-justified-gallery-item ha-js-popup <?php echo esc_attr( implode( ' ', $filters ) ); ?>" title="<?php echo $caption; ?>">
|
819 |
-
<?php echo wp_get_attachment_image( $id, $settings['thumbnail_size'], false, [
|
820 |
</<?php echo $item_html_tag; ?>>
|
821 |
<?php endforeach; ?>
|
822 |
</div>
|
14 |
use Elementor\Group_Control_Image_Size;
|
15 |
use Elementor\Group_Control_Typography;
|
16 |
use Elementor\Scheme_Typography;
|
|
|
17 |
|
18 |
defined( 'ABSPATH' ) || die();
|
19 |
|
125 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
126 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
127 |
'return_value' => 'yes',
|
128 |
+
'description' => __( 'Enable to display filter menu.', 'happy-elementor-addons' ),
|
129 |
+
'style_transfer' => true,
|
130 |
]
|
131 |
);
|
132 |
|
142 |
'description' => __( 'Enable to display "All" filter in filter menu.', 'happy-elementor-addons' ),
|
143 |
'condition' => [
|
144 |
'show_filter' => 'yes'
|
145 |
+
],
|
146 |
+
'style_transfer' => true,
|
147 |
]
|
148 |
);
|
149 |
|
171 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
172 |
'return_value' => 'yes',
|
173 |
'separator' => 'before',
|
174 |
+
'description' => __( 'Make sure to add image caption.', 'happy-elementor-addons' ),
|
175 |
+
'style_transfer' => true,
|
176 |
]
|
177 |
);
|
178 |
|
813 |
|
814 |
<div <?php echo $this->get_render_attribute_string( 'container' ); ?>>
|
815 |
<?php foreach ( $gallery['items'] as $id => $filters ) :
|
816 |
+
$caption = $settings['show_caption'] ? esc_attr( wp_get_attachment_caption( $id ) ) : '';
|
|
|
817 |
$popup = $has_popup ? sprintf( 'href="%s"', esc_url( wp_get_attachment_image_url( $id, $settings['popup_image_size'] ) ) ) : '';
|
818 |
?>
|
819 |
<<?php echo $item_html_tag; ?> <?php echo $popup; ?> class="ha-justified-gallery-item ha-js-popup <?php echo esc_attr( implode( ' ', $filters ) ); ?>" title="<?php echo $caption; ?>">
|
820 |
+
<?php echo wp_get_attachment_image( $id, $settings['thumbnail_size'], false, ['class' => 'elementor-animation-' . esc_attr( $settings['image_hover_animation'] ) ] ); ?>
|
821 |
</<?php echo $item_html_tag; ?>>
|
822 |
<?php endforeach; ?>
|
823 |
</div>
|
widgets/logo-grid/widget.php
CHANGED
@@ -139,7 +139,8 @@ class Logo_Grid extends Base {
|
|
139 |
'tictactoe' => __( 'Tic Tac Toe', 'happy-elementor-addons' ),
|
140 |
],
|
141 |
'default' => 'box',
|
142 |
-
'prefix_class' => 'ha-logo-grid--'
|
|
|
143 |
]
|
144 |
);
|
145 |
|
@@ -159,6 +160,7 @@ class Logo_Grid extends Base {
|
|
159 |
'tablet_default' => 2,
|
160 |
'mobile_default' => 2,
|
161 |
'prefix_class' => 'ha-logo-grid--col-%s',
|
|
|
162 |
]
|
163 |
);
|
164 |
|
139 |
'tictactoe' => __( 'Tic Tac Toe', 'happy-elementor-addons' ),
|
140 |
],
|
141 |
'default' => 'box',
|
142 |
+
'prefix_class' => 'ha-logo-grid--',
|
143 |
+
'style_transfer' => true,
|
144 |
]
|
145 |
);
|
146 |
|
160 |
'tablet_default' => 2,
|
161 |
'mobile_default' => 2,
|
162 |
'prefix_class' => 'ha-logo-grid--col-%s',
|
163 |
+
'style_transfer' => true,
|
164 |
]
|
165 |
);
|
166 |
|
widgets/member/widget.php
CHANGED
@@ -299,6 +299,7 @@ class Member extends Base {
|
|
299 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
300 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
301 |
'return_value' => 'yes',
|
|
|
302 |
]
|
303 |
);
|
304 |
|
@@ -323,7 +324,8 @@ class Member extends Base {
|
|
323 |
'selectors' => [
|
324 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}' => 'color: {{VALUE}}',
|
325 |
],
|
326 |
-
'condition' => ['customize' => 'yes']
|
|
|
327 |
]
|
328 |
);
|
329 |
|
@@ -335,7 +337,8 @@ class Member extends Base {
|
|
335 |
'selectors' => [
|
336 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}' => 'background-color: {{VALUE}}',
|
337 |
],
|
338 |
-
'condition' => ['customize' => 'yes']
|
|
|
339 |
]
|
340 |
);
|
341 |
|
@@ -355,7 +358,8 @@ class Member extends Base {
|
|
355 |
'selectors' => [
|
356 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:hover, {{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:focus' => 'color: {{VALUE}}',
|
357 |
],
|
358 |
-
'condition' => ['customize' => 'yes']
|
|
|
359 |
]
|
360 |
);
|
361 |
|
@@ -367,7 +371,8 @@ class Member extends Base {
|
|
367 |
'selectors' => [
|
368 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:hover, {{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:focus' => 'background-color: {{VALUE}}',
|
369 |
],
|
370 |
-
'condition' => ['customize' => 'yes']
|
|
|
371 |
]
|
372 |
);
|
373 |
|
@@ -379,7 +384,8 @@ class Member extends Base {
|
|
379 |
'selectors' => [
|
380 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:hover, {{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:focus' => 'border-color: {{VALUE}}',
|
381 |
],
|
382 |
-
'condition' => ['customize' => 'yes']
|
|
|
383 |
]
|
384 |
);
|
385 |
|
@@ -406,7 +412,7 @@ class Member extends Base {
|
|
406 |
'link' => ['url' => 'https://linkedin.com/'],
|
407 |
'name' => 'linkedin'
|
408 |
]
|
409 |
-
]
|
410 |
]
|
411 |
);
|
412 |
|
299 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
300 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
301 |
'return_value' => 'yes',
|
302 |
+
'style_transfer' => true,
|
303 |
]
|
304 |
);
|
305 |
|
324 |
'selectors' => [
|
325 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}' => 'color: {{VALUE}}',
|
326 |
],
|
327 |
+
'condition' => ['customize' => 'yes'],
|
328 |
+
'style_transfer' => true,
|
329 |
]
|
330 |
);
|
331 |
|
337 |
'selectors' => [
|
338 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}' => 'background-color: {{VALUE}}',
|
339 |
],
|
340 |
+
'condition' => ['customize' => 'yes'],
|
341 |
+
'style_transfer' => true,
|
342 |
]
|
343 |
);
|
344 |
|
358 |
'selectors' => [
|
359 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:hover, {{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:focus' => 'color: {{VALUE}}',
|
360 |
],
|
361 |
+
'condition' => ['customize' => 'yes'],
|
362 |
+
'style_transfer' => true,
|
363 |
]
|
364 |
);
|
365 |
|
371 |
'selectors' => [
|
372 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:hover, {{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:focus' => 'background-color: {{VALUE}}',
|
373 |
],
|
374 |
+
'condition' => ['customize' => 'yes'],
|
375 |
+
'style_transfer' => true,
|
376 |
]
|
377 |
);
|
378 |
|
384 |
'selectors' => [
|
385 |
'{{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:hover, {{WRAPPER}} .ha-member-links > {{CURRENT_ITEM}}:focus' => 'border-color: {{VALUE}}',
|
386 |
],
|
387 |
+
'condition' => ['customize' => 'yes'],
|
388 |
+
'style_transfer' => true,
|
389 |
]
|
390 |
);
|
391 |
|
412 |
'link' => ['url' => 'https://linkedin.com/'],
|
413 |
'name' => 'linkedin'
|
414 |
]
|
415 |
+
],
|
416 |
]
|
417 |
);
|
418 |
|
widgets/pricing-table/widget.php
CHANGED
@@ -43,7 +43,7 @@ class Pricing_Table extends Base {
|
|
43 |
}
|
44 |
|
45 |
public function get_keywords() {
|
46 |
-
return [ 'pricing', 'table', 'package', 'product', 'plan' ];
|
47 |
}
|
48 |
|
49 |
protected function register_content_controls() {
|
@@ -60,7 +60,7 @@ class Pricing_Table extends Base {
|
|
60 |
[
|
61 |
'label' => __( 'Title', 'happy-elementor-addons' ),
|
62 |
'type' => Controls_Manager::TEXT,
|
63 |
-
'label_block' =>
|
64 |
'default' => __( 'Basic', 'happy-elementor-addons' ),
|
65 |
'dynamic' => [
|
66 |
'active' => true
|
@@ -164,6 +164,7 @@ class Pricing_Table extends Base {
|
|
164 |
'type' => Controls_Manager::TEXT,
|
165 |
'default' => __( 'Features', 'happy-elementor-addons' ),
|
166 |
'separator' => 'after',
|
|
|
167 |
'dynamic' => [
|
168 |
'active' => true
|
169 |
]
|
@@ -268,7 +269,7 @@ class Pricing_Table extends Base {
|
|
268 |
'type' => Controls_Manager::TEXT,
|
269 |
'default' => __( 'Subscribe', 'happy-elementor-addons' ),
|
270 |
'placeholder' => __( 'Type button text here', 'happy-elementor-addons' ),
|
271 |
-
'label_block' =>
|
272 |
'dynamic' => [
|
273 |
'active' => true
|
274 |
]
|
43 |
}
|
44 |
|
45 |
public function get_keywords() {
|
46 |
+
return [ 'pricing', 'price', 'table', 'package', 'product', 'plan' ];
|
47 |
}
|
48 |
|
49 |
protected function register_content_controls() {
|
60 |
[
|
61 |
'label' => __( 'Title', 'happy-elementor-addons' ),
|
62 |
'type' => Controls_Manager::TEXT,
|
63 |
+
'label_block' => true,
|
64 |
'default' => __( 'Basic', 'happy-elementor-addons' ),
|
65 |
'dynamic' => [
|
66 |
'active' => true
|
164 |
'type' => Controls_Manager::TEXT,
|
165 |
'default' => __( 'Features', 'happy-elementor-addons' ),
|
166 |
'separator' => 'after',
|
167 |
+
'label_block' => true,
|
168 |
'dynamic' => [
|
169 |
'active' => true
|
170 |
]
|
269 |
'type' => Controls_Manager::TEXT,
|
270 |
'default' => __( 'Subscribe', 'happy-elementor-addons' ),
|
271 |
'placeholder' => __( 'Type button text here', 'happy-elementor-addons' ),
|
272 |
+
'label_block' => true,
|
273 |
'dynamic' => [
|
274 |
'active' => true
|
275 |
]
|
widgets/review/widget.php
CHANGED
@@ -188,7 +188,8 @@ class Review extends Base {
|
|
188 |
],
|
189 |
'default' => 'top',
|
190 |
'toggle' => false,
|
191 |
-
'prefix_class' => 'ha-review--'
|
|
|
192 |
]
|
193 |
);
|
194 |
|
@@ -196,6 +197,7 @@ class Review extends Base {
|
|
196 |
'title',
|
197 |
[
|
198 |
'label' => __( 'Name', 'happy-elementor-addons' ),
|
|
|
199 |
'type' => Controls_Manager::TEXT,
|
200 |
'default' => 'Happy Reviewer',
|
201 |
'placeholder' => __( 'Type Reviewer Name', 'happy-elementor-addons' ),
|
@@ -210,6 +212,7 @@ class Review extends Base {
|
|
210 |
'job_title',
|
211 |
[
|
212 |
'label' => __( 'Job Title', 'happy-elementor-addons' ),
|
|
|
213 |
'type' => Controls_Manager::TEXT,
|
214 |
'default' => __( 'Happy Officer', 'happy-elementor-addons' ),
|
215 |
'placeholder' => __( 'Type Reviewer Job Title', 'happy-elementor-addons' ),
|
188 |
],
|
189 |
'default' => 'top',
|
190 |
'toggle' => false,
|
191 |
+
'prefix_class' => 'ha-review--',
|
192 |
+
'style_transfer' => true,
|
193 |
]
|
194 |
);
|
195 |
|
197 |
'title',
|
198 |
[
|
199 |
'label' => __( 'Name', 'happy-elementor-addons' ),
|
200 |
+
'label_block' => true,
|
201 |
'type' => Controls_Manager::TEXT,
|
202 |
'default' => 'Happy Reviewer',
|
203 |
'placeholder' => __( 'Type Reviewer Name', 'happy-elementor-addons' ),
|
212 |
'job_title',
|
213 |
[
|
214 |
'label' => __( 'Job Title', 'happy-elementor-addons' ),
|
215 |
+
'label_block' => true,
|
216 |
'type' => Controls_Manager::TEXT,
|
217 |
'default' => __( 'Happy Officer', 'happy-elementor-addons' ),
|
218 |
'placeholder' => __( 'Type Reviewer Job Title', 'happy-elementor-addons' ),
|
widgets/skills/widget.php
CHANGED
@@ -93,7 +93,8 @@ class Skills extends Base {
|
|
93 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
94 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
95 |
'return_value' => 'yes',
|
96 |
-
'description' => __( 'You can customize this skill bar color from here or customize from Style tab', 'happy-elementor-addons' )
|
|
|
97 |
]
|
98 |
);
|
99 |
|
@@ -105,7 +106,8 @@ class Skills extends Base {
|
|
105 |
'selectors' => [
|
106 |
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-skill-info' => 'color: {{VALUE}};',
|
107 |
],
|
108 |
-
'condition' => ['customize' => 'yes']
|
|
|
109 |
]
|
110 |
);
|
111 |
|
@@ -117,7 +119,8 @@ class Skills extends Base {
|
|
117 |
'selectors' => [
|
118 |
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-skill-level' => 'background-color: {{VALUE}};',
|
119 |
],
|
120 |
-
'condition' => ['customize' => 'yes']
|
|
|
121 |
]
|
122 |
);
|
123 |
|
@@ -129,7 +132,8 @@ class Skills extends Base {
|
|
129 |
'selectors' => [
|
130 |
'{{WRAPPER}} {{CURRENT_ITEM}}.ha-skill' => 'background-color: {{VALUE}};',
|
131 |
],
|
132 |
-
'condition' => ['customize' => 'yes']
|
|
|
133 |
]
|
134 |
);
|
135 |
|
93 |
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
94 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
95 |
'return_value' => 'yes',
|
96 |
+
'description' => __( 'You can customize this skill bar color from here or customize from Style tab', 'happy-elementor-addons' ),
|
97 |
+
'style_transfer' => true,
|
98 |
]
|
99 |
);
|
100 |
|
106 |
'selectors' => [
|
107 |
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-skill-info' => 'color: {{VALUE}};',
|
108 |
],
|
109 |
+
'condition' => ['customize' => 'yes'],
|
110 |
+
'style_transfer' => true,
|
111 |
]
|
112 |
);
|
113 |
|
119 |
'selectors' => [
|
120 |
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-skill-level' => 'background-color: {{VALUE}};',
|
121 |
],
|
122 |
+
'condition' => ['customize' => 'yes'],
|
123 |
+
'style_transfer' => true,
|
124 |
]
|
125 |
);
|
126 |
|
132 |
'selectors' => [
|
133 |
'{{WRAPPER}} {{CURRENT_ITEM}}.ha-skill' => 'background-color: {{VALUE}};',
|
134 |
],
|
135 |
+
'condition' => ['customize' => 'yes'],
|
136 |
+
'style_transfer' => true,
|
137 |
]
|
138 |
);
|
139 |
|
widgets/slider/widget.php
CHANGED
@@ -205,7 +205,6 @@ class Slider extends Base {
|
|
205 |
]
|
206 |
);
|
207 |
|
208 |
-
|
209 |
$this->add_control(
|
210 |
'vertical',
|
211 |
[
|
@@ -215,6 +214,7 @@ class Slider extends Base {
|
|
215 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
216 |
'return_value' => 'yes',
|
217 |
'frontend_available' => true,
|
|
|
218 |
]
|
219 |
);
|
220 |
|
@@ -231,6 +231,7 @@ class Slider extends Base {
|
|
231 |
],
|
232 |
'default' => 'arrow',
|
233 |
'frontend_available' => true,
|
|
|
234 |
]
|
235 |
);
|
236 |
|
205 |
]
|
206 |
);
|
207 |
|
|
|
208 |
$this->add_control(
|
209 |
'vertical',
|
210 |
[
|
214 |
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
215 |
'return_value' => 'yes',
|
216 |
'frontend_available' => true,
|
217 |
+
'style_transfer' => true,
|
218 |
]
|
219 |
);
|
220 |
|
231 |
],
|
232 |
'default' => 'arrow',
|
233 |
'frontend_available' => true,
|
234 |
+
'style_transfer' => true,
|
235 |
]
|
236 |
);
|
237 |
|