Version Description
Download this release
Release Info
Code changes from version 1.8.7 to 1.8.8
- admin/assets/js/custom-control/htmega-preset.js +0 -1
- admin/assets/js/install_manager.js +276 -275
- assets/css/htmega-widgets.css +101 -47
- assets/js/single_product_ajax_add_to_cart.js +105 -0
- htmega_addons_elementor.php +2 -2
- includes/class.assests.php +8 -0
- includes/class.htmega.php +3 -0
- includes/class.single-product-ajax-addto-cart.php +93 -0
- includes/helper-function.php +36 -10
- includes/widgets/htmega_wc_add_to_cart.php +5 -0
- readme.txt +8 -4
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 |
-
|
11 |
-
$( document ).on('click','.
|
12 |
-
$( document ).on('
|
13 |
-
$( document ).on('wp-plugin-install-
|
14 |
-
$( document ).on('wp-plugin-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
$
|
24 |
-
$button
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
$button
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
$message
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
.
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
.
|
88 |
-
.
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
.
|
127 |
-
.
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
$( document ).on('click','.
|
144 |
-
$( document ).on('
|
145 |
-
$( document ).on('wp-theme-install-
|
146 |
-
$( document ).on('wp-theme-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
$
|
156 |
-
$button
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
$button
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
$message
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
.
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
.
|
220 |
-
.
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
.
|
259 |
-
.
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
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 |
-
|
10 |
color: #23252a;
|
11 |
font-weight: 600;
|
12 |
line-height: 1;
|
13 |
margin: 0;
|
14 |
display: inline-block;
|
15 |
-
|
16 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
46 |
left: 13px;
|
47 |
-
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
order: 2;
|
55 |
-
|
56 |
-
|
57 |
order: 1;
|
58 |
-
|
59 |
-
|
60 |
order: 3;
|
61 |
-
|
62 |
-
|
63 |
order: 3;
|
64 |
-
|
65 |
/* .htmega-section-title img {
|
66 |
margin: auto;
|
67 |
} */
|
68 |
-
|
69 |
order: 4;
|
70 |
-
|
71 |
-
|
72 |
order: 2;
|
73 |
-
|
74 |
-
|
75 |
order: 3;
|
76 |
-
|
77 |
-
|
78 |
margin-top: 8px;
|
79 |
-
|
80 |
|
81 |
-
|
82 |
display: none;
|
83 |
-
|
84 |
-
|
85 |
padding: 0 10.5%;
|
86 |
position: relative;
|
87 |
-
|
88 |
-
|
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 |
-
|
98 |
right: 0;
|
99 |
top: 50%;
|
100 |
left: auto;
|
101 |
-
|
102 |
-
|
103 |
margin-right: auto !important;
|
104 |
margin-left: auto !important;
|
105 |
-
|
106 |
|
107 |
-
|
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 |
-
|
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.
|
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.
|
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 |
-
|
70 |
-
|
71 |
-
|
72 |
-
$
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
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.
|
|
|
|
|
|
|
|
|
|
|
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 |
|