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

Version Description

Download this release

Release Info

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

Code changes from version 1.8.7 to 1.8.8

admin/assets/js/custom-control/htmega-preset.js CHANGED
@@ -45,7 +45,6 @@
45
  },
46
  onPesetChange: function (presetValue) {
47
  var p = this.getPresets();
48
- console.log(p);
49
  if(!_.isUndefined(p[presetValue])){
50
  this.applyPreset(p[presetValue]);
51
  }
45
  },
46
  onPesetChange: function (presetValue) {
47
  var p = this.getPresets();
 
48
  if(!_.isUndefined(p[presetValue])){
49
  this.applyPreset(p[presetValue]);
50
  }
admin/assets/js/install_manager.js CHANGED
@@ -1,276 +1,277 @@
1
- (function($) {
2
- "use strict";
3
-
4
- /*
5
- * Plugin Installation Manager
6
- */
7
- var HTMegatemplataPluginManager = {
8
-
9
- init: function(){
10
- $( document ).on('click','.install-now', HTMegatemplataPluginManager.installNow );
11
- $( document ).on('click','.activate-now', HTMegatemplataPluginManager.activatePlugin);
12
- $( document ).on('wp-plugin-install-success', HTMegatemplataPluginManager.installingSuccess);
13
- $( document ).on('wp-plugin-install-error', HTMegatemplataPluginManager.installingError);
14
- $( document ).on('wp-plugin-installing', HTMegatemplataPluginManager.installingProcess);
15
- },
16
-
17
- /**
18
- * Installation Error.
19
- */
20
- installingError: function( e, response ) {
21
- e.preventDefault();
22
- var $card = $( '.htwptemplata-plugin-' + response.slug );
23
- $button = $card.find( '.button' );
24
- $button.removeClass( 'button-primary' ).addClass( 'disabled' ).html( wp.updates.l10n.installFailedShort );
25
- },
26
-
27
- /**
28
- * Installing Process
29
- */
30
- installingProcess: function(e, args){
31
- e.preventDefault();
32
- var $card = $( '.htwptemplata-plugin-' + args.slug ),
33
- $button = $card.find( '.button' );
34
- $button.text( HTTM.buttontxt.installing ).addClass( 'updating-message' );
35
- },
36
-
37
- /**
38
- * Plugin Install Now
39
- */
40
- installNow: function(e){
41
- e.preventDefault();
42
-
43
- var $button = $( e.target ),
44
- $plugindata = $button.data('pluginopt');
45
-
46
- if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
47
- return;
48
- }
49
- if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
50
- wp.updates.requestFilesystemCredentials( e );
51
- $( document ).on( 'credential-modal-cancel', function() {
52
- var $message = $( '.install-now.updating-message' );
53
- $message.removeClass( 'updating-message' ).text( wp.updates.l10n.installNow );
54
- wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
55
- });
56
- }
57
- wp.updates.installPlugin( {
58
- slug: $plugindata['slug']
59
- });
60
-
61
- },
62
-
63
- /**
64
- * After Plugin Install success
65
- */
66
- installingSuccess: function( e, response ) {
67
- var $message = $( '.htwptemplata-plugin-' + response.slug ).find( '.button' );
68
-
69
- var $plugindata = $message.data('pluginopt');
70
-
71
- $message.removeClass( 'install-now installed button-disabled updated-message' )
72
- .addClass( 'updating-message' )
73
- .html( HTTM.buttontxt.activating );
74
-
75
- setTimeout( function() {
76
- $.ajax( {
77
- url: HTTM.ajaxurl,
78
- type: 'POST',
79
- data: {
80
- action : 'htmega_ajax_plugin_activation',
81
- location : $plugindata['location'],
82
- },
83
- } ).done( function( result ) {
84
- if ( result.success ) {
85
- $message.removeClass( 'button-primary install-now activate-now updating-message' )
86
- .attr( 'disabled', 'disabled' )
87
- .addClass( 'disabled' )
88
- .text( HTTM.buttontxt.active );
89
-
90
- } else {
91
- $message.removeClass( 'updating-message' );
92
- }
93
-
94
- });
95
-
96
- }, 1200 );
97
-
98
- },
99
-
100
- /**
101
- * Plugin Activate
102
- */
103
- activatePlugin: function( e, response ) {
104
- e.preventDefault();
105
-
106
- var $button = $( e.target ),
107
- $plugindata = $button.data('pluginopt');
108
-
109
- if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
110
- return;
111
- }
112
-
113
- $button.addClass( 'updating-message button-primary' ).html( HTTM.buttontxt.activating );
114
-
115
- $.ajax( {
116
- url: HTTM.ajaxurl,
117
- type: 'POST',
118
- data: {
119
- action : 'htmega_ajax_plugin_activation',
120
- location : $plugindata['location'],
121
- },
122
- }).done( function( response ) {
123
- if ( response.success ) {
124
- $button.removeClass( 'button-primary install-now activate-now updating-message' )
125
- .attr( 'disabled', 'disabled' )
126
- .addClass( 'disabled' )
127
- .text( HTTM.buttontxt.active );
128
- }
129
- });
130
-
131
- },
132
-
133
-
134
- };
135
-
136
- /*
137
- * Theme Installation Manager
138
- */
139
- var HTMegatemplataThemeManager = {
140
-
141
- init: function(){
142
- $( document ).on('click','.themeinstall-now', HTMegatemplataThemeManager.installNow );
143
- $( document ).on('click','.themeactivate-now', HTMegatemplataThemeManager.activateTheme);
144
- $( document ).on('wp-theme-install-success', HTMegatemplataThemeManager.installingSuccess);
145
- $( document ).on('wp-theme-install-error', HTMegatemplataThemeManager.installingError);
146
- $( document ).on('wp-theme-installing', HTMegatemplataThemeManager.installingProcess);
147
- },
148
-
149
- /**
150
- * Installation Error.
151
- */
152
- installingError: function( e, response ) {
153
- e.preventDefault();
154
- var $card = $( '.htwptemplata-theme-' + response.slug );
155
- $button = $card.find( '.button' );
156
- $button.removeClass( 'button-primary' ).addClass( 'disabled' ).html( wp.updates.l10n.installFailedShort );
157
- },
158
-
159
- /**
160
- * Installing Process
161
- */
162
- installingProcess: function(e, args){
163
- e.preventDefault();
164
- var $card = $( '.htwptemplata-theme-' + args.slug ),
165
- $button = $card.find( '.button' );
166
- $button.text( HTTM.buttontxt.installing ).addClass( 'updating-message' );
167
- },
168
-
169
- /**
170
- * Theme Install Now
171
- */
172
- installNow: function(e){
173
- e.preventDefault();
174
-
175
- var $button = $( e.target ),
176
- $themedata = $button.data('themeopt');
177
-
178
- if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
179
- return;
180
- }
181
- if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
182
- wp.updates.requestFilesystemCredentials( e );
183
- $( document ).on( 'credential-modal-cancel', function() {
184
- var $message = $( '.themeinstall-now.updating-message' );
185
- $message.removeClass( 'updating-message' ).text( wp.updates.l10n.installNow );
186
- wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
187
- });
188
- }
189
- wp.updates.installTheme( {
190
- slug: $themedata['slug']
191
- });
192
-
193
- },
194
-
195
- /**
196
- * After Theme Install success
197
- */
198
- installingSuccess: function( e, response ) {
199
- var $message = $( '.htwptemplata-theme-' + response.slug ).find( '.button' );
200
-
201
- var $themedata = $message.data('themeopt');
202
-
203
- $message.removeClass( 'install-now installed button-disabled updated-message' )
204
- .addClass( 'updating-message' )
205
- .html( HTTM.buttontxt.activating );
206
-
207
- setTimeout( function() {
208
- $.ajax( {
209
- url: HTTM.ajaxurl,
210
- type: 'POST',
211
- data: {
212
- action : 'htmega_ajax_theme_activation',
213
- themeslug : $themedata['slug'],
214
- },
215
- } ).done( function( result ) {
216
- if ( result.success ) {
217
- $message.removeClass( 'button-primary install-now activate-now updating-message' )
218
- .attr( 'disabled', 'disabled' )
219
- .addClass( 'disabled' )
220
- .text( HTTM.buttontxt.active );
221
-
222
- } else {
223
- $message.removeClass( 'updating-message' );
224
- }
225
-
226
- });
227
-
228
- }, 1200 );
229
-
230
- },
231
-
232
- /**
233
- * Theme Activate
234
- */
235
- activateTheme: function( e, response ) {
236
- e.preventDefault();
237
-
238
- var $button = $( e.target ),
239
- $themedata = $button.data('themeopt');
240
-
241
- if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
242
- return;
243
- }
244
-
245
- $button.addClass( 'updating-message button-primary' ).html( HTTM.buttontxt.activating );
246
-
247
- $.ajax( {
248
- url: HTTM.ajaxurl,
249
- type: 'POST',
250
- data: {
251
- action : 'htmega_ajax_theme_activation',
252
- themeslug : $themedata['slug'],
253
- },
254
- }).done( function( response ) {
255
- if ( response.success ) {
256
- $button.removeClass( 'button-primary install-now activate-now updating-message' )
257
- .attr( 'disabled', 'disabled' )
258
- .addClass( 'disabled' )
259
- .text( HTTM.buttontxt.active );
260
- }
261
- });
262
-
263
- },
264
-
265
-
266
- };
267
-
268
- /**
269
- * Initialize HTMegatemplataPluginManager
270
- */
271
- $( document ).ready( function() {
272
- HTMegatemplataPluginManager.init();
273
- HTMegatemplataThemeManager.init();
274
- });
275
-
 
276
  })(jQuery);
1
+ (function($) {
2
+ "use strict";
3
+
4
+ /*
5
+ * Plugin Installation Manager
6
+ */
7
+ var HTMegatemplataPluginManager = {
8
+
9
+ init: function(){
10
+ console.log(HTTM.ajaxurl);
11
+ $( document ).on('click','.install-now', HTMegatemplataPluginManager.installNow );
12
+ $( document ).on('click','.activate-now', HTMegatemplataPluginManager.activatePlugin);
13
+ $( document ).on('wp-plugin-install-success', HTMegatemplataPluginManager.installingSuccess);
14
+ $( document ).on('wp-plugin-install-error', HTMegatemplataPluginManager.installingError);
15
+ $( document ).on('wp-plugin-installing', HTMegatemplataPluginManager.installingProcess);
16
+ },
17
+
18
+ /**
19
+ * Installation Error.
20
+ */
21
+ installingError: function( e, response ) {
22
+ e.preventDefault();
23
+ var $card = $( '.htwptemplata-plugin-' + response.slug );
24
+ $button = $card.find( '.button' );
25
+ $button.removeClass( 'button-primary' ).addClass( 'disabled' ).html( wp.updates.l10n.installFailedShort );
26
+ },
27
+
28
+ /**
29
+ * Installing Process
30
+ */
31
+ installingProcess: function(e, args){
32
+ e.preventDefault();
33
+ var $card = $( '.htwptemplata-plugin-' + args.slug ),
34
+ $button = $card.find( '.button' );
35
+ $button.text( HTTM.buttontxt.installing ).addClass( 'updating-message' );
36
+ },
37
+
38
+ /**
39
+ * Plugin Install Now
40
+ */
41
+ installNow: function(e){
42
+ e.preventDefault();
43
+
44
+ var $button = $( e.target ),
45
+ $plugindata = $button.data('pluginopt');
46
+
47
+ if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
48
+ return;
49
+ }
50
+ if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
51
+ wp.updates.requestFilesystemCredentials( e );
52
+ $( document ).on( 'credential-modal-cancel', function() {
53
+ var $message = $( '.install-now.updating-message' );
54
+ $message.removeClass( 'updating-message' ).text( wp.updates.l10n.installNow );
55
+ wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
56
+ });
57
+ }
58
+ wp.updates.installPlugin( {
59
+ slug: $plugindata['slug']
60
+ });
61
+
62
+ },
63
+
64
+ /**
65
+ * After Plugin Install success
66
+ */
67
+ installingSuccess: function( e, response ) {
68
+ var $message = $( '.htwptemplata-plugin-' + response.slug ).find( '.button' );
69
+
70
+ var $plugindata = $message.data('pluginopt');
71
+
72
+ $message.removeClass( 'install-now installed button-disabled updated-message' )
73
+ .addClass( 'updating-message' )
74
+ .html( HTTM.buttontxt.activating );
75
+
76
+ setTimeout( function() {
77
+ $.ajax( {
78
+ url: HTTM.ajaxurl,
79
+ type: 'POST',
80
+ data: {
81
+ action : 'htmega_ajax_plugin_activation',
82
+ location : $plugindata['location'],
83
+ },
84
+ } ).done( function( result ) {
85
+ if ( result.success ) {
86
+ $message.removeClass( 'button-primary install-now activate-now updating-message' )
87
+ .attr( 'disabled', 'disabled' )
88
+ .addClass( 'disabled' )
89
+ .text( HTTM.buttontxt.active );
90
+
91
+ } else {
92
+ $message.removeClass( 'updating-message' );
93
+ }
94
+
95
+ });
96
+
97
+ }, 1200 );
98
+
99
+ },
100
+
101
+ /**
102
+ * Plugin Activate
103
+ */
104
+ activatePlugin: function( e, response ) {
105
+ e.preventDefault();
106
+
107
+ var $button = $( e.target ),
108
+ $plugindata = $button.data('pluginopt');
109
+
110
+ if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
111
+ return;
112
+ }
113
+
114
+ $button.addClass( 'updating-message button-primary' ).html( HTTM.buttontxt.activating );
115
+
116
+ $.ajax( {
117
+ url: HTTM.ajaxurl,
118
+ type: 'POST',
119
+ data: {
120
+ action : 'htmega_ajax_plugin_activation',
121
+ location : $plugindata['location'],
122
+ },
123
+ }).done( function( response ) {
124
+ if ( response.success ) {
125
+ $button.removeClass( 'button-primary install-now activate-now updating-message' )
126
+ .attr( 'disabled', 'disabled' )
127
+ .addClass( 'disabled' )
128
+ .text( HTTM.buttontxt.active );
129
+ }
130
+ });
131
+
132
+ },
133
+
134
+
135
+ };
136
+
137
+ /*
138
+ * Theme Installation Manager
139
+ */
140
+ var HTMegatemplataThemeManager = {
141
+
142
+ init: function(){
143
+ $( document ).on('click','.themeinstall-now', HTMegatemplataThemeManager.installNow );
144
+ $( document ).on('click','.themeactivate-now', HTMegatemplataThemeManager.activateTheme);
145
+ $( document ).on('wp-theme-install-success', HTMegatemplataThemeManager.installingSuccess);
146
+ $( document ).on('wp-theme-install-error', HTMegatemplataThemeManager.installingError);
147
+ $( document ).on('wp-theme-installing', HTMegatemplataThemeManager.installingProcess);
148
+ },
149
+
150
+ /**
151
+ * Installation Error.
152
+ */
153
+ installingError: function( e, response ) {
154
+ e.preventDefault();
155
+ var $card = $( '.htwptemplata-theme-' + response.slug );
156
+ $button = $card.find( '.button' );
157
+ $button.removeClass( 'button-primary' ).addClass( 'disabled' ).html( wp.updates.l10n.installFailedShort );
158
+ },
159
+
160
+ /**
161
+ * Installing Process
162
+ */
163
+ installingProcess: function(e, args){
164
+ e.preventDefault();
165
+ var $card = $( '.htwptemplata-theme-' + args.slug ),
166
+ $button = $card.find( '.button' );
167
+ $button.text( HTTM.buttontxt.installing ).addClass( 'updating-message' );
168
+ },
169
+
170
+ /**
171
+ * Theme Install Now
172
+ */
173
+ installNow: function(e){
174
+ e.preventDefault();
175
+
176
+ var $button = $( e.target ),
177
+ $themedata = $button.data('themeopt');
178
+
179
+ if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
180
+ return;
181
+ }
182
+ if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
183
+ wp.updates.requestFilesystemCredentials( e );
184
+ $( document ).on( 'credential-modal-cancel', function() {
185
+ var $message = $( '.themeinstall-now.updating-message' );
186
+ $message.removeClass( 'updating-message' ).text( wp.updates.l10n.installNow );
187
+ wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
188
+ });
189
+ }
190
+ wp.updates.installTheme( {
191
+ slug: $themedata['slug']
192
+ });
193
+
194
+ },
195
+
196
+ /**
197
+ * After Theme Install success
198
+ */
199
+ installingSuccess: function( e, response ) {
200
+ var $message = $( '.htwptemplata-theme-' + response.slug ).find( '.button' );
201
+
202
+ var $themedata = $message.data('themeopt');
203
+
204
+ $message.removeClass( 'install-now installed button-disabled updated-message' )
205
+ .addClass( 'updating-message' )
206
+ .html( HTTM.buttontxt.activating );
207
+
208
+ setTimeout( function() {
209
+ $.ajax( {
210
+ url: HTTM.ajaxurl,
211
+ type: 'POST',
212
+ data: {
213
+ action : 'htmega_ajax_theme_activation',
214
+ themeslug : $themedata['slug'],
215
+ },
216
+ } ).done( function( result ) {
217
+ if ( result.success ) {
218
+ $message.removeClass( 'button-primary install-now activate-now updating-message' )
219
+ .attr( 'disabled', 'disabled' )
220
+ .addClass( 'disabled' )
221
+ .text( HTTM.buttontxt.active );
222
+
223
+ } else {
224
+ $message.removeClass( 'updating-message' );
225
+ }
226
+
227
+ });
228
+
229
+ }, 1200 );
230
+
231
+ },
232
+
233
+ /**
234
+ * Theme Activate
235
+ */
236
+ activateTheme: function( e, response ) {
237
+ e.preventDefault();
238
+
239
+ var $button = $( e.target ),
240
+ $themedata = $button.data('themeopt');
241
+
242
+ if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
243
+ return;
244
+ }
245
+
246
+ $button.addClass( 'updating-message button-primary' ).html( HTTM.buttontxt.activating );
247
+
248
+ $.ajax( {
249
+ url: HTTM.ajaxurl,
250
+ type: 'POST',
251
+ data: {
252
+ action : 'htmega_ajax_theme_activation',
253
+ themeslug : $themedata['slug'],
254
+ },
255
+ }).done( function( response ) {
256
+ if ( response.success ) {
257
+ $button.removeClass( 'button-primary install-now activate-now updating-message' )
258
+ .attr( 'disabled', 'disabled' )
259
+ .addClass( 'disabled' )
260
+ .text( HTTM.buttontxt.active );
261
+ }
262
+ });
263
+
264
+ },
265
+
266
+
267
+ };
268
+
269
+ /**
270
+ * Initialize HTMegatemplataPluginManager
271
+ */
272
+ $( document ).ready( function() {
273
+ HTMegatemplataPluginManager.init();
274
+ HTMegatemplataThemeManager.init();
275
+ });
276
+
277
  })(jQuery);
assets/css/htmega-widgets.css CHANGED
@@ -1,3 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /* Section Title style */
2
  .htmega-section-title{
3
  position: relative;
@@ -5,23 +18,23 @@
5
  }
6
  .htmega-section-title svg{
7
  width: 20px;
8
- }
9
- .htmega-section-title .section-title-txt {
10
  color: #23252a;
11
  font-weight: 600;
12
  line-height: 1;
13
  margin: 0;
14
  display: inline-block;
15
- }
16
- .htmega-section-title .section-subtitle-txt{
17
  color: #494849;
18
  font-family: "Poppins",sans-serif;
19
  font-size: 16px;
20
  line-height: 30px;
21
  margin: 5px 0;
22
  font-weight: 400;
23
- }
24
- .htmega-section-title span.htmega-title-sperator {
25
  background-color: #383838;
26
  display: inline-block;
27
  height: 3px;
@@ -29,8 +42,8 @@
29
  margin-top: 30px;
30
  position: relative;
31
  width: 50px;
32
- }
33
- .htmega-section-title.title-style-three span.htmega-title-sperator::before {
34
  background-color: #383838;
35
  bottom: 0;
36
  content: "";
@@ -41,51 +54,51 @@
41
  margin-top: 25px;
42
  position: absolute;
43
  width: 50px;
44
- }
45
- .htmega-title-align-left .htmega-section-title.title-style-three span.htmega-title-sperator::before,.htmega-title-align-justify .htmega-section-title.title-style-three span.htmega-title-sperator::before{
46
  left: 13px;
47
- }
48
 
49
- .htmega-section-title.htmega-subtitle-position-top {
50
- display: flex;
51
- flex-direction: column;
52
- }
53
- .htmega-section-title.htmega-subtitle-position-top .section-title-txt {
54
  order: 2;
55
- }
56
- .htmega-section-title.htmega-subtitle-position-top .section-subtitle-txt {
57
  order: 1;
58
- }
59
- .htmega-section-title.htmega-subtitle-position-top img {
60
  order: 3;
61
- }
62
- .htmega-section-title.htmega-subtitle-position-top i{
63
  order: 3;
64
- }
65
  /* .htmega-section-title img {
66
  margin: auto;
67
  } */
68
- .htmega-section-title.htmega-subtitle-position-top .htmega-title-sperator-sec {
69
  order: 4;
70
- }
71
- .htmega-section-title.htmega-subtitle-position-top.title-style-four .htmega-title-sperator-sec {
72
  order: 2;
73
- }
74
- .htmega-section-title.htmega-subtitle-position-top.title-style-four .section-title-txt{
75
  order: 3;
76
- }
77
- .htmega-section-title.htmega-subtitle-position-top.title-style-four span.htmega-title-sperator{
78
  margin-top: 8px;
79
- }
80
 
81
- .title-style-two .htmega-title-sperator-sec,.title-style-five .htmega-title-sperator-sec {
82
  display: none;
83
- }
84
- .title-style-two .section-title-txt{
85
  padding: 0 10.5%;
86
  position: relative;
87
- }
88
- .title-style-two .section-title-txt::before,.title-style-two .section-title-txt::after {
89
  background: #412e51 none repeat scroll 0 0;
90
  content: "";
91
  height: 3px;
@@ -93,18 +106,18 @@
93
  position: absolute;
94
  top: 50%;
95
  width: 100px;
96
- }
97
- .title-style-two .section-title-txt::after {
98
  right: 0;
99
  top: 50%;
100
  left: auto;
101
- }
102
- .title-style-two .section-title-txt{
103
  margin-right: auto !important;
104
  margin-left: auto !important;
105
- }
106
 
107
- .section-advancetitle-txt{
108
  color: #f1f1f1;
109
  font-size: 80px;
110
  font-weight: 800;
@@ -116,10 +129,10 @@
116
  transform: translateY(-50%);
117
  width: 100%;
118
  z-index: -1;
119
- }
120
- .htmega-title-sperator-sec {
121
  line-height: 1;
122
- }
123
 
124
  .htmega-section-title-order-parent{
125
  display: flex;
@@ -147,7 +160,7 @@
147
  }
148
 
149
  .image-center .section-title-txt{
150
- order: 1;
151
  }
152
 
153
  .htmega_sub_title_border_both{
@@ -15209,6 +15222,40 @@ ul.htmega-testimonial-rating * {
15209
  .elementor-widget-htmega-wcaddtocart-addons .quantity {
15210
  display: inline-block;
15211
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15212
 
15213
  /* WooCommerce Pages */
15214
  .elementor-widget-htmega-wcpages-addons .col-1,.elementor-widget-htmega-wcpages-addons .col-2 {
@@ -16002,10 +16049,15 @@ ul.htmega-testimonial-rating * {
16002
  padding: 12px 20px;
16003
  border-right: 1px solid #fff;
16004
  }
 
 
 
 
 
16005
 
16006
  .htmega-table-style .htb-table tbody tr {
16007
  background: #824f9e;
16008
- }
16009
 
16010
  .htmega-table-style .htb-table tbody tr td {
16011
  text-align: center;
@@ -16017,6 +16069,8 @@ ul.htmega-testimonial-rating * {
16017
  font-size: 16px;
16018
  border-right: 1px solid #fff;
16019
  }
 
 
16020
 
16021
  .htmega-table-style .htb-table thead tr th.sorting,.htmega-table-style .htb-table thead tr th.sorting_asc,.htmega-table-style .htb-table thead tr th.sorting_desc{
16022
  position: relative;
1
+ /* Default Css*/
2
+
3
+ [class*="elementor-widget-htmega-"] h1 a,
4
+ [class*="elementor-widget-htmega-"] h2 a,
5
+ [class*="elementor-widget-htmega-"] h3 a,
6
+ [class*="elementor-widget-htmega-"] h4 a,
7
+ [class*="elementor-widget-htmega-"] h5 a,
8
+ [class*="elementor-widget-htmega-"] h6 a{
9
+ font-size: inherit;
10
+ font-weight: inherit;
11
+ font-family: inherit;
12
+ }
13
+
14
  /* Section Title style */
15
  .htmega-section-title{
16
  position: relative;
18
  }
19
  .htmega-section-title svg{
20
  width: 20px;
21
+ }
22
+ .htmega-section-title .section-title-txt {
23
  color: #23252a;
24
  font-weight: 600;
25
  line-height: 1;
26
  margin: 0;
27
  display: inline-block;
28
+ }
29
+ .htmega-section-title .section-subtitle-txt{
30
  color: #494849;
31
  font-family: "Poppins",sans-serif;
32
  font-size: 16px;
33
  line-height: 30px;
34
  margin: 5px 0;
35
  font-weight: 400;
36
+ }
37
+ .htmega-section-title span.htmega-title-sperator {
38
  background-color: #383838;
39
  display: inline-block;
40
  height: 3px;
42
  margin-top: 30px;
43
  position: relative;
44
  width: 50px;
45
+ }
46
+ .htmega-section-title.title-style-three span.htmega-title-sperator::before {
47
  background-color: #383838;
48
  bottom: 0;
49
  content: "";
54
  margin-top: 25px;
55
  position: absolute;
56
  width: 50px;
57
+ }
58
+ .htmega-title-align-left .htmega-section-title.title-style-three span.htmega-title-sperator::before,.htmega-title-align-justify .htmega-section-title.title-style-three span.htmega-title-sperator::before{
59
  left: 13px;
60
+ }
61
 
62
+ .htmega-section-title.htmega-subtitle-position-top {
63
+ display: flex;
64
+ flex-direction: column;
65
+ }
66
+ .htmega-section-title.htmega-subtitle-position-top .section-title-txt {
67
  order: 2;
68
+ }
69
+ .htmega-section-title.htmega-subtitle-position-top .section-subtitle-txt {
70
  order: 1;
71
+ }
72
+ .htmega-section-title.htmega-subtitle-position-top img {
73
  order: 3;
74
+ }
75
+ .htmega-section-title.htmega-subtitle-position-top i{
76
  order: 3;
77
+ }
78
  /* .htmega-section-title img {
79
  margin: auto;
80
  } */
81
+ .htmega-section-title.htmega-subtitle-position-top .htmega-title-sperator-sec {
82
  order: 4;
83
+ }
84
+ .htmega-section-title.htmega-subtitle-position-top.title-style-four .htmega-title-sperator-sec {
85
  order: 2;
86
+ }
87
+ .htmega-section-title.htmega-subtitle-position-top.title-style-four .section-title-txt{
88
  order: 3;
89
+ }
90
+ .htmega-section-title.htmega-subtitle-position-top.title-style-four span.htmega-title-sperator{
91
  margin-top: 8px;
92
+ }
93
 
94
+ .title-style-two .htmega-title-sperator-sec,.title-style-five .htmega-title-sperator-sec {
95
  display: none;
96
+ }
97
+ .title-style-two .section-title-txt{
98
  padding: 0 10.5%;
99
  position: relative;
100
+ }
101
+ .title-style-two .section-title-txt::before,.title-style-two .section-title-txt::after {
102
  background: #412e51 none repeat scroll 0 0;
103
  content: "";
104
  height: 3px;
106
  position: absolute;
107
  top: 50%;
108
  width: 100px;
109
+ }
110
+ .title-style-two .section-title-txt::after {
111
  right: 0;
112
  top: 50%;
113
  left: auto;
114
+ }
115
+ .title-style-two .section-title-txt{
116
  margin-right: auto !important;
117
  margin-left: auto !important;
118
+ }
119
 
120
+ .section-advancetitle-txt{
121
  color: #f1f1f1;
122
  font-size: 80px;
123
  font-weight: 800;
129
  transform: translateY(-50%);
130
  width: 100%;
131
  z-index: -1;
132
+ }
133
+ .htmega-title-sperator-sec {
134
  line-height: 1;
135
+ }
136
 
137
  .htmega-section-title-order-parent{
138
  display: flex;
160
  }
161
 
162
  .image-center .section-title-txt{
163
+ order: 1;
164
  }
165
 
166
  .htmega_sub_title_border_both{
15222
  .elementor-widget-htmega-wcaddtocart-addons .quantity {
15223
  display: inline-block;
15224
  }
15225
+
15226
+ .elementor-widget-htmega-wcaddtocart-addons .ajax_add_to_cart.added .elementor-button-text::after,
15227
+ .elementor-widget-htmega-wcaddtocart-addons .single_add_to_cart_button.added .elementor-button-text::after{
15228
+ font-family: WooCommerce;
15229
+ content: '\e017';
15230
+ margin-left: 0.53em;
15231
+ vertical-align: bottom;
15232
+ }
15233
+
15234
+ .elementor-widget-htmega-wcaddtocart-addons .ajax_add_to_cart.loading .elementor-button-text::after,
15235
+ .elementor-widget-htmega-wcaddtocart-addons .single_add_to_cart_button.loading .elementor-button-text::after{
15236
+ font-family: WooCommerce;
15237
+ content: '\e01c';
15238
+ vertical-align: top;
15239
+ -webkit-font-smoothing: antialiased;
15240
+ font-weight: 400;
15241
+ position: absolute;
15242
+ top: auto;
15243
+ right: 1em;
15244
+ animation: spin 2s linear infinite;
15245
+ }
15246
+
15247
+ .elementor-widget-htmega-wcaddtocart-addons .add_to_cart_button,
15248
+ .elementor-widget-htmega-wcaddtocart-addons .single_add_to_cart_button{
15249
+ position: relative;
15250
+ margin-right: 6px;
15251
+ }
15252
+
15253
+ .elementor-widget-htmega-wcaddtocart-addons .ajax_add_to_cart.loading,
15254
+ .elementor-widget-htmega-wcaddtocart-addons .single_add_to_cart_button.loading
15255
+ {
15256
+ padding-right: 2.618em;
15257
+ }
15258
+
15259
 
15260
  /* WooCommerce Pages */
15261
  .elementor-widget-htmega-wcpages-addons .col-1,.elementor-widget-htmega-wcpages-addons .col-2 {
16049
  padding: 12px 20px;
16050
  border-right: 1px solid #fff;
16051
  }
16052
+
16053
+ .htmega-table-style table.htb-table tbody>tr:nth-child(odd)>td,
16054
+ .htmega-table-style table.htb-table tbody>tr:nth-child(odd)>th{
16055
+ background: unset;
16056
+ }
16057
 
16058
  .htmega-table-style .htb-table tbody tr {
16059
  background: #824f9e;
16060
+ }
16061
 
16062
  .htmega-table-style .htb-table tbody tr td {
16063
  text-align: center;
16069
  font-size: 16px;
16070
  border-right: 1px solid #fff;
16071
  }
16072
+
16073
+
16074
 
16075
  .htmega-table-style .htb-table thead tr th.sorting,.htmega-table-style .htb-table thead tr th.sorting_asc,.htmega-table-style .htb-table thead tr th.sorting_desc{
16076
  position: relative;
assets/js/single_product_ajax_add_to_cart.js ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function($){
2
+
3
+ $(document).on( 'click', '.elementor-widget-htmega-wcaddtocart-addons .single_add_to_cart_button', function (e) {
4
+ e.preventDefault();
5
+
6
+ var $this = $(this),
7
+ $form = $this.closest('form.cart'),
8
+ all_data = $form.serialize(),
9
+ product_qty = $form.find('input[name=quantity]').val() || 1,
10
+ product_id = $form.find('input[name=product_id]').val() || $this.val(),
11
+ variation_id = $form.find('input[name=variation_id]').val() || 0,
12
+ isGrouped = $form.find('input[name=add-to-cart]').val();
13
+
14
+ /* For Variation product */
15
+ var item = {},
16
+ variations = $form.find( 'select[name^=attribute]' );
17
+ if ( !variations.length) {
18
+ variations = $form.find( '[name^=attribute]:checked' );
19
+ }
20
+ if ( !variations.length) {
21
+ variations = $form.find( 'input[name^=attribute]' );
22
+ }
23
+
24
+ variations.each( function() {
25
+ var $thisitem = $( this ),
26
+ attributeName = $thisitem.attr( 'name' ),
27
+ attributevalue = $thisitem.val(),
28
+ index,
29
+ attributeTaxName;
30
+ $thisitem.removeClass( 'error' );
31
+ if ( attributevalue.length === 0 ) {
32
+ index = attributeName.lastIndexOf( '_' );
33
+ attributeTaxName = attributeName.substring( index + 1 );
34
+ $thisitem.addClass( 'required error' );
35
+ } else {
36
+ item[attributeName] = attributevalue;
37
+ }
38
+ });
39
+
40
+ var data = {
41
+ // action: 'woolentor_insert_to_cart',
42
+ product_id: product_id,
43
+ product_sku: '',
44
+ quantity: product_qty,
45
+ variation_id: variation_id,
46
+ variations: item,
47
+ isgrouped: 'no',
48
+ all_data: all_data,
49
+ };
50
+
51
+ //For grouped product
52
+ if(isGrouped){
53
+ var groupedProductQuantites = [];
54
+ var groupProductIds = [];
55
+ var groupedProducts = $form.find('.woocommerce-grouped-product-list .quantity input');
56
+ groupedProducts.each(function(){
57
+ if('' !== $(this).val() && '0' !== $(this).val()){
58
+ groupedProductQuantites.push($(this).val());
59
+ groupProductIds.push(getGroupedProductId($(this)));
60
+ }
61
+ });
62
+ data.quantity = groupedProductQuantites;
63
+ data.product_id = isGrouped;
64
+ data.isgrouped = 'yes';
65
+ data.groupedProductIds = groupProductIds;
66
+ }
67
+
68
+ var alldata = data.all_data + '&isgrouped='+ data.isgrouped + '&grouped_product_id='+ data.groupedProductIds + '&product_id='+ data.product_id + '&product_sku='+ data.product_sku + '&quantity='+ data.quantity + '&variation_id='+ data.variation_id + '&variations='+ JSON.stringify( data.variations ) +'&action=woocommerce_grouped_product_ajax_add_to_cart';
69
+
70
+ $( document.body ).trigger('adding_to_cart', [$this, data]);
71
+
72
+ $.ajax({
73
+ type: 'post',
74
+ url: wc_add_to_cart_params.ajax_url,
75
+ data: alldata,
76
+
77
+ beforeSend: function (response) {
78
+ $this.removeClass('added').addClass('loading');
79
+ },
80
+
81
+ complete: function (response) {
82
+ $this.addClass('added').removeClass('loading');
83
+ },
84
+
85
+ success: function (response) {
86
+ console.log(response);
87
+ if ( response.error && response.product_url ) {
88
+ window.location = response.product_url;
89
+ return;
90
+ } else {
91
+ $(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $this]);
92
+ }
93
+ },
94
+
95
+ });
96
+
97
+ function getGroupedProductId($this){
98
+ var productId = $this.parent().parent().parent().attr('id');
99
+ return productId.split('-')[1];
100
+ }
101
+
102
+ return false;
103
+ });
104
+
105
+ })(jQuery);
htmega_addons_elementor.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://wphtmega.com/
6
  * Author: HasThemes
7
  * Author URI: https://hasthemes.com/
8
- * Version: 1.8.7
9
  * License: GPL2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: htmega-addons
@@ -15,7 +15,7 @@
15
  */
16
 
17
  if( ! defined( 'ABSPATH' ) ) exit(); // Exit if accessed directly
18
- define( 'HTMEGA_VERSION', '1.8.7' );
19
  define( 'HTMEGA_ADDONS_PL_ROOT', __FILE__ );
20
  define( 'HTMEGA_ADDONS_PL_URL', plugins_url( '/', HTMEGA_ADDONS_PL_ROOT ) );
21
  define( 'HTMEGA_ADDONS_PL_PATH', plugin_dir_path( HTMEGA_ADDONS_PL_ROOT ) );
5
  * Plugin URI: https://wphtmega.com/
6
  * Author: HasThemes
7
  * Author URI: https://hasthemes.com/
8
+ * Version: 1.8.8
9
  * License: GPL2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: htmega-addons
15
  */
16
 
17
  if( ! defined( 'ABSPATH' ) ) exit(); // Exit if accessed directly
18
+ define( 'HTMEGA_VERSION', '1.8.8' );
19
  define( 'HTMEGA_ADDONS_PL_ROOT', __FILE__ );
20
  define( 'HTMEGA_ADDONS_PL_URL', plugins_url( '/', HTMEGA_ADDONS_PL_ROOT ) );
21
  define( 'HTMEGA_ADDONS_PL_PATH', plugin_dir_path( HTMEGA_ADDONS_PL_ROOT ) );
includes/class.assests.php CHANGED
@@ -315,6 +315,14 @@ if ( !class_exists( 'HTMega_Elementor_Addons_Assests' ) ) {
315
  ];
316
  }
317
 
 
 
 
 
 
 
 
 
318
  return $script_list;
319
 
320
  }
315
  ];
316
  }
317
 
318
+ if ( is_plugin_active('woocommerce/woocommerce.php') && htmega_get_option( 'wcaddtocart', 'htmega_thirdparty_element_tabs', 'on' ) === 'on' && 'yes' === get_option('woocommerce_enable_ajax_add_to_cart') ) {
319
+ $script_list['htmega-single-product-ajax-cart'] = [
320
+ 'src' => HTMEGA_ADDONS_PL_URL . 'assets/js/single_product_ajax_add_to_cart.js',
321
+ 'version' => HTMEGA_VERSION,
322
+ 'deps' => [ 'jquery' ]
323
+ ];
324
+ }
325
+
326
  return $script_list;
327
 
328
  }
includes/class.htmega.php CHANGED
@@ -227,6 +227,9 @@ final class HTMega_Addons_Elementor {
227
  require_once ( HTMEGA_ADDONS_PL_PATH . 'includes/class.htmega-icon-manager.php' );
228
  require_once ( HTMEGA_ADDONS_PL_PATH . 'admin/include/custom-control/preset-manage.php' );
229
  require_once ( HTMEGA_ADDONS_PL_PATH . 'admin/include/custom-control/preset-select.php' );
 
 
 
230
 
231
  // Admin Required File
232
  if( is_admin() ){
227
  require_once ( HTMEGA_ADDONS_PL_PATH . 'includes/class.htmega-icon-manager.php' );
228
  require_once ( HTMEGA_ADDONS_PL_PATH . 'admin/include/custom-control/preset-manage.php' );
229
  require_once ( HTMEGA_ADDONS_PL_PATH . 'admin/include/custom-control/preset-select.php' );
230
+ if('yes' === get_option('woocommerce_enable_ajax_add_to_cart')){
231
+ require_once ( HTMEGA_ADDONS_PL_PATH.'includes/class.single-product-ajax-addto-cart.php' );
232
+ }
233
 
234
  // Admin Required File
235
  if( is_admin() ){
includes/class.single-product-ajax-addto-cart.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+
4
+ /**
5
+ * groupe product Ajax add to cart
6
+ */
7
+ class Single_Product_Ajax_Add_To_Cart{
8
+
9
+ private static $instance = null;
10
+ public static function instance() {
11
+ if ( is_null( self::$instance ) ) {
12
+ self::$instance = new self();
13
+ }
14
+ return self::$instance;
15
+ }
16
+
17
+ function __construct(){
18
+ add_action( 'wp_ajax_woocommerce_grouped_product_ajax_add_to_cart', [ $this, 'grouped_product_addto_cart' ] );
19
+ add_action( 'wp_ajax_nopriv_woocommerce_grouped_product_ajax_add_to_cart', [ $this, 'grouped_product_addto_cart' ] );
20
+ }
21
+
22
+ public function grouped_product_addto_cart(){
23
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
24
+
25
+ if ( ! isset( $_POST['product_id'] ) ) {
26
+ return;
27
+ }
28
+
29
+ if( 'no' == $_POST['isgrouped'] ){
30
+ $this->single_product_add($_POST);
31
+ }else{
32
+ $this->grouped_product_add($_POST);
33
+ }
34
+ }
35
+
36
+ private function single_product_add($product_info){
37
+ $product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $product_info['product_id'] ) );
38
+ $quantity = empty( $product_info['quantity'] ) ? 1 : wc_stock_amount( wp_unslash( $product_info['quantity'] ) );
39
+ $variation_id = !empty( $product_info['variation_id'] ) ? absint( $product_info['variation_id'] ) : 0;
40
+ $variations = is_array( $product_info['variations'] ) && !empty( $product_info['variations'] ) ? array_map( 'sanitize_text_field', $product_info['variations'] ) : array();
41
+ $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations );
42
+ $product_status = get_post_status( $product_id );
43
+
44
+ if ( $passed_validation && \WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) && 'publish' === $product_status ) {
45
+ do_action( 'woocommerce_ajax_added_to_cart', $product_id );
46
+ if ( 'yes' === get_option('woocommerce_cart_redirect_after_add') ) {
47
+ wc_add_to_cart_message( array( $product_id => $quantity ), true );
48
+ }
49
+ \WC_AJAX::get_refreshed_fragments();
50
+ } else {
51
+ $data = array(
52
+ 'error' => true,
53
+ 'product_url' => apply_filters('woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
54
+ );
55
+ echo wp_send_json( $data );
56
+ }
57
+ wp_send_json_success();
58
+ }
59
+
60
+ private function grouped_product_add($product_info){
61
+ $product_id = absint( $product_info['product_id'] );
62
+ $quanties = sanitize_text_field( $product_info['quantity'] );
63
+ $product_qunatites = !empty($quanties) ? explode( ',', $quanties ) : array();
64
+ $product = wc_get_product( $product_id );
65
+ $grouped_product_ids = !empty($product_info['grouped_product_id']) ? explode(',',$product_info['grouped_product_id']) : array();
66
+ if( !empty($product_qunatites) && !empty($grouped_product_ids)){
67
+ foreach( $grouped_product_ids as $key => $children_id ){
68
+ $grouped_product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $children_id ) );
69
+ $quantity = empty( $product_qunatites[$key] ) ? 0 : wc_stock_amount( wp_unslash( $product_qunatites[$key] ) );
70
+ $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $grouped_product_id, $quantity );
71
+ $product_status = get_post_status( $grouped_product_id );
72
+ if ( $passed_validation && \WC()->cart->add_to_cart( $grouped_product_id, $quantity ) && 'publish' === $product_status ) {
73
+ do_action( 'woocommerce_ajax_added_to_cart', $grouped_product_id );
74
+ if ( 'yes' === get_option('woocommerce_cart_redirect_after_add') ) {
75
+ wc_add_to_cart_message( array( $product_id => $quantity ), true );
76
+ }
77
+ }
78
+ }
79
+ \WC_AJAX::get_refreshed_fragments();
80
+ }else{
81
+ $data = array(
82
+ 'error' => true,
83
+ 'product_url' => apply_filters('woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
84
+ );
85
+ echo wp_send_json( $data );
86
+ }
87
+ wp_send_json_success();
88
+ }
89
+
90
+
91
+ }
92
+
93
+ Single_Product_Ajax_Add_To_Cart::instance();
includes/helper-function.php CHANGED
@@ -65,18 +65,44 @@ if( !function_exists('htmega_get_option') ){
65
  * return array
66
  */
67
  if( !function_exists('htmega_elementor_template') ){
68
- function htmega_elementor_template() {
69
- $templates = \Elementor\Plugin::instance()->templates_manager->get_source( 'local' )->get_items();
70
- $types = array();
71
- if ( empty( $templates ) ) {
72
- $template_lists = [ '0' => __( 'Do not Saved Templates.', 'htmega-addons' ) ];
73
- } else {
74
- $template_lists = [ '0' => __( 'Select Template', 'htmega-addons' ) ];
75
- foreach ( $templates as $template ) {
76
- $template_lists[ $template['template_id'] ] = $template['title'] . ' (' . $template['type'] . ')';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  }
 
 
 
 
 
 
 
78
  }
79
- return $template_lists;
80
  }
81
  }
82
 
65
  * return array
66
  */
67
  if( !function_exists('htmega_elementor_template') ){
68
+ function htmega_elementor_template( $args = [] ) {
69
+ if( class_exists('\Elementor\Plugin') ){
70
+ $template_instance = \Elementor\Plugin::instance()->templates_manager->get_source( 'local' );
71
+
72
+ $defaults = [
73
+ 'post_type' => 'elementor_library',
74
+ 'post_status' => 'publish',
75
+ 'posts_per_page' => -1,
76
+ 'orderby' => 'title',
77
+ 'order' => 'ASC',
78
+ 'meta_query' => [
79
+ [
80
+ 'key' => '_elementor_template_type',
81
+ 'value' => $template_instance::get_template_types()
82
+ ],
83
+ ],
84
+ ];
85
+ $query_args = wp_parse_args( $args, $defaults );
86
+
87
+ $templates_query = new \WP_Query( $query_args );
88
+
89
+ $templates = [];
90
+ if ( $templates_query->have_posts() ) {
91
+ $templates = [ '0' => __( 'Select Template', 'htmega-addons' ) ];
92
+ foreach ( $templates_query->get_posts() as $post ) {
93
+ $templates[$post->ID] = $post->post_title . '(' . $template_instance::get_template_type( $post->ID ). ')';
94
+ }
95
+ }else{
96
+ $templates = [ '0' => __( 'Do not Saved Templates.', 'htmega-addons' ) ];
97
  }
98
+
99
+ wp_reset_query();
100
+
101
+ return $templates;
102
+
103
+ }else{
104
+ return array( '0' => __( 'Do not Saved Templates.', 'htmega-addons' ) );
105
  }
 
106
  }
107
  }
108
 
includes/widgets/htmega_wc_add_to_cart.php CHANGED
@@ -28,6 +28,10 @@ class HTMega_Elementor_Widget_WC_Add_to_Cart extends Widget_Button {
28
  ];
29
  }
30
 
 
 
 
 
31
  public function on_export( $element ) {
32
  unset( $element['settings']['product_id'] );
33
 
@@ -136,6 +140,7 @@ class HTMega_Elementor_Widget_WC_Add_to_Cart extends Widget_Button {
136
  }
137
 
138
  protected function render() {
 
139
  $settings = $this->get_settings();
140
 
141
  if ( ! empty( $settings['product_id'] ) ) {
28
  ];
29
  }
30
 
31
+ public function get_script_depends() {
32
+ return ['htmega-single-product-ajax-cart'];
33
+ }
34
+
35
  public function on_export( $element ) {
36
  unset( $element['settings']['product_id'] );
37
 
140
  }
141
 
142
  protected function render() {
143
+
144
  $settings = $this->get_settings();
145
 
146
  if ( ! empty( $settings['product_id'] ) ) {
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
- === HT Mega - Absolute Addons for Elementor Page Builder ===
2
  Contributors: hasthemes, htplugins, devitemsllc, tarekht, aslamhasib
3
  Tags: Elementor, Elementor Addons, Elementor Widgets, elementor page builder, Elementor Blocks
4
  Requires at least: 4.7
5
  Tested up to: 5.9.3
6
- Stable tag: 1.8.7
7
  License: GPLv2 or later
8
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -199,12 +199,16 @@ Feel free to [Contact us](https://hasthemes.com/contact-us/) 💌
199
  Visit [HasThemes](https://hasthemes.com/) for more details about HTML, Shopify and WordPress products and services.
200
 
201
  == Changelog ==
202
- = Version: 1.8.7 - Date: 2022-05-15 =
 
 
 
 
 
203
  * Updated: Make Third party instagram feed addon compatible with latest version of instgram feed plugin.
204
  * Fixed: Odd and even row's background color not working in Datatable addon.
205
  * Added: Styles in button and accordion addon.
206
 
207
- == Changelog ==
208
  = Version: 1.8.6 - Date: 2022-04-25 =
209
  * Added: Initial slider set option in Scroll Navigation.
210
 
1
+ === HT Mega - Absolute Addons for Elementor Page Builder ===
2
  Contributors: hasthemes, htplugins, devitemsllc, tarekht, aslamhasib
3
  Tags: Elementor, Elementor Addons, Elementor Widgets, elementor page builder, Elementor Blocks
4
  Requires at least: 4.7
5
  Tested up to: 5.9.3
6
+ Stable tag: 1.8.8
7
  License: GPLv2 or later
8
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
9
 
199
  Visit [HasThemes](https://hasthemes.com/) for more details about HTML, Shopify and WordPress products and services.
200
 
201
  == Changelog ==
202
+ = Version: 1.8.8 - Date: 2022-05-22 =
203
+ * Added: Single product Ajax add to cart in WooCommerce Add To Cart addon.
204
+ * Fixed: Conflict section title addon with Hello Elementor theme.
205
+ * Fixed: Conflict Accordion addon with LearnDash plugin.
206
+
207
+ = Version: 1.8.7 - Date: 2022-05-14 =
208
  * Updated: Make Third party instagram feed addon compatible with latest version of instgram feed plugin.
209
  * Fixed: Odd and even row's background color not working in Datatable addon.
210
  * Added: Styles in button and accordion addon.
211
 
 
212
  = Version: 1.8.6 - Date: 2022-04-25 =
213
  * Added: Initial slider set option in Scroll Navigation.
214