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

Version Description

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 3.0.1
Comparing to
See all releases

Code changes from version 3.0.0 to 3.0.1

changelog.txt CHANGED
@@ -1,3 +1,9 @@
 
 
 
 
 
 
1
  = 3.0.0 - 3 August 2021 =
2
 
3
  - New: Image Stack Group Widget
1
+ = 3.0.1 - 8 August 2021 =
2
+
3
+ - Improve: Review Banner Logic
4
+ - Fix: Image Stack group default image missing issue
5
+ - Fix: Conflicts with Elementor "Border Type" style control
6
+
7
  = 3.0.0 - 3 August 2021 =
8
 
9
  - New: Image Stack Group Widget
classes/review.php CHANGED
@@ -21,20 +21,26 @@ class Review_Us {
21
  public static function ha_void_check_installation_time() {
22
 
23
  // Added Lines Start
24
- $nobug = "";
25
- $nobug = get_option( 'ha__spare_me' );
26
 
27
- if ( ! $nobug ) {
28
- $install_date = get_option( 'ha__plugin_activation_time' );
29
- $past_date = strtotime( '-10 days' );
30
 
31
- $remind_time = get_option( 'ha__remind_me' );
32
- $remind_due = strtotime( '+15 days', $remind_time );
33
- $now = strtotime( "now" );
34
 
35
- if ( ( $past_date >= $install_date ) || ( $now >= $remind_due ) ) {
36
- add_action( 'admin_notices', [__CLASS__, 'ha_void_grid_display_admin_notice']);
37
- }
 
 
 
 
 
 
 
 
38
  }
39
  }
40
 
@@ -50,6 +56,7 @@ class Review_Us {
50
  if ( ! in_array( $pagenow, $exclude ) ) {
51
  $dont_disturb = esc_url( add_query_arg( 'spare_me', '1', self::ha_current_admin_url() ) );
52
  $remind_me = esc_url( add_query_arg( 'remind_me', '1', self::ha_current_admin_url() ) );
 
53
  $reviewurl = esc_url( 'https://wordpress.org/support/plugin/happy-elementor-addons/reviews/?filter=5' );
54
 
55
  printf( __( '<div class="notice ha-review-notice ha-review-notice--extended">
@@ -60,12 +67,13 @@ class Review_Us {
60
  <h3>Enjoying Happy Addons?</h3>
61
  <p>Thank you for choosing Happy Addons. If you have found our plugin useful and makes you smile, please consider giving us a 5-star rating on WordPress.org. It would mean the world to us.</p>
62
  <div class="ha-review-notice__actions">
63
- <a href="%s" class="ha-review-button ha-review-button--cta"><span>Yes, You Deserve It!</span></a>
64
- <a href="%s" class="ha-review-button ha-review-button--cta ha-review-button--outline"><span>Remind Me Later</span></a>
65
- <a href="%s" class="ha-review-button ha-review-button--cta ha-review-button--error ha-review-button--outline"><span>No Thanks</span></a>
 
66
  </div>
67
  </div>
68
- </div>' ), $reviewurl, $remind_me, $dont_disturb );
69
  }
70
  }
71
 
@@ -74,7 +82,7 @@ class Review_Us {
74
  if ( isset( $_GET['spare_me'] ) && ! empty( $_GET['spare_me'] ) ) {
75
  $spare_me = $_GET['spare_me'];
76
  if ( 1 == $spare_me ) {
77
- add_option( 'ha__spare_me', TRUE );
78
  }
79
  }
80
 
@@ -82,7 +90,16 @@ class Review_Us {
82
  $remind_me = $_GET['remind_me'];
83
  if ( 1 == $remind_me ) {
84
  $get_activation_time = strtotime( "now" );
85
- add_option( 'ha__remind_me', $get_activation_time );
 
 
 
 
 
 
 
 
 
86
  }
87
  }
88
  }
21
  public static function ha_void_check_installation_time() {
22
 
23
  // Added Lines Start
24
+ //$nobug = "";
25
+ $nobug = get_option( 'ha__spare_me', "0");
26
 
27
+ // var_dump($nobug);
 
 
28
 
29
+ if ($nobug == "1" || $nobug == "3") {
30
+ return;
31
+ }
32
 
33
+ $install_date = get_option( 'ha__plugin_activation_time' );
34
+ $past_date = strtotime( '-10 days' );
35
+
36
+ $remind_time = get_option( 'ha__remind_me' );
37
+ $remind_due = strtotime( '+15 days', $remind_time );
38
+ $now = strtotime( "now" );
39
+
40
+ if ($now >= $remind_due) {
41
+ add_action( 'admin_notices', [__CLASS__, 'ha_void_grid_display_admin_notice']);
42
+ }else if (($past_date >= $install_date) && $nobug !== "2") {
43
+ add_action( 'admin_notices', [__CLASS__, 'ha_void_grid_display_admin_notice']);
44
  }
45
  }
46
 
56
  if ( ! in_array( $pagenow, $exclude ) ) {
57
  $dont_disturb = esc_url( add_query_arg( 'spare_me', '1', self::ha_current_admin_url() ) );
58
  $remind_me = esc_url( add_query_arg( 'remind_me', '1', self::ha_current_admin_url() ) );
59
+ $rated = esc_url( add_query_arg( 'ha_rated', '1', self::ha_current_admin_url() ) );
60
  $reviewurl = esc_url( 'https://wordpress.org/support/plugin/happy-elementor-addons/reviews/?filter=5' );
61
 
62
  printf( __( '<div class="notice ha-review-notice ha-review-notice--extended">
67
  <h3>Enjoying Happy Addons?</h3>
68
  <p>Thank you for choosing Happy Addons. If you have found our plugin useful and makes you smile, please consider giving us a 5-star rating on WordPress.org. It would mean the world to us.</p>
69
  <div class="ha-review-notice__actions">
70
+ <a href="%s" class="ha-review-button ha-review-button--cta" target="_blank"><span>👍 Yes, You Deserve It!</span></a>
71
+ <a href="%s" class="ha-review-button ha-review-button--cta ha-review-button--outline"><span>🙌 Already Rated!</span></a>
72
+ <a href="%s" class="ha-review-button ha-review-button--cta ha-review-button--outline"><span>🔔 Remind Me Later</span></a>
73
+ <a href="%s" class="ha-review-button ha-review-button--cta ha-review-button--error ha-review-button--outline"><span>💔 No Thanks</span></a>
74
  </div>
75
  </div>
76
+ </div>' ), $reviewurl, $rated, $remind_me, $dont_disturb );
77
  }
78
  }
79
 
82
  if ( isset( $_GET['spare_me'] ) && ! empty( $_GET['spare_me'] ) ) {
83
  $spare_me = $_GET['spare_me'];
84
  if ( 1 == $spare_me ) {
85
+ update_option( 'ha__spare_me', "1" );
86
  }
87
  }
88
 
90
  $remind_me = $_GET['remind_me'];
91
  if ( 1 == $remind_me ) {
92
  $get_activation_time = strtotime( "now" );
93
+ update_option( 'ha__remind_me', $get_activation_time );
94
+ update_option( 'ha__spare_me', "2" );
95
+ }
96
+ }
97
+
98
+ if ( isset( $_GET['ha_rated'] ) && ! empty( $_GET['ha_rated'] ) ) {
99
+ $ha_rated = $_GET['ha_rated'];
100
+ if ( 1 == $ha_rated ) {
101
+ update_option( 'ha__rated', 'yes' );
102
+ update_option( 'ha__spare_me', "3" );
103
  }
104
  }
105
  }
extensions/advanced-tooltip.php CHANGED
@@ -356,7 +356,7 @@ class Advanced_Tooltip {
356
  $element->add_group_control(
357
  Group_Control_Background::get_type(),
358
  [
359
- 'name' => 'title_section_bg_color',
360
  'label' => __('Background', 'happy-elementor-addons'),
361
  'types' => ['classic', 'gradient'],
362
  'selector' => '{{WRAPPER}} .ha-advanced-tooltip-content',
@@ -402,7 +402,7 @@ class Advanced_Tooltip {
402
  $element->add_group_control(
403
  Group_Control_Border::get_type(),
404
  [
405
- 'name' => 'border',
406
  'label' => __('Border', 'happy-elementor-addons'),
407
  'selector' => '{{WRAPPER}} .ha-advanced-tooltip-content',
408
  'condition' => [
356
  $element->add_group_control(
357
  Group_Control_Background::get_type(),
358
  [
359
+ 'name' => 'ha_advanced_tooltip_title_section_bg_color',
360
  'label' => __('Background', 'happy-elementor-addons'),
361
  'types' => ['classic', 'gradient'],
362
  'selector' => '{{WRAPPER}} .ha-advanced-tooltip-content',
402
  $element->add_group_control(
403
  Group_Control_Border::get_type(),
404
  [
405
+ 'name' => 'ha_advanced_tooltip_border',
406
  'label' => __('Border', 'happy-elementor-addons'),
407
  'selector' => '{{WRAPPER}} .ha-advanced-tooltip-content',
408
  'condition' => [
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/">Happy Addons for Elementor</a> Is the Best Elementor Addons Comes With 44+ Free Elementor Widgets Including Table Builder, Testimonial, Event Calendar,Slider,News Ticker, Image Grid, etc & Features Like Elementor Equal Height, Text Stroke, Shape Dividers, Floating Effect, Grid Layout, 500+ Elementor Icons, 450+ Template Packs & More.
6
- * Version: 3.0.0
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * Elementor tested up to: 3.3.1
@@ -36,7 +36,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
36
 
37
  defined( 'ABSPATH' ) || die();
38
 
39
- define( 'HAPPY_ADDONS_VERSION', '3.0.0' );
40
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
41
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
42
  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/">Happy Addons for Elementor</a> Is the Best Elementor Addons Comes With 44+ Free Elementor Widgets Including Table Builder, Testimonial, Event Calendar,Slider,News Ticker, Image Grid, etc & Features Like Elementor Equal Height, Text Stroke, Shape Dividers, Floating Effect, Grid Layout, 500+ Elementor Icons, 450+ Template Packs & More.
6
+ * Version: 3.0.1
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * Elementor tested up to: 3.3.1
36
 
37
  defined( 'ABSPATH' ) || die();
38
 
39
+ define( 'HAPPY_ADDONS_VERSION', '3.0.1' );
40
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
41
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
42
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
readme.txt CHANGED
@@ -4,7 +4,7 @@ Version: 3.0.0
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, shshouvo, sayedulsayem, obiplabon
7
- Tags: Elementor, Elementor Addons, Elementor Widget, Elementor Addon, Elements
8
  Requires at least: 4.7
9
  Tested up to: 5.8
10
  Stable tag: trunk
@@ -21,6 +21,12 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
21
  ### **Why Should You Choose HappyAddons?**
22
  HappyAddons is the pioneer of adding exclusive problem-solving features. Also we have added premium quality Widgets in the Elementor Library. Reasons for choosing Happyaddons over any other Elementor Addons:
23
 
 
 
 
 
 
 
24
  - You Can Create Advanced Data Table,
25
  - Facility to Add Text Stroke or Outline to Elementor Typography
26
  - Manage Your Event Calendars,
@@ -155,6 +161,8 @@ If you are still craving for more widgets, then the following premium widgets ar
155
 
156
  - [**Advanced Slider**](https://demo.happyaddons.com/elementor-advanced-slider-widget-demo/) – Bored with your typical sliders? Try our advanced slider for Elementor. Create mesmerizing slides within your Elementor Sites using our Advanced Slider.
157
  - [**Happy Mega Menu**](https://demo.happyaddons.com/elementor-happy-mega-menu-widget-demo/) – Struggling with large-scale menu items? Happy Mega Menu is the best solution to your problems. You can create mega menus lik Adidas, Dribbble, Puma, Invision etc.
 
 
158
  - [**Feature List**](https://demo.happyaddons.com/elementor-feature-list-widget-demo/) – You can display your product features using different styles using this widget. As a bonus, you can also customize each and every predefined design.
159
  - [**Pricing Table**](https://demo.happyaddons.com/elementor-pricing-table-widget-demo/) – This one of a kind widget will allow you to create any kind of pricing table under the sun. As a surprise, you can use gradient background, oval-shaped button, font awesome icons, background fill color, different heights, dark mood and so on.
160
  - [**Flip Box**](https://demo.happyaddons.com/elementor-flip-box-widget-demo-2/) – This exquisite widget will help you show different messages or texts at the time before and after a user hover on a certain element. Just like the other widgets, you can customize this with background image, gutter and circular arrow navigation on both sides.
@@ -205,6 +213,23 @@ If you are still craving for more widgets, then the following premium widgets ar
205
 
206
  The premium (PRO) features of Happy Addons truly make it stand out from all the other Elementor add-ons out there right now. You will get the below mentioned much talked about standout premium features in the PRO version of Happy Addons:
207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  ### **Cross-Domain Copy-Paste: Apply the Same Design to Multiple Domains With a Single Click**
209
 
210
  If you are creating different web pages with WordPress, you will often try to use the same elements of a web page to other pages over and over again.
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, shshouvo, sayedulsayem, obiplabon
7
+ Tags: Elementor, Elementor Addons, Elementor Widget, Elementor Addon, Mega Menu
8
  Requires at least: 4.7
9
  Tested up to: 5.8
10
  Stable tag: trunk
21
  ### **Why Should You Choose HappyAddons?**
22
  HappyAddons is the pioneer of adding exclusive problem-solving features. Also we have added premium quality Widgets in the Elementor Library. Reasons for choosing Happyaddons over any other Elementor Addons:
23
 
24
+ From now on, you can create a mega menu, simple navigation menu, Horizontal Nav Menu with our Happy Menu Widget.
25
+
26
+ Create off canvas contents/menu for your site with HappyAddons off-canvas widget
27
+
28
+ Manage one page navigation menu with the help of HappyAddons One Page Navigation widget
29
+
30
  - You Can Create Advanced Data Table,
31
  - Facility to Add Text Stroke or Outline to Elementor Typography
32
  - Manage Your Event Calendars,
161
 
162
  - [**Advanced Slider**](https://demo.happyaddons.com/elementor-advanced-slider-widget-demo/) – Bored with your typical sliders? Try our advanced slider for Elementor. Create mesmerizing slides within your Elementor Sites using our Advanced Slider.
163
  - [**Happy Mega Menu**](https://demo.happyaddons.com/elementor-happy-mega-menu-widget-demo/) – Struggling with large-scale menu items? Happy Mega Menu is the best solution to your problems. You can create mega menus lik Adidas, Dribbble, Puma, Invision etc.
164
+ - [**One Page Navigation Widget**](https://demo.happyaddons.com/elementor-one-page-navigation-widget-demo/) - HappyAddons one page navigation widget will help you create lucrative one page nav contents for your site. It has 9 design controls with a smooth scrolling option. You can show any kind of design within it.
165
+ - [**Off-Canvas Content or Menu Widget**](https://demo.happyaddons.com/elementor-off-canvas-content-demo/) - HappyAddons off canvas navigation content will give you the freedom to create any kind of off canvas contents or offcanvas menu items for your Elementor websites.
166
  - [**Feature List**](https://demo.happyaddons.com/elementor-feature-list-widget-demo/) – You can display your product features using different styles using this widget. As a bonus, you can also customize each and every predefined design.
167
  - [**Pricing Table**](https://demo.happyaddons.com/elementor-pricing-table-widget-demo/) – This one of a kind widget will allow you to create any kind of pricing table under the sun. As a surprise, you can use gradient background, oval-shaped button, font awesome icons, background fill color, different heights, dark mood and so on.
168
  - [**Flip Box**](https://demo.happyaddons.com/elementor-flip-box-widget-demo-2/) – This exquisite widget will help you show different messages or texts at the time before and after a user hover on a certain element. Just like the other widgets, you can customize this with background image, gutter and circular arrow navigation on both sides.
213
 
214
  The premium (PRO) features of Happy Addons truly make it stand out from all the other Elementor add-ons out there right now. You will get the below mentioned much talked about standout premium features in the PRO version of Happy Addons:
215
 
216
+ ### **Happy Mega Menu Builder For Elementor:**
217
+
218
+ Happy Addons brings an amazing mega menu builder for Elementor. With this MegaMenu builder, you can create mega menus like Dribble, Adidas, Puma, weDevs, and more. Our Happy Menu widget will help you show any kind of element to your mega menu items. Like you can show posts, categories, pages, list items, social links, menu icons, and more. Not only that but also you will get a blank Elementor canvas to design your mega menu items.
219
+
220
+ What Extra Will You Get in the Mega Menu Builder of HappyAddons?
221
+
222
+ With this Happy mega menu builder widget, you can create any kind of menus.
223
+
224
+ - **Simple Navigation Menu For Elementor:** You can create a simple nav menu for your Elementor site. You can show and design your WordPress Nav menu items as well.
225
+ - **Icon for menu items or megamenu items:** Flexibility to add different types of icons to menu items.
226
+ - **Menu Badges for Mega Menu or Simple Nav Menus:** Create a customized badge for your megamenu or simple menu items.
227
+ - **Mobile Responsive Mega Menus:** You can create mobile responsive menus, as it has different styling options for mobiles and tablets.
228
+
229
+ Want to learn How to Create MegaMenu for Elementor? Watch this detailed tutorial of creating mega menus within Elementor,
230
+
231
+ https://www.youtube.com/watch?v=7qmCZFsDkmg&t=548s&ab_channel=HappyAddons
232
+
233
  ### **Cross-Domain Copy-Paste: Apply the Same Design to Multiple Domains With a Single Click**
234
 
235
  If you are creating different web pages with WordPress, you will often try to use the same elements of a web page to other pages over and over again.
widgets/image-stack-group/widget.php CHANGED
@@ -565,7 +565,7 @@ class Image_Stack_Group extends Base {
565
  if($media_type == "icon"){
566
  $bgType = $item['icon_bg_color_background'];
567
  $bg = $item['icon_bg_color_color'];
568
- $bgGlobal = $item['__globals__']['icon_bg_color_color'];
569
 
570
  if($bgGlobal){
571
  $bgGlobal = explode("=",$bgGlobal);
@@ -585,7 +585,14 @@ class Image_Stack_Group extends Base {
585
  ha_render_icon( $item, 'icon', 'selected_icon', $attr);
586
  $content = ob_get_clean();
587
  }else{
588
- $content = '<img src="'.$item['image']['url'].'" alt="">';
 
 
 
 
 
 
 
589
  }
590
 
591
  $tooltip_data = '';
565
  if($media_type == "icon"){
566
  $bgType = $item['icon_bg_color_background'];
567
  $bg = $item['icon_bg_color_color'];
568
+ $bgGlobal = isset($item['__globals__'])?$item['__globals__']['icon_bg_color_color']:'';
569
 
570
  if($bgGlobal){
571
  $bgGlobal = explode("=",$bgGlobal);
585
  ha_render_icon( $item, 'icon', 'selected_icon', $attr);
586
  $content = ob_get_clean();
587
  }else{
588
+
589
+ if(isset($item['image']) && $item['image']['url'] != ''){
590
+ $img_url = $item['image']['url'];
591
+ }else{
592
+ $img_url = Utils::get_placeholder_image_src();
593
+ }
594
+
595
+ $content = '<img src="'.$img_url.'" alt="">';
596
  }
597
 
598
  $tooltip_data = '';