Premium Addons for Elementor - Version 2.4.0

Version Description

  • Fix: Repeater issue in Grid and Fancy Text Premium widgets.
  • Fix: Pagination overlapping issue in Premium Blog widget.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 2.4.0
Comparing to
See all releases

Code changes from version 2.3.9 to 2.4.0

admin/settings-page.php CHANGED
@@ -373,7 +373,7 @@ class PA_admin_settings {
373
 
374
  <tr class="pa-roll-row">
375
  <th>Rollback Version</th>
376
- <td><div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.3.8</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div><p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p></td>
377
  </tr>
378
  <tr>
379
  <th><h4 class="pa-beta-test">Become a Beta Tester</h4><span class="pa-beta-test-span">Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.</span></th>
373
 
374
  <tr class="pa-roll-row">
375
  <th>Rollback Version</th>
376
+ <td><div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.3.9</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div><p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p></td>
377
  </tr>
378
  <tr>
379
  <th><h4 class="pa-beta-test">Become a Beta Tester</h4><span class="pa-beta-test-span">Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.</span></th>
assets/css/premium-addons.css CHANGED
@@ -1825,6 +1825,7 @@ button.premium-modal-box-modal-close {
1825
  transition: color 0.3s ease-in-out;
1826
  }
1827
  .premium-blog-pagination-container {
 
1828
  margin-top: -30px;
1829
  text-align: right;
1830
  }
1825
  transition: color 0.3s ease-in-out;
1826
  }
1827
  .premium-blog-pagination-container {
1828
+ padding: 15px;
1829
  margin-top: -30px;
1830
  text-align: right;
1831
  }
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 20 premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
- Version: 2.3.9
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
@@ -22,12 +22,12 @@ if( !function_exists('add_action') ) {
22
 
23
  if( !defined( 'ABSPATH' ) ) exit; // No access of directly access
24
 
25
- define( 'PREMIUM_ADDONS_VERSION', '2.3.9' );
26
  define( 'PREMIUM_ADDONS_URL', plugins_url('/', __FILE__ ) );
27
  define( 'PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
28
  define( 'PREMIUM_ADDONS_FILE', __FILE__ );
29
  define( 'PREMIUM_ADDONS_BASENAME', plugin_basename(__FILE__));
30
- define( 'PREMIUM_ADDONS_STABLE_VERSION', '2.3.8');
31
 
32
 
33
  /**
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 20 premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
+ Version: 2.4.0
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
22
 
23
  if( !defined( 'ABSPATH' ) ) exit; // No access of directly access
24
 
25
+ define( 'PREMIUM_ADDONS_VERSION', '2.4.0' );
26
  define( 'PREMIUM_ADDONS_URL', plugins_url('/', __FILE__ ) );
27
  define( 'PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
28
  define( 'PREMIUM_ADDONS_FILE', __FILE__ );
29
  define( 'PREMIUM_ADDONS_BASENAME', plugin_basename(__FILE__));
30
+ define( 'PREMIUM_ADDONS_STABLE_VERSION', '2.3.9');
31
 
32
 
33
  /**
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.4
8
- Stable tag: 2.3.9
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
@@ -99,6 +99,11 @@ Premium Addons for Elementor is light weight and we also gave you the control to
99
 
100
  == Changelog ==
101
 
 
 
 
 
 
102
  = 2.3.9 =
103
 
104
  - Tweak: Added Posts Spacing option for Premium Blog widget.
5
  Requires at least: 4.5
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.4
8
+ Stable tag: 2.4.0
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
99
 
100
  == Changelog ==
101
 
102
+ = 2.4.0 =
103
+
104
+ - Fix: Repeater issue in Grid and Fancy Text Premium widgets.
105
+ - Fix: Pagination overlapping issue in Premium Blog widget.
106
+
107
  = 2.3.9 =
108
 
109
  - Tweak: Added Posts Spacing option for Premium Blog widget.
widgets/premium-blog.php CHANGED
@@ -957,6 +957,7 @@ if(count($posts)){
957
  </div>
958
  <?php }?>
959
  <div class="premium-blog-clear-fix"></div>
 
960
  <?php if ( $settings['premium_blog_paging'] === 'yes' ) : ?>
961
  <div class="premium-blog-pagination-container">
962
  <?php
@@ -982,7 +983,6 @@ if(count($posts)){
982
  ?>
983
  </div>
984
  <?php endif; ?>
985
- </div>
986
  <?php
987
  echo $this->get_blog_responsive_style();
988
  wp_reset_postdata();
957
  </div>
958
  <?php }?>
959
  <div class="premium-blog-clear-fix"></div>
960
+ </div>
961
  <?php if ( $settings['premium_blog_paging'] === 'yes' ) : ?>
962
  <div class="premium-blog-pagination-container">
963
  <?php
983
  ?>
984
  </div>
985
  <?php endif; ?>
 
986
  <?php
987
  echo $this->get_blog_responsive_style();
988
  wp_reset_postdata();
widgets/premium-fancytext.php CHANGED
@@ -49,6 +49,17 @@ class Premium_Fancy_Text_Widget extends Widget_Base
49
  ]
50
  );
51
 
 
 
 
 
 
 
 
 
 
 
 
52
  /*Fancy Text Strings*/
53
  $this->add_control('premium_fancy_text_strings',
54
  [
@@ -65,18 +76,10 @@ class Premium_Fancy_Text_Widget extends Widget_Base
65
  'premium_text_strings_text_field' => esc_html__( 'Awesome', 'premium-addons-for-elementor' ),
66
  ],
67
  ],
68
- 'fields' => [
69
- [
70
- 'name' => 'premium_text_strings_text_field',
71
- 'label' => esc_html__( 'Fancy String', 'premium-addons-for-elementor' ),
72
- 'type' => Controls_Manager::TEXT,
73
- 'dynamic' => [ 'active' => true ],
74
- 'label_block' => true,
75
- ],
76
- ],
77
  'title_field' => '{{{ premium_text_strings_text_field }}}',
78
- ]
79
- );
80
 
81
  /*Prefix Text*/
82
  $this->add_control('premium_fancy_suffix_text',
49
  ]
50
  );
51
 
52
+ $repeater = new REPEATER();
53
+
54
+ $repeater->add_control('premium_text_strings_text_field',
55
+ [
56
+ 'label' => esc_html__( 'Fancy String', 'premium-addons-for-elementor' ),
57
+ 'dynamic' => [ 'active' => true ],
58
+ 'type' => Controls_Manager::TEXT,
59
+ 'label_block' => true,
60
+ ]
61
+ );
62
+
63
  /*Fancy Text Strings*/
64
  $this->add_control('premium_fancy_text_strings',
65
  [
76
  'premium_text_strings_text_field' => esc_html__( 'Awesome', 'premium-addons-for-elementor' ),
77
  ],
78
  ],
79
+ 'fields' => array_values( $repeater->get_controls() ),
 
 
 
 
 
 
 
 
80
  'title_field' => '{{{ premium_text_strings_text_field }}}',
81
+ ]
82
+ );
83
 
84
  /*Prefix Text*/
85
  $this->add_control('premium_fancy_suffix_text',
widgets/premium-grid.php CHANGED
@@ -45,6 +45,16 @@ class Premium_Image_Gallery_Widget extends Widget_Base {
45
  'label' => esc_html__('Categories','premium-addons-for-elementor'),
46
  ]);
47
 
 
 
 
 
 
 
 
 
 
 
48
  $this->add_control('premium_gallery_cats_content',
49
  [
50
  'label' => __( 'Categories', 'premium-addons-for-elementor' ),
@@ -57,14 +67,7 @@ class Premium_Image_Gallery_Widget extends Widget_Base {
57
  'premium_gallery_img_cat' => 'Category 2',
58
  ],
59
  ],
60
- 'fields' => [
61
- [
62
- 'name' => 'premium_gallery_img_cat',
63
- 'label' => esc_html__( 'Category', 'premium-addons-for-elementor' ),
64
- 'type' => Controls_Manager::TEXT,
65
- 'dynamic' => [ 'active' => true ],
66
- ],
67
- ],
68
  'title_field' => '{{{ premium_gallery_img_cat }}}',
69
  ]
70
  );
45
  'label' => esc_html__('Categories','premium-addons-for-elementor'),
46
  ]);
47
 
48
+ $repeater = new REPEATER();
49
+
50
+ $repeater->add_control( 'premium_gallery_img_cat',
51
+ [
52
+ 'label' => esc_html__( 'Category', 'premium-addons-for-elementor' ),
53
+ 'type' => Controls_Manager::TEXT,
54
+ 'dynamic' => [ 'active' => true ],
55
+ ]
56
+ );
57
+
58
  $this->add_control('premium_gallery_cats_content',
59
  [
60
  'label' => __( 'Categories', 'premium-addons-for-elementor' ),
67
  'premium_gallery_img_cat' => 'Category 2',
68
  ],
69
  ],
70
+ 'fields' => array_values( $repeater->get_controls() ) ,
 
 
 
 
 
 
 
71
  'title_field' => '{{{ premium_gallery_img_cat }}}',
72
  ]
73
  );
widgets/premium-maps.php CHANGED
@@ -75,59 +75,71 @@ class Premium_Maps_Widget extends Widget_Base
75
 
76
  $this->end_controls_section();
77
 
78
- $this->start_controls_section('premium_maps_map_pins_settings',
79
- [
80
- 'label' => esc_html__('Markers', 'premium-addons-for-elementor'),
81
- ]
82
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
 
84
  $this->add_control('premium_maps_map_pins',
85
- [
86
- 'label' => esc_html__('Map Pins', 'premium-addons-for-elementor'),
87
- 'type' => Controls_Manager::REPEATER,
88
- 'default' => [
89
- 'map_latitude' => '18.591212',
90
- 'map_longitude' => '73.741261',
91
- 'pin_title' => esc_html__('Premium Google Maps', 'premium-addons-for-elementor'),
92
- 'pin_desc' => esc_html__('Add an optional description to your map pin', 'premium-addons-for-elementor'),
93
- ],
94
- 'fields' => [
95
- [
96
- 'name' => 'map_latitude',
97
- 'label' => esc_html__('Latitude', 'premium-addons-for-elementor'),
98
- 'type' => Controls_Manager::TEXT,
99
- 'description' => 'Click <a href="https://www.latlong.net/" target="_blank">here</a> to get your location coordinates',
100
- 'label_block' => true,
101
- ],
102
- [
103
- 'name' => 'map_longitude',
104
- 'label' => esc_html__('Longitude', 'premium-addons-for-elementor'),
105
- 'type' => Controls_Manager::TEXT,
106
- 'description' => 'Click <a href="https://www.latlong.net/" target="_blank">here</a> to get your location coordinates',
107
- 'label_block' => true,
108
- ],
109
- [
110
- 'name' => 'pin_title',
111
- 'label' => esc_html__('Title', 'premium-addons-for-elementor'),
112
- 'type' => Controls_Manager::TEXT,
113
- 'dynamic' => [ 'active' => true ],
114
- 'label_block' => true,
115
- ],
116
- [
117
- 'name' => 'pin_desc',
118
- 'label' => esc_html__('Description', 'premium-addons-for-elementor'),
119
- 'type' => Controls_Manager::WYSIWYG,
120
- 'dynamic' => [ 'active' => true ],
121
- 'label_block' => true,
122
- ],
123
- [
124
- 'name' => 'pin_icon',
125
- 'label' => esc_html__('Custom Icon', 'premium-addons-for-elementor'),
126
- 'type' => Controls_Manager::MEDIA,
127
- ],
128
- ],
129
- ]
130
- );
131
 
132
  $this->end_controls_section();
133
 
75
 
76
  $this->end_controls_section();
77
 
78
+ $this->start_controls_section('premium_maps_map_pins_settings',
79
+ [
80
+ 'label' => esc_html__('Markers', 'premium-addons-for-elementor'),
81
+ ]
82
+ );
83
+
84
+ $repeater = new REPEATER();
85
+
86
+ $repeater->add_control('map_latitude',
87
+ [
88
+ 'label' => esc_html__('Latitude', 'premium-addons-for-elementor'),
89
+ 'type' => Controls_Manager::TEXT,
90
+ 'description' => 'Click <a href="https://www.latlong.net/" target="_blank">here</a> to get your location coordinates',
91
+ 'label_block' => true,
92
+ ]
93
+ );
94
+
95
+ $repeater->add_control('map_longitude',
96
+ [
97
+ 'name' => 'map_longitude',
98
+ 'label' => esc_html__('Longitude', 'premium-addons-for-elementor'),
99
+ 'type' => Controls_Manager::TEXT,
100
+ 'description' => 'Click <a href="https://www.latlong.net/" target="_blank">here</a> to get your location coordinates',
101
+ 'label_block' => true,
102
+ ]
103
+ );
104
+
105
+ $repeater->add_control('pin_title',
106
+ [
107
+ 'label' => esc_html__('Title', 'premium-addons-for-elementor'),
108
+ 'type' => Controls_Manager::TEXT,
109
+ 'dynamic' => [ 'active' => true ],
110
+ 'label_block' => true,
111
+ ]
112
+ );
113
+
114
+ $repeater->add_control('pin_desc',
115
+ [
116
+ 'label' => esc_html__('Description', 'premium-addons-for-elementor'),
117
+ 'type' => Controls_Manager::WYSIWYG,
118
+ 'dynamic' => [ 'active' => true ],
119
+ 'label_block' => true,
120
+ ]
121
+ );
122
+
123
+ $repeater->add_control('pin_icon',
124
+ [
125
+ 'label' => esc_html__('Custom Icon', 'premium-addons-for-elementor'),
126
+ 'type' => Controls_Manager::MEDIA,
127
+ ]
128
+ );
129
 
130
  $this->add_control('premium_maps_map_pins',
131
+ [
132
+ 'label' => esc_html__('Map Pins', 'premium-addons-for-elementor'),
133
+ 'type' => Controls_Manager::REPEATER,
134
+ 'default' => [
135
+ 'map_latitude' => '18.591212',
136
+ 'map_longitude' => '73.741261',
137
+ 'pin_title' => esc_html__('Premium Google Maps', 'premium-addons-for-elementor'),
138
+ 'pin_desc' => esc_html__('Add an optional description to your map pin', 'premium-addons-for-elementor'),
139
+ ],
140
+ 'fields' => array_values( $repeater->get_controls() ),
141
+ ]
142
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
 
144
  $this->end_controls_section();
145
 
widgets/premium-pricing-table.php CHANGED
@@ -165,6 +165,24 @@ class Premium_Pricing_Table_Widget extends Widget_Base
165
  ]
166
  );
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  $this->add_control('premium_fancy_text_list_items',
169
  [
170
  'label' => esc_html__( 'Features', 'premium-addons-for-elementor' ),
@@ -183,20 +201,7 @@ class Premium_Pricing_Table_Widget extends Widget_Base
183
  'premium_pricing_list_item_text' => esc_html__( 'List Item #3', 'premium-addons-for-elementor' ),
184
  ],
185
  ],
186
- 'fields' => [
187
- [
188
- 'name' => 'premium_pricing_list_item_text',
189
- 'label' => esc_html__( 'Text', 'premium-addons-for-elementor' ),
190
- 'type' => Controls_Manager::TEXT,
191
- 'dynamic' => [ 'active' => true ],
192
- 'label_block' => true,
193
- ],
194
- [
195
- 'name' => 'premium_pricing_list_item_icon',
196
- 'label' => esc_html__( 'Icon', 'premium-addons-for-elementor' ),
197
- 'type' => Controls_Manager::ICON,
198
- ],
199
- ],
200
  ]
201
  );
202
 
165
  ]
166
  );
167
 
168
+ $repeater = new REPEATER();
169
+
170
+ $repeater->add_control('premium_pricing_list_item_text',
171
+ [
172
+ 'label' => esc_html__( 'Text', 'premium-addons-for-elementor' ),
173
+ 'type' => Controls_Manager::TEXT,
174
+ 'dynamic' => [ 'active' => true ],
175
+ 'label_block' => true,
176
+ ]
177
+ );
178
+
179
+ $repeater->add_control('premium_pricing_list_item_icon',
180
+ [
181
+ 'label' => esc_html__( 'Icon', 'premium-addons-for-elementor' ),
182
+ 'type' => Controls_Manager::ICON,
183
+ ]
184
+ );
185
+
186
  $this->add_control('premium_fancy_text_list_items',
187
  [
188
  'label' => esc_html__( 'Features', 'premium-addons-for-elementor' ),
201
  'premium_pricing_list_item_text' => esc_html__( 'List Item #3', 'premium-addons-for-elementor' ),
202
  ],
203
  ],
204
+ 'fields' => array_values( $repeater->get_controls() ),
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  ]
206
  );
207
 
widgets/premium-progressbar.php CHANGED
@@ -75,39 +75,45 @@ class Premium_Progressbar_Widget extends Widget_Base
75
  ]
76
  );
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  $this->add_control('premium_progressbar_multiple_label',
79
  [
80
  'label' => esc_html__('Label','premium-addons-for-elementor'),
81
  'type' => Controls_Manager::REPEATER,
82
  'default' => [
83
- [
84
- 'text' => esc_html__( 'Label','premium-addons-for-elementor' ),
85
- 'number' => esc_html__('50','premium-addons-for-elementor')
86
- ]
87
- ],
88
- 'fields' => [
89
- [
90
- 'name' => 'text',
91
- 'label' => esc_html__( 'Label','premium-addons-for-elementor' ),
92
- 'type' => Controls_Manager::TEXT,
93
- 'dynamic' => [ 'active' => true ],
94
- 'label_block' => true,
95
- 'placeholder' => esc_html__( 'label','premium-addons-for-elementor' ),
96
- 'default' => esc_html__( 'label', 'premium-addons-for-elementor' ),
97
- ],
98
- [
99
- 'name' => 'number',
100
- 'label' => __( 'Percentage', 'premium-addons-for-elementor' ),
101
- 'type' => Controls_Manager::NUMBER,
102
- 'label_block' => true,
103
- 'default' => '50',
104
- ]
105
- ],
106
  'condition' =>[
107
- 'premium_progressbar_select_label' =>'more_labels'
108
- ]
109
- ]
110
- );
 
111
  $this->add_control('premium_progress_bar_space_percentage_switcher',
112
  [
113
  'label' => esc_html__('Enable Percentage', 'premium-addons-for-elementor'),
75
  ]
76
  );
77
 
78
+ $repeater = new REPEATER();
79
+
80
+ $repeater->add_control('text',
81
+ [
82
+ 'label' => esc_html__( 'Label','premium-addons-for-elementor' ),
83
+ 'type' => Controls_Manager::TEXT,
84
+ 'dynamic' => [ 'active' => true ],
85
+ 'label_block' => true,
86
+ 'placeholder' => esc_html__( 'label','premium-addons-for-elementor' ),
87
+ 'default' => esc_html__( 'label', 'premium-addons-for-elementor' ),
88
+ ]
89
+ );
90
+
91
+ $repeater->add_control('number',
92
+ [
93
+ 'label' => __( 'Percentage', 'premium-addons-for-elementor' ),
94
+ 'type' => Controls_Manager::NUMBER,
95
+ 'label_block' => true,
96
+ 'default' => '50',
97
+ ]
98
+ );
99
+
100
  $this->add_control('premium_progressbar_multiple_label',
101
  [
102
  'label' => esc_html__('Label','premium-addons-for-elementor'),
103
  'type' => Controls_Manager::REPEATER,
104
  'default' => [
105
+ [
106
+ 'text' => esc_html__( 'Label','premium-addons-for-elementor' ),
107
+ 'number' => esc_html__('50','premium-addons-for-elementor')
108
+ ]
109
+ ],
110
+ 'fields' => array_values( $repeater->get_controls() ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  'condition' =>[
112
+ 'premium_progressbar_select_label' =>'more_labels'
113
+ ]
114
+ ]
115
+ );
116
+
117
  $this->add_control('premium_progress_bar_space_percentage_switcher',
118
  [
119
  'label' => esc_html__('Enable Percentage', 'premium-addons-for-elementor'),