Version Description
Download this release
Release Info
Developer | sandesh055 |
Plugin | Funnel Builder by CartFlows – Create High Converting Sales Funnels For WordPress |
Version | 1.1.20 |
Comparing to | |
See all releases |
Code changes from version 1.1.19 to 1.1.20
- admin/assets/css/admin-menu-settings-rtl.css +18 -1
- admin/assets/css/admin-menu-settings.css +18 -1
- admin/assets/css/global-admin-rtl.css +4 -0
- admin/assets/css/global-admin.css +4 -0
- admin/assets/css/setup-wizard-rtl.css +136 -25
- admin/assets/css/setup-wizard.css +136 -25
- admin/assets/js/global-admin.js +13 -0
- admin/assets/js/setup-wizard.js +173 -33
- admin/meta-assets/js/admin-edit.js +4 -0
- assets/css/checkout-template-rtl.css +4 -0
- assets/css/checkout-template.css +4 -0
- assets/css/frontend-rtl.css +17 -6
- assets/css/frontend.css +17 -6
- assets/css/import-rtl.css +39 -12
- assets/css/import.css +39 -12
- assets/js/import.js +128 -4
- assets/min-css/checkout-template-rtl.min.css +1 -1
- assets/min-css/checkout-template.min.css +1 -1
- assets/min-css/frontend-rtl.min.css +1 -1
- assets/min-css/frontend.min.css +1 -1
- assets/min-css/import-rtl.min.css +1 -1
- assets/min-css/import.min.css +1 -1
- assets/min-js/import.min.js +1 -1
- cartflows.php +1 -1
- changelog.txt +13 -0
- classes/class-cartflows-admin.php +521 -511
- classes/class-cartflows-compatibility.php +2 -2
- classes/class-cartflows-flow-frontend.php +1 -0
- classes/class-cartflows-frontend.php +5 -1
- classes/class-cartflows-functions.php +13 -0
- classes/class-cartflows-importer.php +91 -32
- classes/class-cartflows-loader.php +575 -455
- classes/class-cartflows-logger.php +85 -3
- classes/class-cartflows-meta-fields.php +1 -1
- classes/class-cartflows-update.php +22 -2
- classes/class-cartflows-utils.php +18 -3
- classes/class-cartflows-wizard.php +268 -65
- classes/logger/class-cartflows-log-handler-file.php +442 -442
- classes/logger/class-cartflows-log-handler-interface.php +33 -33
- classes/logger/class-cartflows-log-handler.php +57 -57
- classes/logger/class-cartflows-log-levels.php +108 -108
- classes/logger/class-cartflows-logger-interface.php +139 -139
- classes/logger/class-cartflows-wc-logger.php +301 -301
- includes/admin/cartflows-error-log.php +71 -71
- includes/admin/cartflows-general.php +18 -9
- languages/cartflows.pot +1587 -1442
- modules/checkout/classes/class-cartflows-checkout-markup.php +1 -1
- modules/flow/classes/class-cartflows-flow-meta.php +6 -2
- modules/flow/classes/class-cartflows-step-post-type.php +50 -35
- modules/flow/view/meta-flow-steps.php +10 -12
- modules/landing/classes/class-cartflows-landing-meta.php +5 -5
- modules/thankyou/classes/class-cartflows-thankyou-markup.php +300 -274
- readme.txt +8 -2
admin/assets/css/admin-menu-settings-rtl.css
CHANGED
@@ -294,4 +294,21 @@
|
|
294 |
|
295 |
.postbox-container .form-field{
|
296 |
border: none;
|
297 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
|
295 |
.postbox-container .form-field{
|
296 |
border: none;
|
297 |
+
}
|
298 |
+
|
299 |
+
.wcf-log-container {
|
300 |
+
word-break: break-all;
|
301 |
+
line-height: 1.5;
|
302 |
+
text-align: right;
|
303 |
+
background-color: #fff;
|
304 |
+
padding: 15px;
|
305 |
+
border-radius: 3px;
|
306 |
+
max-height: 400px;
|
307 |
+
overflow-y: scroll;
|
308 |
+
margin: 20px auto;
|
309 |
+
}
|
310 |
+
|
311 |
+
.wcf-log-container > pre {
|
312 |
+
display: contents;
|
313 |
+
white-space: pre-wrap;
|
314 |
+
}
|
admin/assets/css/admin-menu-settings.css
CHANGED
@@ -294,4 +294,21 @@
|
|
294 |
|
295 |
.postbox-container .form-field{
|
296 |
border: none;
|
297 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
|
295 |
.postbox-container .form-field{
|
296 |
border: none;
|
297 |
+
}
|
298 |
+
|
299 |
+
.wcf-log-container {
|
300 |
+
word-break: break-all;
|
301 |
+
line-height: 1.5;
|
302 |
+
text-align: left;
|
303 |
+
background-color: #fff;
|
304 |
+
padding: 15px;
|
305 |
+
border-radius: 3px;
|
306 |
+
max-height: 400px;
|
307 |
+
overflow-y: scroll;
|
308 |
+
margin: 20px auto;
|
309 |
+
}
|
310 |
+
|
311 |
+
.wcf-log-container > pre {
|
312 |
+
display: contents;
|
313 |
+
white-space: pre-wrap;
|
314 |
+
}
|
admin/assets/css/global-admin-rtl.css
CHANGED
@@ -668,6 +668,10 @@ input[type="text"].error:focus{
|
|
668 |
outline: none;
|
669 |
}
|
670 |
|
|
|
|
|
|
|
|
|
671 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="text"],
|
672 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="number"],
|
673 |
.wcf-table-container .wcf-column-right .wcf-field-row select,
|
668 |
outline: none;
|
669 |
}
|
670 |
|
671 |
+
.wcf-checkout-table .select2-container--default .select2-selection--single .select2-selection__clear{
|
672 |
+
display: block;
|
673 |
+
}
|
674 |
+
|
675 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="text"],
|
676 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="number"],
|
677 |
.wcf-table-container .wcf-column-right .wcf-field-row select,
|
admin/assets/css/global-admin.css
CHANGED
@@ -668,6 +668,10 @@ input[type="text"].error:focus{
|
|
668 |
outline: none;
|
669 |
}
|
670 |
|
|
|
|
|
|
|
|
|
671 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="text"],
|
672 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="number"],
|
673 |
.wcf-table-container .wcf-column-right .wcf-field-row select,
|
668 |
outline: none;
|
669 |
}
|
670 |
|
671 |
+
.wcf-checkout-table .select2-container--default .select2-selection--single .select2-selection__clear{
|
672 |
+
display: block;
|
673 |
+
}
|
674 |
+
|
675 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="text"],
|
676 |
.wcf-table-container .wcf-column-right .wcf-field-row input[type="number"],
|
677 |
.wcf-table-container .wcf-column-right .wcf-field-row select,
|
admin/assets/css/setup-wizard-rtl.css
CHANGED
@@ -30,6 +30,10 @@
|
|
30 |
0 0 2px 1px rgba(30, 140, 190, .8);
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
33 |
.ie8 a:focus {
|
34 |
outline: #5b9dd9 solid 1px;
|
35 |
}
|
@@ -49,7 +53,7 @@
|
|
49 |
|
50 |
p, li, dd, dt {
|
51 |
padding-bottom: 2px;
|
52 |
-
font-size:
|
53 |
line-height: 1.5;
|
54 |
}
|
55 |
|
@@ -169,10 +173,10 @@
|
|
169 |
.cartflows-setup-wizard-steps li:before,
|
170 |
.cartflows-setup-steps li:before {
|
171 |
content: "";
|
172 |
-
border:
|
173 |
border-radius: 100%;
|
174 |
-
width:
|
175 |
-
height:
|
176 |
position: absolute;
|
177 |
bottom: 0;
|
178 |
right: 50%;
|
@@ -181,32 +185,61 @@
|
|
181 |
background: #fff
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
.cartflows-setup-wizard-steps li.active,
|
185 |
.cartflows-setup-steps li.active {
|
186 |
-
border-color: #
|
187 |
-
color: #
|
188 |
}
|
189 |
|
190 |
.cartflows-setup-wizard-steps li.active:before,
|
191 |
.cartflows-setup-steps li.active:before {
|
192 |
-
border-color: #
|
193 |
}
|
194 |
|
195 |
.cartflows-setup-wizard-steps li.done,
|
196 |
.cartflows-setup-steps li.done {
|
197 |
-
border-color: #
|
198 |
-
color: #
|
199 |
}
|
200 |
|
201 |
.cartflows-setup-wizard-steps li.done:before,
|
202 |
.cartflows-setup-steps li.done:before {
|
203 |
-
border-color: #
|
204 |
-
background: #
|
205 |
}
|
206 |
|
207 |
.cartflows-setup-wizard-content a,
|
208 |
.cartflows-setup-content a {
|
209 |
-
color: #
|
210 |
}
|
211 |
|
212 |
.cartflows-setup-wizard-content a:focus,
|
@@ -226,6 +259,33 @@
|
|
226 |
zoom: 1
|
227 |
}
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
.cartflows-setup-wizard-content h1,
|
230 |
.cartflows-setup-content h1,
|
231 |
.cartflows-setup-wizard-content h2,
|
@@ -335,8 +395,8 @@
|
|
335 |
transform: rotate(0deg);
|
336 |
}
|
337 |
100% {
|
338 |
-
-webkit-transform: rotate(359deg);
|
339 |
-
transform: rotate(359deg);
|
340 |
}
|
341 |
}
|
342 |
|
@@ -346,8 +406,8 @@
|
|
346 |
transform: rotate(0deg);
|
347 |
}
|
348 |
100% {
|
349 |
-
-webkit-transform: rotate(359deg);
|
350 |
-
transform: rotate(359deg);
|
351 |
}
|
352 |
}
|
353 |
|
@@ -363,12 +423,14 @@
|
|
363 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button,
|
364 |
.cartflows-setup .cartflows-setup-actions .button {
|
365 |
font-size: 1em;
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
|
|
|
|
372 |
}
|
373 |
|
374 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .skip-button,
|
@@ -376,12 +438,52 @@
|
|
376 |
margin-right: 10px;
|
377 |
margin-left: 0;
|
378 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button.button-primary,
|
380 |
-
.cartflows-setup .cartflows-setup-actions .button.button-primary
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
opacity: 1;
|
382 |
height: auto;
|
383 |
-
line-height: 2;
|
384 |
padding: 0 1.2em;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
}
|
386 |
|
387 |
.aiosrs-pro-return-to-dashboard {
|
@@ -414,11 +516,16 @@
|
|
414 |
.cartflows-setup-wizard-content input,
|
415 |
.cartflows-setup-content input {
|
416 |
border: 1px solid #f1f1f1;
|
417 |
-
padding:
|
418 |
border-radius: 3px;
|
419 |
font-size: 14px;
|
420 |
}
|
421 |
|
|
|
|
|
|
|
|
|
|
|
422 |
.wp-picker-active .wp-picker-holder {
|
423 |
position: absolute;
|
424 |
z-index: 9;
|
@@ -1122,4 +1229,8 @@
|
|
1122 |
position: absolute;
|
1123 |
width: 1px;
|
1124 |
word-wrap: normal !important;
|
|
|
|
|
|
|
|
|
1125 |
}
|
30 |
0 0 2px 1px rgba(30, 140, 190, .8);
|
31 |
}
|
32 |
|
33 |
+
*, :after, :before {
|
34 |
+
box-sizing: border-box;
|
35 |
+
}
|
36 |
+
|
37 |
.ie8 a:focus {
|
38 |
outline: #5b9dd9 solid 1px;
|
39 |
}
|
53 |
|
54 |
p, li, dd, dt {
|
55 |
padding-bottom: 2px;
|
56 |
+
font-size: 15px;
|
57 |
line-height: 1.5;
|
58 |
}
|
59 |
|
173 |
.cartflows-setup-wizard-steps li:before,
|
174 |
.cartflows-setup-steps li:before {
|
175 |
content: "";
|
176 |
+
border: 7px solid #ccc;
|
177 |
border-radius: 100%;
|
178 |
+
width: 7px;
|
179 |
+
height: 7px;
|
180 |
position: absolute;
|
181 |
bottom: 0;
|
182 |
right: 50%;
|
185 |
background: #fff
|
186 |
}
|
187 |
|
188 |
+
.cartflows-setup-wizard-steps li.active:after,
|
189 |
+
.cartflows-setup-steps li.active:after {
|
190 |
+
content: "";
|
191 |
+
border: 2px solid #fff;
|
192 |
+
border-radius: 100%;
|
193 |
+
width: 2px;
|
194 |
+
height: 2px;
|
195 |
+
position: absolute;
|
196 |
+
bottom: 0;
|
197 |
+
right: 50%;
|
198 |
+
margin-right: -1px;
|
199 |
+
margin-bottom: -3px;
|
200 |
+
background: #fff;
|
201 |
+
}
|
202 |
+
|
203 |
+
.cartflows-setup-wizard-steps li.done:after,
|
204 |
+
.cartflows-setup-steps li.done:after {
|
205 |
+
content: "\f147";
|
206 |
+
width: auto;
|
207 |
+
height: auto;
|
208 |
+
position: absolute;
|
209 |
+
bottom: -12px;
|
210 |
+
color: #fff;
|
211 |
+
right: 50%;
|
212 |
+
margin-right: -7px;
|
213 |
+
font-family: dashicons;
|
214 |
+
margin-bottom: 0;
|
215 |
+
}
|
216 |
+
|
217 |
.cartflows-setup-wizard-steps li.active,
|
218 |
.cartflows-setup-steps li.active {
|
219 |
+
border-color: #f16334;
|
220 |
+
color: #f16334
|
221 |
}
|
222 |
|
223 |
.cartflows-setup-wizard-steps li.active:before,
|
224 |
.cartflows-setup-steps li.active:before {
|
225 |
+
border-color: #f16334
|
226 |
}
|
227 |
|
228 |
.cartflows-setup-wizard-steps li.done,
|
229 |
.cartflows-setup-steps li.done {
|
230 |
+
border-color: #f16334;
|
231 |
+
color: #f16334
|
232 |
}
|
233 |
|
234 |
.cartflows-setup-wizard-steps li.done:before,
|
235 |
.cartflows-setup-steps li.done:before {
|
236 |
+
border-color: #f16334;
|
237 |
+
background: #f16334
|
238 |
}
|
239 |
|
240 |
.cartflows-setup-wizard-content a,
|
241 |
.cartflows-setup-content a {
|
242 |
+
color: #f16334
|
243 |
}
|
244 |
|
245 |
.cartflows-setup-wizard-content a:focus,
|
259 |
zoom: 1
|
260 |
}
|
261 |
|
262 |
+
.cartflows-setup .cartflows-setup-message{
|
263 |
+
background: #f5f5f5;
|
264 |
+
padding: 25px;
|
265 |
+
}
|
266 |
+
|
267 |
+
.cartflows-setup .cartflows-setup-extra-notice
|
268 |
+
{
|
269 |
+
text-align: center;
|
270 |
+
font-size: 11px;
|
271 |
+
margin: 10px 0px 0px auto;
|
272 |
+
}
|
273 |
+
|
274 |
+
.cartflows-setup .cartflows-setup-extra-notice span,
|
275 |
+
.cartflows-setup .cartflows-setup-extra-notice a{
|
276 |
+
color: #ccc;
|
277 |
+
}
|
278 |
+
|
279 |
+
.cartflows-setup .cartflows-setup-extra-notice a{
|
280 |
+
text-decoration: underline;
|
281 |
+
}
|
282 |
+
|
283 |
+
.cartflows-setup .cartflows-setup-message .cartflows-setup-message-title {
|
284 |
+
color: #696767;
|
285 |
+
font-weight: 600;
|
286 |
+
margin: 10px auto;
|
287 |
+
}
|
288 |
+
|
289 |
.cartflows-setup-wizard-content h1,
|
290 |
.cartflows-setup-content h1,
|
291 |
.cartflows-setup-wizard-content h2,
|
395 |
transform: rotate(0deg);
|
396 |
}
|
397 |
100% {
|
398 |
+
-webkit-transform: rotate(-359deg);
|
399 |
+
transform: rotate(-359deg);
|
400 |
}
|
401 |
}
|
402 |
|
406 |
transform: rotate(0deg);
|
407 |
}
|
408 |
100% {
|
409 |
+
-webkit-transform: rotate(-359deg);
|
410 |
+
transform: rotate(-359deg);
|
411 |
}
|
412 |
}
|
413 |
|
423 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button,
|
424 |
.cartflows-setup .cartflows-setup-actions .button {
|
425 |
font-size: 1em;
|
426 |
+
padding: .5em 1em;
|
427 |
+
line-height: 1em;
|
428 |
+
margin-left: 0;
|
429 |
+
margin-bottom: 0;
|
430 |
+
height: auto;
|
431 |
+
border-radius: 2px;
|
432 |
+
text-shadow: none;
|
433 |
+
box-shadow: none;
|
434 |
}
|
435 |
|
436 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .skip-button,
|
438 |
margin-right: 10px;
|
439 |
margin-left: 0;
|
440 |
}
|
441 |
+
|
442 |
+
.cartflows-setup .button.button-next{
|
443 |
+
margin-left: 10px;
|
444 |
+
}
|
445 |
+
|
446 |
+
.wp-core-ui.cartflows-setup .button.button-large{
|
447 |
+
border-color: #ccc;
|
448 |
+
opacity: 1;
|
449 |
+
height: auto;
|
450 |
+
line-height: 2.5;
|
451 |
+
padding: 0 1.2em;
|
452 |
+
}
|
453 |
+
|
454 |
+
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button.button-primary.disabled,
|
455 |
+
.cartflows-setup .cartflows-setup-actions .button.button-primary:disabled,
|
456 |
+
.cartflows-setup .cartflows-setup-actions .button.button-secondary [disabled]{
|
457 |
+
background: rgb(241, 99, 52, 0.8) !important;
|
458 |
+
border-color: rgb(241, 99, 52, 0.8) !important;
|
459 |
+
color: #fff !important;
|
460 |
+
}
|
461 |
+
|
462 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button.button-primary,
|
463 |
+
.cartflows-setup .cartflows-setup-actions .button.button-primary,
|
464 |
+
.cartflows-setup .cartflows-setup-actions .button.button-secondary,
|
465 |
+
.cartflows-setup .cartflows-setup-actions .button-primary.active,
|
466 |
+
.cartflows-setup .cartflows-setup-actions .button-primary.active:hover,
|
467 |
+
.cartflows-setup .cartflows-setup-actions .button-primary.active:focus{
|
468 |
+
background: #f16334;
|
469 |
+
border-color: #f16334;
|
470 |
opacity: 1;
|
471 |
height: auto;
|
472 |
+
line-height: 2.5;
|
473 |
padding: 0 1.2em;
|
474 |
+
-webkit-box-shadow: none;
|
475 |
+
-moz-box-shadow: none;
|
476 |
+
box-shadow: none;
|
477 |
+
transform: translateY(0px);
|
478 |
+
}
|
479 |
+
|
480 |
+
.wp-core-ui.cartflows-setup .button.button-primary.button-hero,
|
481 |
+
.wp-core-ui.cartflows-setup .button.button-primary.button-hero:active{
|
482 |
+
box-shadow: 0 2px 0 #f16334;
|
483 |
+
background: #f16334;
|
484 |
+
border-color: #f16334;
|
485 |
+
text-shadow: none;
|
486 |
+
transform: translate(0px);
|
487 |
}
|
488 |
|
489 |
.aiosrs-pro-return-to-dashboard {
|
516 |
.cartflows-setup-wizard-content input,
|
517 |
.cartflows-setup-content input {
|
518 |
border: 1px solid #f1f1f1;
|
519 |
+
padding: 1em;
|
520 |
border-radius: 3px;
|
521 |
font-size: 14px;
|
522 |
}
|
523 |
|
524 |
+
.cartflows-setup .cartflows-setup-message input{
|
525 |
+
width: 100%;
|
526 |
+
height: 45px;
|
527 |
+
}
|
528 |
+
|
529 |
.wp-picker-active .wp-picker-holder {
|
530 |
position: absolute;
|
531 |
z-index: 9;
|
1229 |
position: absolute;
|
1230 |
width: 1px;
|
1231 |
word-wrap: normal !important;
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
input.wcf-error{
|
1235 |
+
border: 1px solid #ff0000;
|
1236 |
}
|
admin/assets/css/setup-wizard.css
CHANGED
@@ -30,6 +30,10 @@
|
|
30 |
0 0 2px 1px rgba(30, 140, 190, .8);
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
33 |
.ie8 a:focus {
|
34 |
outline: #5b9dd9 solid 1px;
|
35 |
}
|
@@ -49,7 +53,7 @@
|
|
49 |
|
50 |
p, li, dd, dt {
|
51 |
padding-bottom: 2px;
|
52 |
-
font-size:
|
53 |
line-height: 1.5;
|
54 |
}
|
55 |
|
@@ -169,10 +173,10 @@
|
|
169 |
.cartflows-setup-wizard-steps li:before,
|
170 |
.cartflows-setup-steps li:before {
|
171 |
content: "";
|
172 |
-
border:
|
173 |
border-radius: 100%;
|
174 |
-
width:
|
175 |
-
height:
|
176 |
position: absolute;
|
177 |
bottom: 0;
|
178 |
left: 50%;
|
@@ -181,32 +185,61 @@
|
|
181 |
background: #fff
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
.cartflows-setup-wizard-steps li.active,
|
185 |
.cartflows-setup-steps li.active {
|
186 |
-
border-color: #
|
187 |
-
color: #
|
188 |
}
|
189 |
|
190 |
.cartflows-setup-wizard-steps li.active:before,
|
191 |
.cartflows-setup-steps li.active:before {
|
192 |
-
border-color: #
|
193 |
}
|
194 |
|
195 |
.cartflows-setup-wizard-steps li.done,
|
196 |
.cartflows-setup-steps li.done {
|
197 |
-
border-color: #
|
198 |
-
color: #
|
199 |
}
|
200 |
|
201 |
.cartflows-setup-wizard-steps li.done:before,
|
202 |
.cartflows-setup-steps li.done:before {
|
203 |
-
border-color: #
|
204 |
-
background: #
|
205 |
}
|
206 |
|
207 |
.cartflows-setup-wizard-content a,
|
208 |
.cartflows-setup-content a {
|
209 |
-
color: #
|
210 |
}
|
211 |
|
212 |
.cartflows-setup-wizard-content a:focus,
|
@@ -226,6 +259,33 @@
|
|
226 |
zoom: 1
|
227 |
}
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
.cartflows-setup-wizard-content h1,
|
230 |
.cartflows-setup-content h1,
|
231 |
.cartflows-setup-wizard-content h2,
|
@@ -335,8 +395,8 @@
|
|
335 |
transform: rotate(0deg);
|
336 |
}
|
337 |
100% {
|
338 |
-
-webkit-transform: rotate(
|
339 |
-
transform: rotate(
|
340 |
}
|
341 |
}
|
342 |
|
@@ -346,8 +406,8 @@
|
|
346 |
transform: rotate(0deg);
|
347 |
}
|
348 |
100% {
|
349 |
-
-webkit-transform: rotate(
|
350 |
-
transform: rotate(
|
351 |
}
|
352 |
}
|
353 |
|
@@ -363,12 +423,14 @@
|
|
363 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button,
|
364 |
.cartflows-setup .cartflows-setup-actions .button {
|
365 |
font-size: 1em;
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
|
|
|
|
372 |
}
|
373 |
|
374 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .skip-button,
|
@@ -376,12 +438,52 @@
|
|
376 |
margin-left: 10px;
|
377 |
margin-right: 0;
|
378 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button.button-primary,
|
380 |
-
.cartflows-setup .cartflows-setup-actions .button.button-primary
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
opacity: 1;
|
382 |
height: auto;
|
383 |
-
line-height: 2;
|
384 |
padding: 0 1.2em;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
}
|
386 |
|
387 |
.aiosrs-pro-return-to-dashboard {
|
@@ -414,11 +516,16 @@
|
|
414 |
.cartflows-setup-wizard-content input,
|
415 |
.cartflows-setup-content input {
|
416 |
border: 1px solid #f1f1f1;
|
417 |
-
padding:
|
418 |
border-radius: 3px;
|
419 |
font-size: 14px;
|
420 |
}
|
421 |
|
|
|
|
|
|
|
|
|
|
|
422 |
.wp-picker-active .wp-picker-holder {
|
423 |
position: absolute;
|
424 |
z-index: 9;
|
@@ -1122,4 +1229,8 @@
|
|
1122 |
position: absolute;
|
1123 |
width: 1px;
|
1124 |
word-wrap: normal !important;
|
|
|
|
|
|
|
|
|
1125 |
}
|
30 |
0 0 2px 1px rgba(30, 140, 190, .8);
|
31 |
}
|
32 |
|
33 |
+
*, :after, :before {
|
34 |
+
box-sizing: border-box;
|
35 |
+
}
|
36 |
+
|
37 |
.ie8 a:focus {
|
38 |
outline: #5b9dd9 solid 1px;
|
39 |
}
|
53 |
|
54 |
p, li, dd, dt {
|
55 |
padding-bottom: 2px;
|
56 |
+
font-size: 15px;
|
57 |
line-height: 1.5;
|
58 |
}
|
59 |
|
173 |
.cartflows-setup-wizard-steps li:before,
|
174 |
.cartflows-setup-steps li:before {
|
175 |
content: "";
|
176 |
+
border: 7px solid #ccc;
|
177 |
border-radius: 100%;
|
178 |
+
width: 7px;
|
179 |
+
height: 7px;
|
180 |
position: absolute;
|
181 |
bottom: 0;
|
182 |
left: 50%;
|
185 |
background: #fff
|
186 |
}
|
187 |
|
188 |
+
.cartflows-setup-wizard-steps li.active:after,
|
189 |
+
.cartflows-setup-steps li.active:after {
|
190 |
+
content: "";
|
191 |
+
border: 2px solid #fff;
|
192 |
+
border-radius: 100%;
|
193 |
+
width: 2px;
|
194 |
+
height: 2px;
|
195 |
+
position: absolute;
|
196 |
+
bottom: 0;
|
197 |
+
left: 50%;
|
198 |
+
margin-left: -1px;
|
199 |
+
margin-bottom: -3px;
|
200 |
+
background: #fff;
|
201 |
+
}
|
202 |
+
|
203 |
+
.cartflows-setup-wizard-steps li.done:after,
|
204 |
+
.cartflows-setup-steps li.done:after {
|
205 |
+
content: "\f147";
|
206 |
+
width: auto;
|
207 |
+
height: auto;
|
208 |
+
position: absolute;
|
209 |
+
bottom: -12px;
|
210 |
+
color: #fff;
|
211 |
+
left: 50%;
|
212 |
+
margin-left: -7px;
|
213 |
+
font-family: dashicons;
|
214 |
+
margin-bottom: 0;
|
215 |
+
}
|
216 |
+
|
217 |
.cartflows-setup-wizard-steps li.active,
|
218 |
.cartflows-setup-steps li.active {
|
219 |
+
border-color: #f16334;
|
220 |
+
color: #f16334
|
221 |
}
|
222 |
|
223 |
.cartflows-setup-wizard-steps li.active:before,
|
224 |
.cartflows-setup-steps li.active:before {
|
225 |
+
border-color: #f16334
|
226 |
}
|
227 |
|
228 |
.cartflows-setup-wizard-steps li.done,
|
229 |
.cartflows-setup-steps li.done {
|
230 |
+
border-color: #f16334;
|
231 |
+
color: #f16334
|
232 |
}
|
233 |
|
234 |
.cartflows-setup-wizard-steps li.done:before,
|
235 |
.cartflows-setup-steps li.done:before {
|
236 |
+
border-color: #f16334;
|
237 |
+
background: #f16334
|
238 |
}
|
239 |
|
240 |
.cartflows-setup-wizard-content a,
|
241 |
.cartflows-setup-content a {
|
242 |
+
color: #f16334
|
243 |
}
|
244 |
|
245 |
.cartflows-setup-wizard-content a:focus,
|
259 |
zoom: 1
|
260 |
}
|
261 |
|
262 |
+
.cartflows-setup .cartflows-setup-message{
|
263 |
+
background: #f5f5f5;
|
264 |
+
padding: 25px;
|
265 |
+
}
|
266 |
+
|
267 |
+
.cartflows-setup .cartflows-setup-extra-notice
|
268 |
+
{
|
269 |
+
text-align: center;
|
270 |
+
font-size: 11px;
|
271 |
+
margin: 10px auto 0px 0px;
|
272 |
+
}
|
273 |
+
|
274 |
+
.cartflows-setup .cartflows-setup-extra-notice span,
|
275 |
+
.cartflows-setup .cartflows-setup-extra-notice a{
|
276 |
+
color: #ccc;
|
277 |
+
}
|
278 |
+
|
279 |
+
.cartflows-setup .cartflows-setup-extra-notice a{
|
280 |
+
text-decoration: underline;
|
281 |
+
}
|
282 |
+
|
283 |
+
.cartflows-setup .cartflows-setup-message .cartflows-setup-message-title {
|
284 |
+
color: #696767;
|
285 |
+
font-weight: 600;
|
286 |
+
margin: 10px auto;
|
287 |
+
}
|
288 |
+
|
289 |
.cartflows-setup-wizard-content h1,
|
290 |
.cartflows-setup-content h1,
|
291 |
.cartflows-setup-wizard-content h2,
|
395 |
transform: rotate(0deg);
|
396 |
}
|
397 |
100% {
|
398 |
+
-webkit-transform: rotate(359deg);
|
399 |
+
transform: rotate(359deg);
|
400 |
}
|
401 |
}
|
402 |
|
406 |
transform: rotate(0deg);
|
407 |
}
|
408 |
100% {
|
409 |
+
-webkit-transform: rotate(359deg);
|
410 |
+
transform: rotate(359deg);
|
411 |
}
|
412 |
}
|
413 |
|
423 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button,
|
424 |
.cartflows-setup .cartflows-setup-actions .button {
|
425 |
font-size: 1em;
|
426 |
+
padding: .5em 1em;
|
427 |
+
line-height: 1em;
|
428 |
+
margin-right: 0;
|
429 |
+
margin-bottom: 0;
|
430 |
+
height: auto;
|
431 |
+
border-radius: 2px;
|
432 |
+
text-shadow: none;
|
433 |
+
box-shadow: none;
|
434 |
}
|
435 |
|
436 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .skip-button,
|
438 |
margin-left: 10px;
|
439 |
margin-right: 0;
|
440 |
}
|
441 |
+
|
442 |
+
.cartflows-setup .button.button-next{
|
443 |
+
margin-right: 10px;
|
444 |
+
}
|
445 |
+
|
446 |
+
.wp-core-ui.cartflows-setup .button.button-large{
|
447 |
+
border-color: #ccc;
|
448 |
+
opacity: 1;
|
449 |
+
height: auto;
|
450 |
+
line-height: 2.5;
|
451 |
+
padding: 0 1.2em;
|
452 |
+
}
|
453 |
+
|
454 |
+
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button.button-primary.disabled,
|
455 |
+
.cartflows-setup .cartflows-setup-actions .button.button-primary:disabled,
|
456 |
+
.cartflows-setup .cartflows-setup-actions .button.button-secondary [disabled]{
|
457 |
+
background: rgb(241, 99, 52, 0.8) !important;
|
458 |
+
border-color: rgb(241, 99, 52, 0.8) !important;
|
459 |
+
color: #fff !important;
|
460 |
+
}
|
461 |
+
|
462 |
.cartflows-setup-wizard .cartflows-setup-wizard-actions .button.button-primary,
|
463 |
+
.cartflows-setup .cartflows-setup-actions .button.button-primary,
|
464 |
+
.cartflows-setup .cartflows-setup-actions .button.button-secondary,
|
465 |
+
.cartflows-setup .cartflows-setup-actions .button-primary.active,
|
466 |
+
.cartflows-setup .cartflows-setup-actions .button-primary.active:hover,
|
467 |
+
.cartflows-setup .cartflows-setup-actions .button-primary.active:focus{
|
468 |
+
background: #f16334;
|
469 |
+
border-color: #f16334;
|
470 |
opacity: 1;
|
471 |
height: auto;
|
472 |
+
line-height: 2.5;
|
473 |
padding: 0 1.2em;
|
474 |
+
-webkit-box-shadow: none;
|
475 |
+
-moz-box-shadow: none;
|
476 |
+
box-shadow: none;
|
477 |
+
transform: translateY(0px);
|
478 |
+
}
|
479 |
+
|
480 |
+
.wp-core-ui.cartflows-setup .button.button-primary.button-hero,
|
481 |
+
.wp-core-ui.cartflows-setup .button.button-primary.button-hero:active{
|
482 |
+
box-shadow: 0 2px 0 #f16334;
|
483 |
+
background: #f16334;
|
484 |
+
border-color: #f16334;
|
485 |
+
text-shadow: none;
|
486 |
+
transform: translate(0px);
|
487 |
}
|
488 |
|
489 |
.aiosrs-pro-return-to-dashboard {
|
516 |
.cartflows-setup-wizard-content input,
|
517 |
.cartflows-setup-content input {
|
518 |
border: 1px solid #f1f1f1;
|
519 |
+
padding: 1em;
|
520 |
border-radius: 3px;
|
521 |
font-size: 14px;
|
522 |
}
|
523 |
|
524 |
+
.cartflows-setup .cartflows-setup-message input{
|
525 |
+
width: 100%;
|
526 |
+
height: 45px;
|
527 |
+
}
|
528 |
+
|
529 |
.wp-picker-active .wp-picker-holder {
|
530 |
position: absolute;
|
531 |
z-index: 9;
|
1229 |
position: absolute;
|
1230 |
width: 1px;
|
1231 |
word-wrap: normal !important;
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
input.wcf-error{
|
1235 |
+
border: 1px solid #ff0000;
|
1236 |
}
|
admin/assets/js/global-admin.js
CHANGED
@@ -100,6 +100,17 @@
|
|
100 |
|
101 |
}
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
$( document ).ready(function() {
|
104 |
//alert("Before Stattement");
|
105 |
$( '#field-wcf-shortcode' ).appendTo( '#wcf-checkout-settings .hndle span' );
|
@@ -113,6 +124,8 @@
|
|
113 |
wcf_prevent_toggle_for_shortcode();
|
114 |
|
115 |
add_tool_tip_msg();
|
|
|
|
|
116 |
|
117 |
});
|
118 |
|
100 |
|
101 |
}
|
102 |
|
103 |
+
function wcf_toggle_post_update() {
|
104 |
+
|
105 |
+
if ( 'undefined' === typeof cartflows_woo ) {
|
106 |
+
return;
|
107 |
+
}
|
108 |
+
|
109 |
+
if( ! cartflows_woo.show_update_post ) {
|
110 |
+
$("#submitdiv").hide();
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
$( document ).ready(function() {
|
115 |
//alert("Before Stattement");
|
116 |
$( '#field-wcf-shortcode' ).appendTo( '#wcf-checkout-settings .hndle span' );
|
124 |
wcf_prevent_toggle_for_shortcode();
|
125 |
|
126 |
add_tool_tip_msg();
|
127 |
+
|
128 |
+
wcf_toggle_post_update();
|
129 |
|
130 |
});
|
131 |
|
admin/assets/js/setup-wizard.js
CHANGED
@@ -10,10 +10,53 @@
|
|
10 |
* Bind
|
11 |
*/
|
12 |
_bind: function() {
|
13 |
-
$( document ).on('click', '.wcf-install-plugins', CartFlowsWizard._installNow);
|
|
|
14 |
$( document ).on('wp-plugin-installing' , CartFlowsWizard._pluginInstalling);
|
15 |
$( document ).on('wp-plugin-install-error' , CartFlowsWizard._installError);
|
16 |
$( document ).on('wp-plugin-install-success' , CartFlowsWizard._installSuccess);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
},
|
18 |
|
19 |
/**
|
@@ -31,7 +74,7 @@
|
|
31 |
event.preventDefault();
|
32 |
console.log( 'Install Error!' );
|
33 |
|
34 |
-
var redirect_link = $( '.
|
35 |
console.log( redirect_link );
|
36 |
if( '' !== redirect_link ) {
|
37 |
window.location = redirect_link;
|
@@ -42,20 +85,29 @@
|
|
42 |
/**
|
43 |
* Install Success
|
44 |
*/
|
45 |
-
_installSuccess: function(event, args) {
|
46 |
event.preventDefault();
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
_activatePlugin: function() {
|
52 |
-
var plugin_slug = $( '.page-builder-list option:selected' ).data( 'slug' ) || '',
|
53 |
-
plugin_init = $( '.page-builder-list option:selected' ).data( 'init' ) || '',
|
54 |
-
redirect_link = $( '.page-builder-list' ).data('redirect-link') || '';
|
55 |
|
56 |
console.log( plugin_slug );
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
$.ajax({
|
61 |
url : ajaxurl,
|
@@ -64,14 +116,13 @@
|
|
64 |
action : 'page_builder_step_save',
|
65 |
page_builder : plugin_slug,
|
66 |
plugin_init : plugin_init,
|
67 |
-
|
|
|
68 |
},
|
69 |
})
|
70 |
-
.done(function(
|
71 |
-
|
72 |
-
|
73 |
-
if( data.success ) {
|
74 |
-
if( '' !== redirect_link ) {
|
75 |
window.location = redirect_link;
|
76 |
}
|
77 |
}
|
@@ -95,7 +146,8 @@
|
|
95 |
$document = $(document),
|
96 |
plugin_slug = $( '.page-builder-list option:selected' ).data( 'slug' ) || '',
|
97 |
install = $( '.page-builder-list option:selected' ).data( 'install' ) || 'no',
|
98 |
-
plugin_init = $( '.page-builder-list option:selected' ).data( 'init' ) || ''
|
|
|
99 |
|
100 |
if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
|
101 |
return;
|
@@ -104,32 +156,120 @@
|
|
104 |
$button.addClass( 'updating-message' );
|
105 |
|
106 |
if( 'yes' === install ) {
|
107 |
-
CartFlowsWizard._activatePlugin();
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
} else {
|
109 |
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
-
|
114 |
-
wp.updates.requestFilesystemCredentials( event );
|
115 |
|
116 |
-
|
117 |
-
|
118 |
|
119 |
-
$message
|
120 |
-
.removeClass( 'updating-message' )
|
121 |
-
.text( wp.updates.l10n.installNow );
|
122 |
|
123 |
-
|
124 |
-
|
125 |
}
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
}
|
|
|
131 |
|
|
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
},
|
134 |
}
|
135 |
|
10 |
* Bind
|
11 |
*/
|
12 |
_bind: function() {
|
13 |
+
$( document ).on('click', '.wcf-install-plugins', CartFlowsWizard._installNow );
|
14 |
+
$( document ).on('click', '.wcf-install-wc', CartFlowsWizard._installWc );
|
15 |
$( document ).on('wp-plugin-installing' , CartFlowsWizard._pluginInstalling);
|
16 |
$( document ).on('wp-plugin-install-error' , CartFlowsWizard._installError);
|
17 |
$( document ).on('wp-plugin-install-success' , CartFlowsWizard._installSuccess);
|
18 |
+
$( document ).on('click', '.mautic-form-submit', CartFlowsWizard._onMauticSubmit );
|
19 |
+
},
|
20 |
+
|
21 |
+
_onMauticSubmit: function( event ) {
|
22 |
+
|
23 |
+
event.preventDefault();
|
24 |
+
event.stopPropagation();
|
25 |
+
|
26 |
+
var form = $(this).closest('form');
|
27 |
+
var email_field = form.find('#mauticform_input_cartflowsonboarding_enter_your_email');
|
28 |
+
var submit_button = $(this);
|
29 |
+
|
30 |
+
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,14})$/;
|
31 |
+
|
32 |
+
if ( reg.test( email_field.val() ) == false ) {
|
33 |
+
email_field.addClass('wcf-error');
|
34 |
+
return false;
|
35 |
+
} else {
|
36 |
+
email_field.removeClass('wcf-error');
|
37 |
+
}
|
38 |
+
|
39 |
+
submit_button.attr( 'disabled', 'disabled' );
|
40 |
+
|
41 |
+
$.ajax({
|
42 |
+
type: "POST",
|
43 |
+
url: form.attr('action'),
|
44 |
+
data: form.serialize(),
|
45 |
+
// async: false,
|
46 |
+
headers: {'X-Requested-With': 'XMLHttpRequest'},
|
47 |
+
success: function() {
|
48 |
+
// callback code here
|
49 |
+
console.log('in success');
|
50 |
+
var redirect_link = $( '.wcf-redirect-link' ).data('redirect-link') || '';
|
51 |
+
window.location = redirect_link;
|
52 |
+
},
|
53 |
+
error: function( ) {
|
54 |
+
console.log('in error');
|
55 |
+
}
|
56 |
+
});
|
57 |
+
|
58 |
+
/* Do not execute anything here */
|
59 |
+
|
60 |
},
|
61 |
|
62 |
/**
|
74 |
event.preventDefault();
|
75 |
console.log( 'Install Error!' );
|
76 |
|
77 |
+
var redirect_link = $( '.wcf-redirect-link' ).data('redirect-link') || '';
|
78 |
console.log( redirect_link );
|
79 |
if( '' !== redirect_link ) {
|
80 |
window.location = redirect_link;
|
85 |
/**
|
86 |
* Install Success
|
87 |
*/
|
88 |
+
_installSuccess: function( event, args ) {
|
89 |
event.preventDefault();
|
90 |
|
91 |
+
var plugin_init = args.slug + "/" + args.slug + ".php";
|
92 |
+
var plugin_slug = args.slug;
|
|
|
|
|
|
|
|
|
|
|
93 |
|
94 |
console.log( plugin_slug );
|
95 |
+
|
96 |
+
if ( 'woocommerce' === plugin_slug ) {
|
97 |
+
return;
|
98 |
+
}
|
99 |
+
|
100 |
+
if( 'woo-cart-abandonment-recovery' === plugin_slug ) {
|
101 |
+
CartFlowsWizard._activateWc();
|
102 |
+
return;
|
103 |
+
}
|
104 |
+
|
105 |
+
CartFlowsWizard._activatePlugin( plugin_init, plugin_slug );
|
106 |
+
},
|
107 |
+
|
108 |
+
_activatePlugin: function( plugin_init, plugin_slug ) {
|
109 |
+
var redirect_link = $( '.wcf-redirect-link' ).data('redirect-link') || '';
|
110 |
+
var save_builder_option = ( '1' == $( "#save-pb-option" ).val() ) || false;
|
111 |
|
112 |
$.ajax({
|
113 |
url : ajaxurl,
|
116 |
action : 'page_builder_step_save',
|
117 |
page_builder : plugin_slug,
|
118 |
plugin_init : plugin_init,
|
119 |
+
save_builder_option : save_builder_option,
|
120 |
+
security : cartflows_setup_vars.wcf_page_builder_step_save_nonce
|
121 |
},
|
122 |
})
|
123 |
+
.done(function( response ) {
|
124 |
+
if( response.success ) {
|
125 |
+
if ( '' !== redirect_link ) {
|
|
|
|
|
126 |
window.location = redirect_link;
|
127 |
}
|
128 |
}
|
146 |
$document = $(document),
|
147 |
plugin_slug = $( '.page-builder-list option:selected' ).data( 'slug' ) || '',
|
148 |
install = $( '.page-builder-list option:selected' ).data( 'install' ) || 'no',
|
149 |
+
plugin_init = $( '.page-builder-list option:selected' ).data( 'init' ) || '',
|
150 |
+
redirect_link = $( '.wcf-redirect-link' ).data('redirect-link') || '';
|
151 |
|
152 |
if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
|
153 |
return;
|
156 |
$button.addClass( 'updating-message' );
|
157 |
|
158 |
if( 'yes' === install ) {
|
159 |
+
CartFlowsWizard._activatePlugin( plugin_init, plugin_slug );
|
160 |
+
} else if( 'no' === install ) {
|
161 |
+
|
162 |
+
console.log( 'plugin_slug ' + plugin_slug );
|
163 |
+
|
164 |
+
CartFlowsWizard._installPlugin( plugin_slug );
|
165 |
+
|
166 |
} else {
|
167 |
|
168 |
+
$.ajax({
|
169 |
+
url : ajaxurl,
|
170 |
+
method : 'POST',
|
171 |
+
data : {
|
172 |
+
action : 'page_builder_save_option',
|
173 |
+
page_builder : plugin_slug
|
174 |
+
},
|
175 |
+
})
|
176 |
+
.done(function( data ) {
|
177 |
+
|
178 |
+
if( data.success ) {
|
179 |
+
if( '' !== redirect_link ) {
|
180 |
+
window.location = redirect_link;
|
181 |
+
}
|
182 |
+
}
|
183 |
+
})
|
184 |
+
.fail(function() {
|
185 |
+
console.log("error");
|
186 |
+
})
|
187 |
+
.always(function() {
|
188 |
+
console.log("complete");
|
189 |
+
});
|
190 |
+
}
|
191 |
+
},
|
192 |
+
|
193 |
+
_installWc: function( event ) {
|
194 |
+
|
195 |
+
event.preventDefault();
|
196 |
+
|
197 |
+
var $button = $(this);
|
198 |
|
199 |
+
if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
|
200 |
+
return;
|
201 |
+
}
|
202 |
+
|
203 |
+
$button.addClass( 'updating-message' );
|
204 |
+
var redirect_link = $( '.wcf-redirect-link' ).data('redirect-link') || '';
|
205 |
|
206 |
+
if( $( '.wcf-install-wc-input' ).prop( "checked" ) == true ) {
|
|
|
207 |
|
208 |
+
var woo_installed = $( '.wcf-install-wc-input' ).data('woo-install');
|
209 |
+
var wcf_ca_installed = $( '.wcf-install-wc-input' ).data('wcf-ca-install');
|
210 |
|
|
|
|
|
|
|
211 |
|
212 |
+
if( 'yes' === woo_installed && 'yes' === wcf_ca_installed ) {
|
213 |
+
CartFlowsWizard._activateWc();
|
214 |
}
|
215 |
|
216 |
+
if( 'no' == woo_installed ) {
|
217 |
+
CartFlowsWizard._installPlugin( 'woocommerce' );
|
218 |
+
}
|
219 |
+
|
220 |
+
if( 'no' == wcf_ca_installed ) {
|
221 |
+
CartFlowsWizard._installPlugin( 'woo-cart-abandonment-recovery' );
|
222 |
+
}
|
223 |
+
} else {
|
224 |
+
window.location = redirect_link;
|
225 |
}
|
226 |
+
},
|
227 |
|
228 |
+
_activateWc: function() {
|
229 |
|
230 |
+
var redirect_link = $( '.wcf-redirect-link' ).data('redirect-link') || '';
|
231 |
+
|
232 |
+
$.ajax({
|
233 |
+
url : ajaxurl,
|
234 |
+
method : 'POST',
|
235 |
+
data : {
|
236 |
+
action : 'wcf_activate_wc_plugins',
|
237 |
+
security : cartflows_setup_vars.wcf_wc_plugins_activate_nonce
|
238 |
+
},
|
239 |
+
})
|
240 |
+
.done(function( response ) {
|
241 |
+
|
242 |
+
if( response.success && '' !== redirect_link ) {
|
243 |
+
window.location = redirect_link;
|
244 |
+
}
|
245 |
+
})
|
246 |
+
.fail(function() {
|
247 |
+
console.log("error");
|
248 |
+
})
|
249 |
+
.always(function() {
|
250 |
+
console.log("complete");
|
251 |
+
});
|
252 |
+
},
|
253 |
+
|
254 |
+
_installPlugin: function( plugin_slug ) {
|
255 |
+
|
256 |
+
if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
|
257 |
+
wp.updates.requestFilesystemCredentials( event );
|
258 |
+
|
259 |
+
$document.on( 'credential-modal-cancel', function() {
|
260 |
+
var $message = $( '.install-now.updating-message' );
|
261 |
+
|
262 |
+
$message
|
263 |
+
.removeClass( 'updating-message' )
|
264 |
+
.text( wp.updates.l10n.installNow );
|
265 |
+
|
266 |
+
wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
|
267 |
+
} );
|
268 |
+
}
|
269 |
+
|
270 |
+
wp.updates.installPlugin( {
|
271 |
+
slug: plugin_slug
|
272 |
+
} );
|
273 |
},
|
274 |
}
|
275 |
|
admin/meta-assets/js/admin-edit.js
CHANGED
@@ -34,6 +34,10 @@
|
|
34 |
|
35 |
_set_font_weigths: function() {
|
36 |
|
|
|
|
|
|
|
|
|
37 |
$('.wcf-field-font-family').select2();
|
38 |
|
39 |
var google_url = '';
|
34 |
|
35 |
_set_font_weigths: function() {
|
36 |
|
37 |
+
if ( 'function' !== typeof $('.wcf-field-font-family').select2 ){
|
38 |
+
return;
|
39 |
+
}
|
40 |
+
|
41 |
$('.wcf-field-font-family').select2();
|
42 |
|
43 |
var google_url = '';
|
assets/css/checkout-template-rtl.css
CHANGED
@@ -625,6 +625,10 @@
|
|
625 |
position: relative;
|
626 |
}
|
627 |
|
|
|
|
|
|
|
|
|
628 |
.wcf-embed-checkout-form table.shop_table {
|
629 |
border:none;
|
630 |
border-bottom: 0;
|
625 |
position: relative;
|
626 |
}
|
627 |
|
628 |
+
.wcf-embed-checkout-form .woocommerce form .woocommerce-account-fields .form-row{
|
629 |
+
padding: 0px;
|
630 |
+
}
|
631 |
+
|
632 |
.wcf-embed-checkout-form table.shop_table {
|
633 |
border:none;
|
634 |
border-bottom: 0;
|
assets/css/checkout-template.css
CHANGED
@@ -625,6 +625,10 @@
|
|
625 |
position: relative;
|
626 |
}
|
627 |
|
|
|
|
|
|
|
|
|
628 |
.wcf-embed-checkout-form table.shop_table {
|
629 |
border:none;
|
630 |
border-bottom: 0;
|
625 |
position: relative;
|
626 |
}
|
627 |
|
628 |
+
.wcf-embed-checkout-form .woocommerce form .woocommerce-account-fields .form-row{
|
629 |
+
padding: 0px;
|
630 |
+
}
|
631 |
+
|
632 |
.wcf-embed-checkout-form table.shop_table {
|
633 |
border:none;
|
634 |
border-bottom: 0;
|
assets/css/frontend-rtl.css
CHANGED
@@ -885,25 +885,34 @@ body.cartflows-default {
|
|
885 |
|
886 |
.woocommerce-order ul.order_details,
|
887 |
.woocommerce-order .woocommerce-customer-details,
|
888 |
-
.woocommerce-order .woocommerce-order-details
|
|
|
|
|
889 |
margin: 0 0 2em;
|
890 |
-webkit-border-radius: 3px;
|
891 |
border-radius: 3px;
|
892 |
width: 100%;
|
893 |
display: block;
|
894 |
}
|
|
|
|
|
|
|
895 |
|
896 |
/* Section Background & Padding */
|
897 |
.woocommerce-order ul.order_details,
|
898 |
.woocommerce-order .woocommerce-customer-details,
|
899 |
-
.woocommerce-order .woocommerce-order-details
|
|
|
|
|
900 |
background: #f1f1f1;
|
901 |
padding: 1.5em 2.5em;
|
902 |
}
|
903 |
|
904 |
.woocommerce-order h2.woocommerce-column__title,
|
905 |
.woocommerce-order h2.woocommerce-order-details__title,
|
906 |
-
.woocommerce-order .woocommerce-thankyou-order-received
|
|
|
|
|
907 |
padding: 0.8em 0;
|
908 |
margin: 0 0 0.5em;
|
909 |
font-size: 1.5em;
|
@@ -918,7 +927,8 @@ body.cartflows-default {
|
|
918 |
}
|
919 |
|
920 |
/* Order Details Form */
|
921 |
-
.woocommerce-order-details table.shop_table
|
|
|
922 |
border:none;
|
923 |
border-bottom: 0;
|
924 |
background-color: inherit;
|
@@ -936,9 +946,10 @@ body.cartflows-default {
|
|
936 |
padding: 0;
|
937 |
list-style: none;
|
938 |
}
|
939 |
-
.woocommerce-order-details table.shop_table th
|
|
|
940 |
border: none;
|
941 |
-
font-weight:
|
942 |
padding: 9px 0px;
|
943 |
line-height: 1.2em;
|
944 |
}
|
885 |
|
886 |
.woocommerce-order ul.order_details,
|
887 |
.woocommerce-order .woocommerce-customer-details,
|
888 |
+
.woocommerce-order .woocommerce-order-details,
|
889 |
+
.woocommerce-order .woocommerce-order-downloads,
|
890 |
+
.woocommerce-order .woocommerce-bacs-bank-details {
|
891 |
margin: 0 0 2em;
|
892 |
-webkit-border-radius: 3px;
|
893 |
border-radius: 3px;
|
894 |
width: 100%;
|
895 |
display: block;
|
896 |
}
|
897 |
+
.woocommerce-order .woocommerce-bacs-bank-details ul.bacs_details{
|
898 |
+
padding: 0px;
|
899 |
+
}
|
900 |
|
901 |
/* Section Background & Padding */
|
902 |
.woocommerce-order ul.order_details,
|
903 |
.woocommerce-order .woocommerce-customer-details,
|
904 |
+
.woocommerce-order .woocommerce-order-details,
|
905 |
+
.woocommerce-order .woocommerce-order-downloads,
|
906 |
+
.woocommerce-order .woocommerce-bacs-bank-details {
|
907 |
background: #f1f1f1;
|
908 |
padding: 1.5em 2.5em;
|
909 |
}
|
910 |
|
911 |
.woocommerce-order h2.woocommerce-column__title,
|
912 |
.woocommerce-order h2.woocommerce-order-details__title,
|
913 |
+
.woocommerce-order .woocommerce-thankyou-order-received,
|
914 |
+
.woocommerce-order .woocommerce-order-downloads__title,
|
915 |
+
.woocommerce-order h2.wc-bacs-bank-details-heading {
|
916 |
padding: 0.8em 0;
|
917 |
margin: 0 0 0.5em;
|
918 |
font-size: 1.5em;
|
927 |
}
|
928 |
|
929 |
/* Order Details Form */
|
930 |
+
.woocommerce-order-details table.shop_table,
|
931 |
+
.woocommerce-order-downloads table.shop_table {
|
932 |
border:none;
|
933 |
border-bottom: 0;
|
934 |
background-color: inherit;
|
946 |
padding: 0;
|
947 |
list-style: none;
|
948 |
}
|
949 |
+
.woocommerce-order-details table.shop_table th,
|
950 |
+
.woocommerce-order-downloads table.shop_table th{
|
951 |
border: none;
|
952 |
+
font-weight: 600;
|
953 |
padding: 9px 0px;
|
954 |
line-height: 1.2em;
|
955 |
}
|
assets/css/frontend.css
CHANGED
@@ -885,25 +885,34 @@ body.cartflows-default {
|
|
885 |
|
886 |
.woocommerce-order ul.order_details,
|
887 |
.woocommerce-order .woocommerce-customer-details,
|
888 |
-
.woocommerce-order .woocommerce-order-details
|
|
|
|
|
889 |
margin: 0 0 2em;
|
890 |
-webkit-border-radius: 3px;
|
891 |
border-radius: 3px;
|
892 |
width: 100%;
|
893 |
display: block;
|
894 |
}
|
|
|
|
|
|
|
895 |
|
896 |
/* Section Background & Padding */
|
897 |
.woocommerce-order ul.order_details,
|
898 |
.woocommerce-order .woocommerce-customer-details,
|
899 |
-
.woocommerce-order .woocommerce-order-details
|
|
|
|
|
900 |
background: #f1f1f1;
|
901 |
padding: 1.5em 2.5em;
|
902 |
}
|
903 |
|
904 |
.woocommerce-order h2.woocommerce-column__title,
|
905 |
.woocommerce-order h2.woocommerce-order-details__title,
|
906 |
-
.woocommerce-order .woocommerce-thankyou-order-received
|
|
|
|
|
907 |
padding: 0.8em 0;
|
908 |
margin: 0 0 0.5em;
|
909 |
font-size: 1.5em;
|
@@ -918,7 +927,8 @@ body.cartflows-default {
|
|
918 |
}
|
919 |
|
920 |
/* Order Details Form */
|
921 |
-
.woocommerce-order-details table.shop_table
|
|
|
922 |
border:none;
|
923 |
border-bottom: 0;
|
924 |
background-color: inherit;
|
@@ -936,9 +946,10 @@ body.cartflows-default {
|
|
936 |
padding: 0;
|
937 |
list-style: none;
|
938 |
}
|
939 |
-
.woocommerce-order-details table.shop_table th
|
|
|
940 |
border: none;
|
941 |
-
font-weight:
|
942 |
padding: 9px 0px;
|
943 |
line-height: 1.2em;
|
944 |
}
|
885 |
|
886 |
.woocommerce-order ul.order_details,
|
887 |
.woocommerce-order .woocommerce-customer-details,
|
888 |
+
.woocommerce-order .woocommerce-order-details,
|
889 |
+
.woocommerce-order .woocommerce-order-downloads,
|
890 |
+
.woocommerce-order .woocommerce-bacs-bank-details {
|
891 |
margin: 0 0 2em;
|
892 |
-webkit-border-radius: 3px;
|
893 |
border-radius: 3px;
|
894 |
width: 100%;
|
895 |
display: block;
|
896 |
}
|
897 |
+
.woocommerce-order .woocommerce-bacs-bank-details ul.bacs_details{
|
898 |
+
padding: 0px;
|
899 |
+
}
|
900 |
|
901 |
/* Section Background & Padding */
|
902 |
.woocommerce-order ul.order_details,
|
903 |
.woocommerce-order .woocommerce-customer-details,
|
904 |
+
.woocommerce-order .woocommerce-order-details,
|
905 |
+
.woocommerce-order .woocommerce-order-downloads,
|
906 |
+
.woocommerce-order .woocommerce-bacs-bank-details {
|
907 |
background: #f1f1f1;
|
908 |
padding: 1.5em 2.5em;
|
909 |
}
|
910 |
|
911 |
.woocommerce-order h2.woocommerce-column__title,
|
912 |
.woocommerce-order h2.woocommerce-order-details__title,
|
913 |
+
.woocommerce-order .woocommerce-thankyou-order-received,
|
914 |
+
.woocommerce-order .woocommerce-order-downloads__title,
|
915 |
+
.woocommerce-order h2.wc-bacs-bank-details-heading {
|
916 |
padding: 0.8em 0;
|
917 |
margin: 0 0 0.5em;
|
918 |
font-size: 1.5em;
|
927 |
}
|
928 |
|
929 |
/* Order Details Form */
|
930 |
+
.woocommerce-order-details table.shop_table,
|
931 |
+
.woocommerce-order-downloads table.shop_table {
|
932 |
border:none;
|
933 |
border-bottom: 0;
|
934 |
background-color: inherit;
|
946 |
padding: 0;
|
947 |
list-style: none;
|
948 |
}
|
949 |
+
.woocommerce-order-details table.shop_table th,
|
950 |
+
.woocommerce-order-downloads table.shop_table th{
|
951 |
border: none;
|
952 |
+
font-weight: 600;
|
953 |
padding: 9px 0px;
|
954 |
line-height: 1.2em;
|
955 |
}
|
assets/css/import-rtl.css
CHANGED
@@ -47,29 +47,40 @@
|
|
47 |
}
|
48 |
|
49 |
.template .notice {
|
50 |
-
padding: .
|
51 |
-
background: rgba(0,0,0,.
|
52 |
color: #fff;
|
53 |
-
font-weight:
|
54 |
-
border:
|
55 |
-
font-size:
|
56 |
text-decoration: none;
|
57 |
position: absolute;
|
58 |
width: 100%;
|
59 |
/* height: 100%; */
|
60 |
vertical-align: middle;
|
61 |
-
|
62 |
-
|
63 |
-
-
|
64 |
-
transform: translateY(
|
|
|
65 |
left: 0%;
|
66 |
right: 0%;
|
67 |
z-index: 4;
|
68 |
text-align: center;
|
69 |
-webkit-border-radius: 3px;
|
70 |
-
border-radius:
|
71 |
-webkit-transition: opacity .1s ease-in-out;
|
72 |
transition: opacity .1s ease-in-out;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
74 |
|
75 |
#wcf_create_notice{
|
@@ -551,8 +562,6 @@ div#TB_window {
|
|
551 |
float: none;
|
552 |
position: absolute;
|
553 |
top: 40%;
|
554 |
-
/*left: 50%;
|
555 |
-
transform: translate(-50%,-40%);*/
|
556 |
}
|
557 |
#wcf-scratch-steps-categories {
|
558 |
display: inline-block;
|
@@ -1051,3 +1060,21 @@ html.wcf-popup-open{
|
|
1051 |
.cartflows-website-unreachable {
|
1052 |
padding: 1em 2em;
|
1053 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
|
49 |
.template .notice {
|
50 |
+
padding: .6em;
|
51 |
+
background: rgba(0,0,0,.8);
|
52 |
color: #fff;
|
53 |
+
font-weight: 400;
|
54 |
+
border: none;
|
55 |
+
font-size: 13px;
|
56 |
text-decoration: none;
|
57 |
position: absolute;
|
58 |
width: 100%;
|
59 |
/* height: 100%; */
|
60 |
vertical-align: middle;
|
61 |
+
bottom: 0%;
|
62 |
+
margin: 0px;
|
63 |
+
-webkit-transform: translateY(0%);
|
64 |
+
-ms-transform: translateY(0%);
|
65 |
+
transform: translateY(0%);
|
66 |
left: 0%;
|
67 |
right: 0%;
|
68 |
z-index: 4;
|
69 |
text-align: center;
|
70 |
-webkit-border-radius: 3px;
|
71 |
+
border-radius: 0px;
|
72 |
-webkit-transition: opacity .1s ease-in-out;
|
73 |
transition: opacity .1s ease-in-out;
|
74 |
+
-webkit-font-smoothing: antialiased;
|
75 |
+
}
|
76 |
+
|
77 |
+
.template .notice a{
|
78 |
+
color: #f16334;
|
79 |
+
}
|
80 |
+
|
81 |
+
.template .notice p{
|
82 |
+
padding: 0px;
|
83 |
+
margin: 0px;
|
84 |
}
|
85 |
|
86 |
#wcf_create_notice{
|
562 |
float: none;
|
563 |
position: absolute;
|
564 |
top: 40%;
|
|
|
|
|
565 |
}
|
566 |
#wcf-scratch-steps-categories {
|
567 |
display: inline-block;
|
1060 |
.cartflows-website-unreachable {
|
1061 |
padding: 1em 2em;
|
1062 |
}
|
1063 |
+
.wcf-notice-wrap{
|
1064 |
+
margin-top: 20px;
|
1065 |
+
font-size: 15px;
|
1066 |
+
color: #ff0000;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
.wcf-activate-wc{
|
1070 |
+
text-decoration: none;
|
1071 |
+
}
|
1072 |
+
.wcf-activate-wc.button{
|
1073 |
+
border: none;
|
1074 |
+
-webkit-box-shadow: none;
|
1075 |
+
box-shadow: none;
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
.wcf-hidden{
|
1079 |
+
display: none;
|
1080 |
+
}
|
assets/css/import.css
CHANGED
@@ -47,29 +47,40 @@
|
|
47 |
}
|
48 |
|
49 |
.template .notice {
|
50 |
-
padding: .
|
51 |
-
background: rgba(0,0,0,.
|
52 |
color: #fff;
|
53 |
-
font-weight:
|
54 |
-
border:
|
55 |
-
font-size:
|
56 |
text-decoration: none;
|
57 |
position: absolute;
|
58 |
width: 100%;
|
59 |
/* height: 100%; */
|
60 |
vertical-align: middle;
|
61 |
-
|
62 |
-
|
63 |
-
-
|
64 |
-
transform: translateY(
|
|
|
65 |
right: 0%;
|
66 |
left: 0%;
|
67 |
z-index: 4;
|
68 |
text-align: center;
|
69 |
-webkit-border-radius: 3px;
|
70 |
-
border-radius:
|
71 |
-webkit-transition: opacity .1s ease-in-out;
|
72 |
transition: opacity .1s ease-in-out;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
74 |
|
75 |
#wcf_create_notice{
|
@@ -551,8 +562,6 @@ div#TB_window {
|
|
551 |
float: none;
|
552 |
position: absolute;
|
553 |
top: 40%;
|
554 |
-
/*left: 50%;
|
555 |
-
transform: translate(-50%,-40%);*/
|
556 |
}
|
557 |
#wcf-scratch-steps-categories {
|
558 |
display: inline-block;
|
@@ -1051,3 +1060,21 @@ html.wcf-popup-open{
|
|
1051 |
.cartflows-website-unreachable {
|
1052 |
padding: 1em 2em;
|
1053 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
|
49 |
.template .notice {
|
50 |
+
padding: .6em;
|
51 |
+
background: rgba(0,0,0,.8);
|
52 |
color: #fff;
|
53 |
+
font-weight: 400;
|
54 |
+
border: none;
|
55 |
+
font-size: 13px;
|
56 |
text-decoration: none;
|
57 |
position: absolute;
|
58 |
width: 100%;
|
59 |
/* height: 100%; */
|
60 |
vertical-align: middle;
|
61 |
+
bottom: 0%;
|
62 |
+
margin: 0px;
|
63 |
+
-webkit-transform: translateY(0%);
|
64 |
+
-ms-transform: translateY(0%);
|
65 |
+
transform: translateY(0%);
|
66 |
right: 0%;
|
67 |
left: 0%;
|
68 |
z-index: 4;
|
69 |
text-align: center;
|
70 |
-webkit-border-radius: 3px;
|
71 |
+
border-radius: 0px;
|
72 |
-webkit-transition: opacity .1s ease-in-out;
|
73 |
transition: opacity .1s ease-in-out;
|
74 |
+
-webkit-font-smoothing: antialiased;
|
75 |
+
}
|
76 |
+
|
77 |
+
.template .notice a{
|
78 |
+
color: #f16334;
|
79 |
+
}
|
80 |
+
|
81 |
+
.template .notice p{
|
82 |
+
padding: 0px;
|
83 |
+
margin: 0px;
|
84 |
}
|
85 |
|
86 |
#wcf_create_notice{
|
562 |
float: none;
|
563 |
position: absolute;
|
564 |
top: 40%;
|
|
|
|
|
565 |
}
|
566 |
#wcf-scratch-steps-categories {
|
567 |
display: inline-block;
|
1060 |
.cartflows-website-unreachable {
|
1061 |
padding: 1em 2em;
|
1062 |
}
|
1063 |
+
.wcf-notice-wrap{
|
1064 |
+
margin-top: 20px;
|
1065 |
+
font-size: 15px;
|
1066 |
+
color: #ff0000;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
.wcf-activate-wc{
|
1070 |
+
text-decoration: none;
|
1071 |
+
}
|
1072 |
+
.wcf-activate-wc.button{
|
1073 |
+
border: none;
|
1074 |
+
-webkit-box-shadow: none;
|
1075 |
+
box-shadow: none;
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
.wcf-hidden{
|
1079 |
+
display: none;
|
1080 |
+
}
|
assets/js/import.js
CHANGED
@@ -95,6 +95,15 @@ var CartFlowsAjaxQueue = (function() {
|
|
95 |
remaining_steps : 0,
|
96 |
remaining_install_plugins : 0,
|
97 |
remaining_active_plugins : 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
|
99 |
/**
|
100 |
* Init
|
@@ -167,6 +176,7 @@ var CartFlowsAjaxQueue = (function() {
|
|
167 |
self.doc.on('click', '#wcf-remote-flow-importer .wcf-page-builder-links a', self._filterFlowPageBuilderClick);
|
168 |
self.doc.on('click', '#wcf-remote-step-importer #wcf-categories .step-type-filter-links a', self._filterBlankStepCategoryClick );
|
169 |
self.doc.on('change', '#wcf-remote-step-importer #wcf-scratch-steps-categories .step-type-filter-links', self._filterBlankStepCategoryChange );
|
|
|
170 |
self.doc.on('click', '#wcf-remote-step-importer .wcf-page-builder-links a', self._filterStepPageBuilderClick );
|
171 |
|
172 |
self.doc.on('click' , '.cartflows-step-import-blank:not(.get-pro)', self._create_blank_step);
|
@@ -191,6 +201,8 @@ var CartFlowsAjaxQueue = (function() {
|
|
191 |
$( document ).on( 'click', '.wcf-popup-close-wrap .close-icon', self._close_template_popup );
|
192 |
|
193 |
$( document ).on('wp-plugin-install-success' , self._installSuccess);
|
|
|
|
|
194 |
},
|
195 |
|
196 |
_install_plugin: function( event ) {
|
@@ -302,6 +314,11 @@ var CartFlowsAjaxQueue = (function() {
|
|
302 |
|
303 |
event.preventDefault();
|
304 |
|
|
|
|
|
|
|
|
|
|
|
305 |
var page_builder_plugins = CartFlowsImportVars.required_plugins[ CartFlowsImportVars.default_page_builder ]['plugins'];
|
306 |
|
307 |
$.each( page_builder_plugins, function( index, plugin ) {
|
@@ -324,7 +341,7 @@ var CartFlowsAjaxQueue = (function() {
|
|
324 |
}
|
325 |
});
|
326 |
}
|
327 |
-
|
328 |
|
329 |
},
|
330 |
|
@@ -494,9 +511,12 @@ var CartFlowsAjaxQueue = (function() {
|
|
494 |
},
|
495 |
|
496 |
_filterBlankStepCategoryChange: function( event ) {
|
|
|
497 |
event.preventDefault();
|
|
|
|
|
498 |
|
499 |
-
var val = $(
|
500 |
if( val ) {
|
501 |
$('.step-type-filter-links').val( val );
|
502 |
$('.step-type-filter-links').find('a').removeClass('current');
|
@@ -506,7 +526,14 @@ var CartFlowsAjaxQueue = (function() {
|
|
506 |
$('.step-type-filter-links').find('option').removeClass('current');
|
507 |
$('.step-type-filter-links').find('option:selected').addClass('current');
|
508 |
|
509 |
-
$step_type = $(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
510 |
|
511 |
if ( 'upsell' === $step_type || 'downsell' === $step_type ) {
|
512 |
$( '.wcf-template-notice' ).show();
|
@@ -566,6 +593,16 @@ var CartFlowsAjaxQueue = (function() {
|
|
566 |
|
567 |
data.current_step_type = step_type;
|
568 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
569 |
var template = wp.template('cartflows-steps-list');
|
570 |
if( parseInt( data.items_count ) ) {
|
571 |
$('#wcf-remote-step-list').html( template( data ) );
|
@@ -743,6 +780,21 @@ var CartFlowsAjaxQueue = (function() {
|
|
743 |
|
744 |
},
|
745 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
746 |
_cache_remote_steps: function() {
|
747 |
|
748 |
var self = CartFlowsImport;
|
@@ -788,6 +840,7 @@ var CartFlowsAjaxQueue = (function() {
|
|
788 |
|
789 |
CartFlowsAPI._api_request( api_post, function( data ) {
|
790 |
|
|
|
791 |
var step_type_response_data = data;
|
792 |
var step_types_count = data.items_count;
|
793 |
|
@@ -795,6 +848,9 @@ var CartFlowsAjaxQueue = (function() {
|
|
795 |
if( data.items ) {
|
796 |
for ( key in data.items ) {
|
797 |
|
|
|
|
|
|
|
798 |
// Add Params for API request.
|
799 |
var api_params = {
|
800 |
licence_args : CartFlowsImportVars.licence_args,
|
@@ -1044,6 +1100,18 @@ var CartFlowsAjaxQueue = (function() {
|
|
1044 |
|
1045 |
CartFlowsAPI._api_request( api_post, function( data ) {
|
1046 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1047 |
var template = wp.template('cartflows-flows-list');
|
1048 |
if( parseInt( data.items_count ) ) {
|
1049 |
$('#wcf-remote-flow-list').html( template( data ) );
|
@@ -1252,7 +1320,7 @@ var CartFlowsAjaxQueue = (function() {
|
|
1252 |
step_count = $('.wcf-step-wrap[data-term-slug="'+step_slug+'"]').length || 1,
|
1253 |
step_custom_title = step_title + ' ' + ( parseInt( step_count ) + 1 );
|
1254 |
|
1255 |
-
$('#wcf-start-from-scratch .wcf-notice-wrap').remove();
|
1256 |
|
1257 |
if( '' === step_type ) {
|
1258 |
$('#wcf-start-from-scratch .inner').append( '<div class="wcf-notice-wrap"><div class="notice notice-info"><p>Please select the step type.</p></div></div>' );
|
@@ -1458,8 +1526,64 @@ var CartFlowsAjaxQueue = (function() {
|
|
1458 |
.addClass('notice notice-warning')
|
1459 |
.removeClass('preview')
|
1460 |
.text( jqXHR.responseText );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1461 |
}
|
1462 |
|
|
|
1463 |
};
|
1464 |
|
1465 |
/**
|
95 |
remaining_steps : 0,
|
96 |
remaining_install_plugins : 0,
|
97 |
remaining_active_plugins : 0,
|
98 |
+
woo_required_steps: [ 'checkout', 'upsell', 'downsell', 'thankyou' ],
|
99 |
+
step_order: [ 'landing', 'checkout', 'upsell', 'downsell', 'thankyou' ],
|
100 |
+
new_step_names: {
|
101 |
+
'landing': 'Landing',
|
102 |
+
'checkout': 'Checkout (Woo)',
|
103 |
+
'upsell': 'Upsell (Woo)',
|
104 |
+
'downsell': 'Downsell (Woo)',
|
105 |
+
'thankyou': 'Thank You (Woo)',
|
106 |
+
},
|
107 |
|
108 |
/**
|
109 |
* Init
|
176 |
self.doc.on('click', '#wcf-remote-flow-importer .wcf-page-builder-links a', self._filterFlowPageBuilderClick);
|
177 |
self.doc.on('click', '#wcf-remote-step-importer #wcf-categories .step-type-filter-links a', self._filterBlankStepCategoryClick );
|
178 |
self.doc.on('change', '#wcf-remote-step-importer #wcf-scratch-steps-categories .step-type-filter-links', self._filterBlankStepCategoryChange );
|
179 |
+
self.doc.on('click', '#wcf-get-started-steps', self._filterBlankStepCategoryChange );
|
180 |
self.doc.on('click', '#wcf-remote-step-importer .wcf-page-builder-links a', self._filterStepPageBuilderClick );
|
181 |
|
182 |
self.doc.on('click' , '.cartflows-step-import-blank:not(.get-pro)', self._create_blank_step);
|
201 |
$( document ).on( 'click', '.wcf-popup-close-wrap .close-icon', self._close_template_popup );
|
202 |
|
203 |
$( document ).on('wp-plugin-install-success' , self._installSuccess);
|
204 |
+
|
205 |
+
$( document ).on( 'click', '.wcf-activate-wc', self._installWc );
|
206 |
},
|
207 |
|
208 |
_install_plugin: function( event ) {
|
314 |
|
315 |
event.preventDefault();
|
316 |
|
317 |
+
if( 'no' === CartFlowsImportVars.is_wc_activated ) {
|
318 |
+
CartFlowsImport._activateWc();
|
319 |
+
}
|
320 |
+
|
321 |
+
|
322 |
var page_builder_plugins = CartFlowsImportVars.required_plugins[ CartFlowsImportVars.default_page_builder ]['plugins'];
|
323 |
|
324 |
$.each( page_builder_plugins, function( index, plugin ) {
|
341 |
}
|
342 |
});
|
343 |
}
|
344 |
+
});
|
345 |
|
346 |
},
|
347 |
|
511 |
},
|
512 |
|
513 |
_filterBlankStepCategoryChange: function( event ) {
|
514 |
+
|
515 |
event.preventDefault();
|
516 |
+
$(".wcf-notice-wrap").remove();
|
517 |
+
$('.cartflows-step-import-blank').css('pointer-events', 'auto').removeClass('disabled');
|
518 |
|
519 |
+
var val = $('.step-type-filter-links').find('option:selected').val() || '';
|
520 |
if( val ) {
|
521 |
$('.step-type-filter-links').val( val );
|
522 |
$('.step-type-filter-links').find('a').removeClass('current');
|
526 |
$('.step-type-filter-links').find('option').removeClass('current');
|
527 |
$('.step-type-filter-links').find('option:selected').addClass('current');
|
528 |
|
529 |
+
$step_type = $('.step-type-filter-links').find('option:selected').data('slug');
|
530 |
+
|
531 |
+
if ( ( 'no' === CartFlowsImportVars.is_wc_installed || 'no' === CartFlowsImportVars.is_wc_activated ) && ( 'upsell' === $step_type || 'downsell' === $step_type || 'checkout' === $step_type || 'thankyou' === $step_type)) {
|
532 |
+
$(".cartflows-step-import-blank").after("<p class='wcf-notice-wrap' style='text-align: center'>You need WooCommerce plugin installed and actived to use this product flow. <br/><br/> <a href='#' class='wcf-activate-wc button-secondary'> Click here to install and activate WooCommerce </a> </p>");
|
533 |
+
$('.cartflows-step-import-blank').addClass('disabled').css('pointer-events', 'none');
|
534 |
+
return;
|
535 |
+
}
|
536 |
+
|
537 |
|
538 |
if ( 'upsell' === $step_type || 'downsell' === $step_type ) {
|
539 |
$( '.wcf-template-notice' ).show();
|
593 |
|
594 |
data.current_step_type = step_type;
|
595 |
|
596 |
+
if ('yes' !== CartFlowsImportVars.is_wc_activated) {
|
597 |
+
$.each(data.items, function (index, value) {
|
598 |
+
data.items[index].woo_required = false;
|
599 |
+
if ($.inArray(value.step_type.slug, CartFlowsImport.woo_required_steps) >= 0) {
|
600 |
+
data.items[index].woo_required = true;
|
601 |
+
return;
|
602 |
+
}
|
603 |
+
});
|
604 |
+
}
|
605 |
+
|
606 |
var template = wp.template('cartflows-steps-list');
|
607 |
if( parseInt( data.items_count ) ) {
|
608 |
$('#wcf-remote-step-list').html( template( data ) );
|
780 |
|
781 |
},
|
782 |
|
783 |
+
mapOrder: function (array, order, key) {
|
784 |
+
|
785 |
+
array.sort(function (a, b) {
|
786 |
+
var A = a[key], B = b[key];
|
787 |
+
|
788 |
+
if (order.indexOf(A) > order.indexOf(B)) {
|
789 |
+
return 1;
|
790 |
+
} else {
|
791 |
+
return -1;
|
792 |
+
}
|
793 |
+
|
794 |
+
});
|
795 |
+
return array;
|
796 |
+
},
|
797 |
+
|
798 |
_cache_remote_steps: function() {
|
799 |
|
800 |
var self = CartFlowsImport;
|
840 |
|
841 |
CartFlowsAPI._api_request( api_post, function( data ) {
|
842 |
|
843 |
+
data.items = CartFlowsImport.mapOrder( data.items, CartFlowsImport.step_order, 'slug' )
|
844 |
var step_type_response_data = data;
|
845 |
var step_types_count = data.items_count;
|
846 |
|
848 |
if( data.items ) {
|
849 |
for ( key in data.items ) {
|
850 |
|
851 |
+
// Rename Step names on UI.
|
852 |
+
data.items[ key ].name = CartFlowsImport.new_step_names[ data.items[ key ].slug ];
|
853 |
+
|
854 |
// Add Params for API request.
|
855 |
var api_params = {
|
856 |
licence_args : CartFlowsImportVars.licence_args,
|
1100 |
|
1101 |
CartFlowsAPI._api_request( api_post, function( data ) {
|
1102 |
|
1103 |
+
if ('yes' !== CartFlowsImportVars.is_wc_activated) {
|
1104 |
+
$.each(data.items, function (index, value) {
|
1105 |
+
data.items[index].woo_required = false;
|
1106 |
+
$.each(value.flow_steps, function (key, value) {
|
1107 |
+
if ($.inArray(value.type, CartFlowsImport.woo_required_steps) >= 0) {
|
1108 |
+
data.items[index].woo_required = true;
|
1109 |
+
return;
|
1110 |
+
}
|
1111 |
+
});
|
1112 |
+
});
|
1113 |
+
}
|
1114 |
+
|
1115 |
var template = wp.template('cartflows-flows-list');
|
1116 |
if( parseInt( data.items_count ) ) {
|
1117 |
$('#wcf-remote-flow-list').html( template( data ) );
|
1320 |
step_count = $('.wcf-step-wrap[data-term-slug="'+step_slug+'"]').length || 1,
|
1321 |
step_custom_title = step_title + ' ' + ( parseInt( step_count ) + 1 );
|
1322 |
|
1323 |
+
$('#wcf-start-from-scratch .wcf-notice-wrap ').remove();
|
1324 |
|
1325 |
if( '' === step_type ) {
|
1326 |
$('#wcf-start-from-scratch .inner').append( '<div class="wcf-notice-wrap"><div class="notice notice-info"><p>Please select the step type.</p></div></div>' );
|
1526 |
.addClass('notice notice-warning')
|
1527 |
.removeClass('preview')
|
1528 |
.text( jqXHR.responseText );
|
1529 |
+
},
|
1530 |
+
|
1531 |
+
_activateWc: function( event ) {
|
1532 |
+
|
1533 |
+
$.ajax({
|
1534 |
+
url : ajaxurl,
|
1535 |
+
type : 'POST',
|
1536 |
+
data : {
|
1537 |
+
action : 'cartflows_activate_plugin',
|
1538 |
+
plugin_init : 'woocommerce/woocommerce.php'
|
1539 |
+
},
|
1540 |
+
})
|
1541 |
+
.done(function( request, status, XHR )
|
1542 |
+
{
|
1543 |
+
$(".wcf-notice-wrap").addClass('wcf-hidden');
|
1544 |
+
$(".cartflows-template-selector").removeAttr( 'disabled' );
|
1545 |
+
CartFlowsImport.wc_installed = true;
|
1546 |
+
CartFlowsImportVars.is_wc_installed = 'yes';
|
1547 |
+
CartFlowsImportVars.is_wc_activated = 'yes';
|
1548 |
+
location.reload(true);
|
1549 |
+
window.location.search += '&add-new-flow';
|
1550 |
+
});
|
1551 |
+
|
1552 |
+
},
|
1553 |
+
|
1554 |
+
|
1555 |
+
_installWc: function( event ) {
|
1556 |
+
|
1557 |
+
var plugin_slug = 'woocommerce';
|
1558 |
+
|
1559 |
+
$(this).addClass('updating-message button');
|
1560 |
+
$(this).text( cartflows_admin.wc_activating_message );
|
1561 |
+
|
1562 |
+
if( false == cartflows_admin.wc_status.installed ) {
|
1563 |
+
|
1564 |
+
if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
|
1565 |
+
wp.updates.requestFilesystemCredentials( event );
|
1566 |
+
|
1567 |
+
$document.on( 'credential-modal-cancel', function() {
|
1568 |
+
var $message = $( '.install-now.updating-message' );
|
1569 |
+
|
1570 |
+
$message
|
1571 |
+
.removeClass( 'updating-message' )
|
1572 |
+
.text( wp.updates.l10n.installNow );
|
1573 |
+
|
1574 |
+
wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
|
1575 |
+
} );
|
1576 |
+
}
|
1577 |
+
|
1578 |
+
wp.updates.installPlugin( {
|
1579 |
+
slug: plugin_slug
|
1580 |
+
} );
|
1581 |
+
} else {
|
1582 |
+
CartFlowsImport._activateWc();
|
1583 |
+
}
|
1584 |
}
|
1585 |
|
1586 |
+
|
1587 |
};
|
1588 |
|
1589 |
/**
|
assets/min-css/checkout-template-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.cartflows-container .wcf-embed-checkout-form,.cartflows-container .wcf-embed-checkout-form *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wcf-embed-checkout-form .wc-backward{display:none!important}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:50%;display:block}.wcf-embed-checkout-form .woocommerce form .form-row-full,.wcf-embed-checkout-form .woocommerce-page form .form-row-full{width:100%;clear:both}.wcf-embed-checkout-form form .form-row-wide{width:100%}.wcf-embed-checkout-form form .wcf-column-33{width:33.33%}.wcf-embed-checkout-form .woocommerce form .form-row-first,.woocommerce-page form .form-row-first{float:right;clear:right}.wcf-embed-checkout-form .woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:left;clear:left}.wcf-embed-checkout-form .woocommerce form .form-row .required{color:red;font-weight:700;border:0!important;text-decoration:none}.wcf-embed-checkout-form form .form-row-first.form-row-one{clear:both}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login{display:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row{margin-bottom:15px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .clear{clear:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label{margin:0;line-height:1em;padding-top:0;position:relative;top:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .login-form-actions{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .remember_me{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;font-family:inherit;font-size:13px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me label{margin-bottom:0;vertical-align:text-top}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me input,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me span{vertical-align:middle}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password{text-align:left;margin-top:0;margin-bottom:0}.wcf-embed-checkout-form .woocommerce .blockUI.blockOverlay{font-size:15px}.mt20{margin-top:20px!important}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid select{border-width:1px;border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated select{border-width:1px}.wcf-embed-checkout-form .select2-container--default.field-required .select2-selection--single,.wcf-embed-checkout-form .woocommerce #order_review .input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row textarea.input-text.field-required{border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row input.field-validated{border-right-width:2px;border-right-color:#69bf29}.wcf-embed-checkout-form .wcf-checkout-header-image{text-align:center}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{content:"\e600";margin:0;color:#f16334}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox],.wcf-embed-checkout-form .woocommerce #payment input[type=radio],.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox],.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:focus{border-color:#f16334;-webkit-box-shadow:0 0 2px rgba(241,99,52,.8);box-shadow:0 0 2px rgba(241,99,52,.8)}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before{background-color:#f16334;-webkit-border-radius:50px;border-radius:50px;content:"\2022";font-size:24px;height:6px;line-height:16px;margin:4px;text-indent:-9999px;width:6px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{display:inline-block;float:right;font:normal 15px/1 cartflows-icon;speak:none;vertical-align:middle;width:6px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li input[type=checkbox]{min-width:16px}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2{float:none;width:100%;max-width:100%;padding:0;-webkit-border-radius:0;border-radius:0;border:none;border-color:none;margin-bottom:0}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-family:inherit;font-weight:600;font-size:20px;text-transform:capitalize;margin:0 0 25px 0;padding:3px}.wcf-embed-checkout-form .woocommerce-checkout #payment{background:unset;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row{margin:0;padding:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row label.checkbox{display:block;margin-bottom:1.1em}.wcf-embed-checkout-form .woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:none;margin-right:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 .5em}.wcf-embed-checkout-form .woocommerce-checkout #payment fieldset .form-row .wcf-embed-checkout-form .woocommerce-checkout #payment fieldset p{margin-bottom:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box{background-color:#eaeaea;font-family:inherit;font-weight:inherit;margin-bottom:.5em}.wcf-embed-checkout-form #add_payment_method #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-cart #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box::before{content:'';display:block;border:1em solid;border-left-color:transparent;border-right-color:transparent;border-top-color:transparent;border-bottom-color:#eaeaea;position:absolute;top:-.75em;right:0;margin:-1em 2em 0 0}.wcf-embed-checkout-form .select2-container--default .select2-selection--single{display:block;width:100%;min-height:34px;height:auto;padding:11px 12px;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__rendered{color:#666;line-height:19px;min-height:19px;overflow:visible;padding-right:0}.select2-results__option[data-selected],.wcf-embed-checkout-form .select2-results__option[aria-selected]{font-size:14px}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.select2-dropdown{border:1px solid #d4d4d4}.wcf-embed-checkout-form .woocommerce #order_review .input-text,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row select,.wcf-embed-checkout-form .woocommerce form .form-row textarea{display:block;width:100%;min-height:34px;padding:11px 12px;font-family:inherit;font-weight:inherit;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;height:auto}.wcf-embed-checkout-form #order_review{padding:3px;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message{padding:0 2em 1.2em 2em;background-color:transparent;border:none;margin:0;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{list-style:none!important;margin:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message::before{top:0;right:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before{content:'\e016'}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{margin:0 8px 0 0}.wcf-embed-checkout-form .woocommerce #order_review .wcf-custom-coupon-field input[type=text]{font-weight:400}.wcf-embed-checkout-form .wcf-custom-coupon-field{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:15px;margin-top:25px;border-top:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;padding-top:25px;padding-bottom:25px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.wcf-embed-checkout-form #order_review .wcf-coupon-col-1{width:70%;display:inline-block;padding-left:20px}.wcf-embed-checkout-form #order_review .wcf-coupon-col-2{width:30%}.wcf-embed-checkout-form .select2-container--open,.wcf-embed-checkout-form input[type=email]:focus,.wcf-embed-checkout-form input[type=password]:focus,.wcf-embed-checkout-form input[type=tel]:focus,.wcf-embed-checkout-form input[type=text]:focus,.wcf-embed-checkout-form textarea:focus{border-color:#b3b3b3;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form button:focus{outline:0;outline-color:none;outline-style:none;outline-width:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row button,.wcf-embed-checkout-form form.checkout_coupon .button{display:block;clear:both;border:none;font-size:15px;font-family:inherit;font-weight:inherit;background-color:#f16334;line-height:9px;padding:18px;margin-bottom:10px;width:100%;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button{border:1px solid;border-color:#f16334;background-color:#f16334;font-family:inherit;font-weight:inherit;font-size:18px;letter-spacing:.5px;width:100%;padding:16px 24px;font-size:16px;line-height:1.5;-webkit-border-radius:3px;border-radius:3px;color:#fff;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small{padding:8px 6px;background-color:#c8c8c8;border:1px #c8c8c8 solid}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small:hover{border-color:#f16334;background-color:#f16334}.wcf-embed-checkout-form .woocommerce #payment #place_order:hover{background-color:#f16334;border-color:#f16334;color:#fff}.wcf-embed-checkout-form .woocommerce-checkout{display:inline-block;width:100%}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:inline-block;width:55%;float:right;padding-left:40px;margin:20px 0 0}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper,.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-shipping-fields .woocommerce-shipping-fields__field-wrapper{margin:0 -7px;-ms-flex-wrap:wrap;flex-wrap:wrap;-js-display:flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-additional-fields .woocommerce-additional-fields__field-wrapper{margin:0 -7px}.wcf-embed-checkout-form-two-column .woocommerce-checkout .wcf-order-wrap{display:inline-block;float:none;width:45%;border:none;background-color:inherit;padding:0 10px;-webkit-border-radius:3px;border-radius:3px}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{display:inline-block;font-family:inherit;font-weight:600;width:100%;margin:20px 0 0;padding:3px 3px 20px;border:none;border-bottom:none}.wcf-embed-checkout-form .woocommerce-checkout #payment{background-color:inherit;border:none;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{padding:1em 0}.wcf-embed-checkout-form #add_payment_method #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-cart #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{border:none}.wcf-embed-checkout-form .woocommerce form .form-row{display:block;margin-bottom:1.1em;padding:3px 7px;position:relative}.wcf-embed-checkout-form table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:right}.wcf-embed-checkout-form table.shop_table td strong.product-quantity{font-weight:400}.wcf-embed-checkout-form table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.wcf-embed-checkout-form table.shop_table #shipping_method .amount{font-weight:400}.wcf-embed-checkout-form table.shop_table th{border:none;font-weight:400;padding:9px 0;line-height:1.2em}.wcf-embed-checkout-form table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.wcf-embed-checkout-form table.shop_table td,.wcf-embed-checkout-form table.shop_table td dl dd,.wcf-embed-checkout-form table.shop_table td dl dt,.wcf-embed-checkout-form table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.wcf-embed-checkout-form table.shop_table td dl dd p{margin-top:0}.wcf-embed-checkout-form table.shop_table tbody th,.wcf-embed-checkout-form table.shop_table tfoot td,.wcf-embed-checkout-form table.shop_table tfoot th{border:none;font-weight:400;width:50%}.wcf-embed-checkout-form table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table th.product-name,.wcf-embed-checkout-form table.shop_table th.product-total{font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) td,.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total td,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total th,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(1){width:70%}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(2){width:30%}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label,.wcf-embed-checkout-form .woocommerce-checkout .form-row label{font-size:13px;line-height:1em;letter-spacing:.3px;font-family:inherit;font-weight:inherit;text-transform:capitalize;margin-bottom:8px}.wcf-embed-checkout-form .woocommerce .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text{line-height:20px;text-transform:initial}.wcf-embed-checkout-form #payment .woocommerce-privacy-policy-text p{font-family:inherit;font-weight:inherit;font-size:11px;color:#777;margin-top:0;text-align:justify}.wcf-embed-checkout-form #payment .wc_payment_methods .payment_box p{margin:0}.wcf-embed-checkout-form .woocommerce a{color:#f16334;text-decoration:none}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-info,.wcf-embed-checkout-form .woocommerce .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{padding:1em 2em .4em 2em;border-top:none;background-color:inherit;font-size:14px;font-weight:500;margin:0}.wcf-embed-checkout-form .woocommerce-info::before,.wcf-embed-checkout-form .woocommerce-message::before{right:.1em;color:#f16334}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-error{background-color:#fff6f6;border:dashed 1px #a00;padding:25px 25px 20px;color:#a00;margin:1rem 0 1rem;font-size:14px;width:100%}.wcf-embed-checkout-form .woocommerce .woocommerce-error::before{content:''}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before{display:inline}.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{margin:1em 0 1em}.wcf-embed-checkout-form .woocommerce .woocommerce-error li{list-style:disc inside!important;margin:0 0 8px}.wcf-embed-checkout-form .woocommerce .woocommerce-error li strong{font-weight:400}.wcf-embed-checkout-form .woocommerce form.checkout_coupon{border:1px solid #d3ced2;padding:30px 20px 20px;margin:2em 0;text-align:right;-webkit-border-radius:5px;border-radius:5px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-size:14px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-family:inherit;font-weight:500;margin-top:0;margin-bottom:10px}@media only screen and (max-width:768px){.wcf-embed-checkout-form form .wcf-column-33{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review{width:100%}.wcf-embed-checkout-form .woocommerce-checkout .wcf-order-wrap{width:100%}.wcf-embed-checkout-form .woocommerce-checkout{display:block}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:block;width:100%;padding-left:0;margin:20px 0 0}.wcf-embed-checkout-form form.checkout_coupon .button{font-size:12px}.wcf-bump-order-field-wrap .wcf-bump-order-label{font-size:16px;text-transform:capitalize}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce .wcf-order-wrap,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .wcf-order-wrap{padding:15px 18px}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:100%}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-size:1em}}#et-info-email:before,#et-info-phone:before,#et_search_icon:before,.comment-reply-link:after,.et-cart-info span:before,.et-pb-arrow-next:before,.et-pb-arrow-prev:before,.et-social-icon a:before,.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before,.et_overlay:before,.et_password_protected_form .et_submit_button:after,.et_pb_button:after,.et_pb_contact_reset:after,.et_pb_contact_submit:after,.et_pb_font_icon:before,.et_pb_newsletter_button:after,.et_pb_pricing_table_button:after,.et_pb_promo_button:after,.et_pb_social_icon a.icon:before,.et_pb_testimonial:before,.et_pb_toggle_title:before,.form-submit .et_pb_button:after,.mobile_menu_bar:before,.woocommerce #content input.button.alt:after,.woocommerce #content input.button:after,.woocommerce #respond input#submit.alt:after,.woocommerce #respond input#submit:after,.woocommerce a.button.alt:after,.woocommerce button.button.alt:after,.woocommerce button.button:after,.woocommerce button.single_add_to_cart_button.button:after,.woocommerce input.button.alt:after,.woocommerce input.button:after,.woocommerce-page #content input.button.alt:after,.woocommerce-page #content input.button:after,.woocommerce-page #respond input#submit.alt:after,.woocommerce-page #respond input#submit:after,.woocommerce-page a.button.alt:after,.woocommerce-page a.button:after,.woocommerce-page button.button.alt:after,.woocommerce-page button.button:after,.woocommerce-page input.button.alt:after,.woocommerce-page input.button:after,a.et_pb_more_button:after{text-shadow:0 0;font-family:none;font-weight:400;font-style:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1;text-transform:none;speak:none}.comment-reply-link:hover:after,.woocommerce #content input.button.alt:hover:after,.woocommerce #content input.button:hover:after,.woocommerce #respond input#submit.alt:hover:after,.woocommerce #respond input#submit:hover:after,.woocommerce a.button.alt:hover:after,.woocommerce a.button:hover:after,.woocommerce button.button.alt:hover:after,.woocommerce button.button:hover:after,.woocommerce input.button.alt:hover:after,.woocommerce input.button:hover:after,.woocommerce-page #content input.button.alt:hover:after,.woocommerce-page #content input.button:hover:after,.woocommerce-page #respond input#submit.alt:hover:after,.woocommerce-page #respond input#submit:hover:after,.woocommerce-page a.button.alt:hover:after,.woocommerce-page a.button:hover:after,.woocommerce-page button.button.alt:hover:after,.woocommerce-page button.button:hover:after,.woocommerce-page input.button.alt:hover:after,.woocommerce-page input.button:hover:after{opacity:0}.thrv_wrapper .wcf-embed-checkout-form div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
|
1 |
+
.cartflows-container .wcf-embed-checkout-form,.cartflows-container .wcf-embed-checkout-form *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wcf-embed-checkout-form .wc-backward{display:none!important}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:50%;display:block}.wcf-embed-checkout-form .woocommerce form .form-row-full,.wcf-embed-checkout-form .woocommerce-page form .form-row-full{width:100%;clear:both}.wcf-embed-checkout-form form .form-row-wide{width:100%}.wcf-embed-checkout-form form .wcf-column-33{width:33.33%}.wcf-embed-checkout-form .woocommerce form .form-row-first,.woocommerce-page form .form-row-first{float:right;clear:right}.wcf-embed-checkout-form .woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:left;clear:left}.wcf-embed-checkout-form .woocommerce form .form-row .required{color:red;font-weight:700;border:0!important;text-decoration:none}.wcf-embed-checkout-form form .form-row-first.form-row-one{clear:both}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login{display:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row{margin-bottom:15px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .clear{clear:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label{margin:0;line-height:1em;padding-top:0;position:relative;top:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .login-form-actions{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .remember_me{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;font-family:inherit;font-size:13px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me label{margin-bottom:0;vertical-align:text-top}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me input,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me span{vertical-align:middle}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password{text-align:left;margin-top:0;margin-bottom:0}.wcf-embed-checkout-form .woocommerce .blockUI.blockOverlay{font-size:15px}.mt20{margin-top:20px!important}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid select{border-width:1px;border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated select{border-width:1px}.wcf-embed-checkout-form .select2-container--default.field-required .select2-selection--single,.wcf-embed-checkout-form .woocommerce #order_review .input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row textarea.input-text.field-required{border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row input.field-validated{border-right-width:2px;border-right-color:#69bf29}.wcf-embed-checkout-form .wcf-checkout-header-image{text-align:center}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{content:"\e600";margin:0;color:#f16334}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox],.wcf-embed-checkout-form .woocommerce #payment input[type=radio],.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox],.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:focus{border-color:#f16334;-webkit-box-shadow:0 0 2px rgba(241,99,52,.8);box-shadow:0 0 2px rgba(241,99,52,.8)}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before{background-color:#f16334;-webkit-border-radius:50px;border-radius:50px;content:"\2022";font-size:24px;height:6px;line-height:16px;margin:4px;text-indent:-9999px;width:6px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{display:inline-block;float:right;font:normal 15px/1 cartflows-icon;speak:none;vertical-align:middle;width:6px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li input[type=checkbox]{min-width:16px}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2{float:none;width:100%;max-width:100%;padding:0;-webkit-border-radius:0;border-radius:0;border:none;border-color:none;margin-bottom:0}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-family:inherit;font-weight:600;font-size:20px;text-transform:capitalize;margin:0 0 25px 0;padding:3px}.wcf-embed-checkout-form .woocommerce-checkout #payment{background:unset;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row{margin:0;padding:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row label.checkbox{display:block;margin-bottom:1.1em}.wcf-embed-checkout-form .woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:none;margin-right:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 .5em}.wcf-embed-checkout-form .woocommerce-checkout #payment fieldset .form-row .wcf-embed-checkout-form .woocommerce-checkout #payment fieldset p{margin-bottom:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box{background-color:#eaeaea;font-family:inherit;font-weight:inherit;margin-bottom:.5em}.wcf-embed-checkout-form #add_payment_method #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-cart #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box::before{content:'';display:block;border:1em solid;border-left-color:transparent;border-right-color:transparent;border-top-color:transparent;border-bottom-color:#eaeaea;position:absolute;top:-.75em;right:0;margin:-1em 2em 0 0}.wcf-embed-checkout-form .select2-container--default .select2-selection--single{display:block;width:100%;min-height:34px;height:auto;padding:11px 12px;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__rendered{color:#666;line-height:19px;min-height:19px;overflow:visible;padding-right:0}.select2-results__option[data-selected],.wcf-embed-checkout-form .select2-results__option[aria-selected]{font-size:14px}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.select2-dropdown{border:1px solid #d4d4d4}.wcf-embed-checkout-form .woocommerce #order_review .input-text,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row select,.wcf-embed-checkout-form .woocommerce form .form-row textarea{display:block;width:100%;min-height:34px;padding:11px 12px;font-family:inherit;font-weight:inherit;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;height:auto}.wcf-embed-checkout-form #order_review{padding:3px;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message{padding:0 2em 1.2em 2em;background-color:transparent;border:none;margin:0;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{list-style:none!important;margin:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message::before{top:0;right:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before{content:'\e016'}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{margin:0 8px 0 0}.wcf-embed-checkout-form .woocommerce #order_review .wcf-custom-coupon-field input[type=text]{font-weight:400}.wcf-embed-checkout-form .wcf-custom-coupon-field{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:15px;margin-top:25px;border-top:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;padding-top:25px;padding-bottom:25px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.wcf-embed-checkout-form #order_review .wcf-coupon-col-1{width:70%;display:inline-block;padding-left:20px}.wcf-embed-checkout-form #order_review .wcf-coupon-col-2{width:30%}.wcf-embed-checkout-form .select2-container--open,.wcf-embed-checkout-form input[type=email]:focus,.wcf-embed-checkout-form input[type=password]:focus,.wcf-embed-checkout-form input[type=tel]:focus,.wcf-embed-checkout-form input[type=text]:focus,.wcf-embed-checkout-form textarea:focus{border-color:#b3b3b3;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form button:focus{outline:0;outline-color:none;outline-style:none;outline-width:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row button,.wcf-embed-checkout-form form.checkout_coupon .button{display:block;clear:both;border:none;font-size:15px;font-family:inherit;font-weight:inherit;background-color:#f16334;line-height:9px;padding:18px;margin-bottom:10px;width:100%;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button{border:1px solid;border-color:#f16334;background-color:#f16334;font-family:inherit;font-weight:inherit;font-size:18px;letter-spacing:.5px;width:100%;padding:16px 24px;font-size:16px;line-height:1.5;-webkit-border-radius:3px;border-radius:3px;color:#fff;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small{padding:8px 6px;background-color:#c8c8c8;border:1px #c8c8c8 solid}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small:hover{border-color:#f16334;background-color:#f16334}.wcf-embed-checkout-form .woocommerce #payment #place_order:hover{background-color:#f16334;border-color:#f16334;color:#fff}.wcf-embed-checkout-form .woocommerce-checkout{display:inline-block;width:100%}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:inline-block;width:55%;float:right;padding-left:40px;margin:20px 0 0}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper,.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-shipping-fields .woocommerce-shipping-fields__field-wrapper{margin:0 -7px;-ms-flex-wrap:wrap;flex-wrap:wrap;-js-display:flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-additional-fields .woocommerce-additional-fields__field-wrapper{margin:0 -7px}.wcf-embed-checkout-form-two-column .woocommerce-checkout .wcf-order-wrap{display:inline-block;float:none;width:45%;border:none;background-color:inherit;padding:0 10px;-webkit-border-radius:3px;border-radius:3px}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{display:inline-block;font-family:inherit;font-weight:600;width:100%;margin:20px 0 0;padding:3px 3px 20px;border:none;border-bottom:none}.wcf-embed-checkout-form .woocommerce-checkout #payment{background-color:inherit;border:none;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{padding:1em 0}.wcf-embed-checkout-form #add_payment_method #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-cart #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{border:none}.wcf-embed-checkout-form .woocommerce form .form-row{display:block;margin-bottom:1.1em;padding:3px 7px;position:relative}.wcf-embed-checkout-form .woocommerce form .woocommerce-account-fields .form-row{padding:0}.wcf-embed-checkout-form table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:right}.wcf-embed-checkout-form table.shop_table td strong.product-quantity{font-weight:400}.wcf-embed-checkout-form table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.wcf-embed-checkout-form table.shop_table #shipping_method .amount{font-weight:400}.wcf-embed-checkout-form table.shop_table th{border:none;font-weight:400;padding:9px 0;line-height:1.2em}.wcf-embed-checkout-form table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.wcf-embed-checkout-form table.shop_table td,.wcf-embed-checkout-form table.shop_table td dl dd,.wcf-embed-checkout-form table.shop_table td dl dt,.wcf-embed-checkout-form table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.wcf-embed-checkout-form table.shop_table td dl dd p{margin-top:0}.wcf-embed-checkout-form table.shop_table tbody th,.wcf-embed-checkout-form table.shop_table tfoot td,.wcf-embed-checkout-form table.shop_table tfoot th{border:none;font-weight:400;width:50%}.wcf-embed-checkout-form table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table th.product-name,.wcf-embed-checkout-form table.shop_table th.product-total{font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) td,.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total td,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total th,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(1){width:70%}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(2){width:30%}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label,.wcf-embed-checkout-form .woocommerce-checkout .form-row label{font-size:13px;line-height:1em;letter-spacing:.3px;font-family:inherit;font-weight:inherit;text-transform:capitalize;margin-bottom:8px}.wcf-embed-checkout-form .woocommerce .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text{line-height:20px;text-transform:initial}.wcf-embed-checkout-form #payment .woocommerce-privacy-policy-text p{font-family:inherit;font-weight:inherit;font-size:11px;color:#777;margin-top:0;text-align:justify}.wcf-embed-checkout-form #payment .wc_payment_methods .payment_box p{margin:0}.wcf-embed-checkout-form .woocommerce a{color:#f16334;text-decoration:none}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-info,.wcf-embed-checkout-form .woocommerce .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{padding:1em 2em .4em 2em;border-top:none;background-color:inherit;font-size:14px;font-weight:500;margin:0}.wcf-embed-checkout-form .woocommerce-info::before,.wcf-embed-checkout-form .woocommerce-message::before{right:.1em;color:#f16334}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-error{background-color:#fff6f6;border:dashed 1px #a00;padding:25px 25px 20px;color:#a00;margin:1rem 0 1rem;font-size:14px;width:100%}.wcf-embed-checkout-form .woocommerce .woocommerce-error::before{content:''}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before{display:inline}.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{margin:1em 0 1em}.wcf-embed-checkout-form .woocommerce .woocommerce-error li{list-style:disc inside!important;margin:0 0 8px}.wcf-embed-checkout-form .woocommerce .woocommerce-error li strong{font-weight:400}.wcf-embed-checkout-form .woocommerce form.checkout_coupon{border:1px solid #d3ced2;padding:30px 20px 20px;margin:2em 0;text-align:right;-webkit-border-radius:5px;border-radius:5px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-size:14px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-family:inherit;font-weight:500;margin-top:0;margin-bottom:10px}@media only screen and (max-width:768px){.wcf-embed-checkout-form form .wcf-column-33{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review{width:100%}.wcf-embed-checkout-form .woocommerce-checkout .wcf-order-wrap{width:100%}.wcf-embed-checkout-form .woocommerce-checkout{display:block}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:block;width:100%;padding-left:0;margin:20px 0 0}.wcf-embed-checkout-form form.checkout_coupon .button{font-size:12px}.wcf-bump-order-field-wrap .wcf-bump-order-label{font-size:16px;text-transform:capitalize}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce .wcf-order-wrap,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .wcf-order-wrap{padding:15px 18px}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:100%}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-size:1em}}#et-info-email:before,#et-info-phone:before,#et_search_icon:before,.comment-reply-link:after,.et-cart-info span:before,.et-pb-arrow-next:before,.et-pb-arrow-prev:before,.et-social-icon a:before,.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before,.et_overlay:before,.et_password_protected_form .et_submit_button:after,.et_pb_button:after,.et_pb_contact_reset:after,.et_pb_contact_submit:after,.et_pb_font_icon:before,.et_pb_newsletter_button:after,.et_pb_pricing_table_button:after,.et_pb_promo_button:after,.et_pb_social_icon a.icon:before,.et_pb_testimonial:before,.et_pb_toggle_title:before,.form-submit .et_pb_button:after,.mobile_menu_bar:before,.woocommerce #content input.button.alt:after,.woocommerce #content input.button:after,.woocommerce #respond input#submit.alt:after,.woocommerce #respond input#submit:after,.woocommerce a.button.alt:after,.woocommerce button.button.alt:after,.woocommerce button.button:after,.woocommerce button.single_add_to_cart_button.button:after,.woocommerce input.button.alt:after,.woocommerce input.button:after,.woocommerce-page #content input.button.alt:after,.woocommerce-page #content input.button:after,.woocommerce-page #respond input#submit.alt:after,.woocommerce-page #respond input#submit:after,.woocommerce-page a.button.alt:after,.woocommerce-page a.button:after,.woocommerce-page button.button.alt:after,.woocommerce-page button.button:after,.woocommerce-page input.button.alt:after,.woocommerce-page input.button:after,a.et_pb_more_button:after{text-shadow:0 0;font-family:none;font-weight:400;font-style:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1;text-transform:none;speak:none}.comment-reply-link:hover:after,.woocommerce #content input.button.alt:hover:after,.woocommerce #content input.button:hover:after,.woocommerce #respond input#submit.alt:hover:after,.woocommerce #respond input#submit:hover:after,.woocommerce a.button.alt:hover:after,.woocommerce a.button:hover:after,.woocommerce button.button.alt:hover:after,.woocommerce button.button:hover:after,.woocommerce input.button.alt:hover:after,.woocommerce input.button:hover:after,.woocommerce-page #content input.button.alt:hover:after,.woocommerce-page #content input.button:hover:after,.woocommerce-page #respond input#submit.alt:hover:after,.woocommerce-page #respond input#submit:hover:after,.woocommerce-page a.button.alt:hover:after,.woocommerce-page a.button:hover:after,.woocommerce-page button.button.alt:hover:after,.woocommerce-page button.button:hover:after,.woocommerce-page input.button.alt:hover:after,.woocommerce-page input.button:hover:after{opacity:0}.thrv_wrapper .wcf-embed-checkout-form div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
|
assets/min-css/checkout-template.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.cartflows-container .wcf-embed-checkout-form,.cartflows-container .wcf-embed-checkout-form *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wcf-embed-checkout-form .wc-backward{display:none!important}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:50%;display:block}.wcf-embed-checkout-form .woocommerce form .form-row-full,.wcf-embed-checkout-form .woocommerce-page form .form-row-full{width:100%;clear:both}.wcf-embed-checkout-form form .form-row-wide{width:100%}.wcf-embed-checkout-form form .wcf-column-33{width:33.33%}.wcf-embed-checkout-form .woocommerce form .form-row-first,.woocommerce-page form .form-row-first{float:left;clear:left}.wcf-embed-checkout-form .woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:right;clear:right}.wcf-embed-checkout-form .woocommerce form .form-row .required{color:red;font-weight:700;border:0!important;text-decoration:none}.wcf-embed-checkout-form form .form-row-first.form-row-one{clear:both}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login{display:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row{margin-bottom:15px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .clear{clear:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label{margin:0;line-height:1em;padding-top:0;position:relative;top:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .login-form-actions{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .remember_me{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;font-family:inherit;font-size:13px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me label{margin-bottom:0;vertical-align:text-top}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me input,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me span{vertical-align:middle}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password{text-align:right;margin-top:0;margin-bottom:0}.wcf-embed-checkout-form .woocommerce .blockUI.blockOverlay{font-size:15px}.mt20{margin-top:20px!important}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid select{border-width:1px;border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated select{border-width:1px}.wcf-embed-checkout-form .select2-container--default.field-required .select2-selection--single,.wcf-embed-checkout-form .woocommerce #order_review .input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row textarea.input-text.field-required{border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row input.field-validated{border-left-width:2px;border-left-color:#69bf29}.wcf-embed-checkout-form .wcf-checkout-header-image{text-align:center}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{content:"\e600";margin:0;color:#f16334}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox],.wcf-embed-checkout-form .woocommerce #payment input[type=radio],.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox],.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:focus{border-color:#f16334;-webkit-box-shadow:0 0 2px rgba(241,99,52,.8);box-shadow:0 0 2px rgba(241,99,52,.8)}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before{background-color:#f16334;-webkit-border-radius:50px;border-radius:50px;content:"\2022";font-size:24px;height:6px;line-height:16px;margin:4px;text-indent:-9999px;width:6px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{display:inline-block;float:left;font:normal 15px/1 cartflows-icon;speak:none;vertical-align:middle;width:6px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li input[type=checkbox]{min-width:16px}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2{float:none;width:100%;max-width:100%;padding:0;-webkit-border-radius:0;border-radius:0;border:none;border-color:none;margin-bottom:0}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-family:inherit;font-weight:600;font-size:20px;text-transform:capitalize;margin:0 0 25px 0;padding:3px}.wcf-embed-checkout-form .woocommerce-checkout #payment{background:unset;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row{margin:0;padding:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row label.checkbox{display:block;margin-bottom:1.1em}.wcf-embed-checkout-form .woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:none;margin-left:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 .5em}.wcf-embed-checkout-form .woocommerce-checkout #payment fieldset .form-row .wcf-embed-checkout-form .woocommerce-checkout #payment fieldset p{margin-bottom:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box{background-color:#eaeaea;font-family:inherit;font-weight:inherit;margin-bottom:.5em}.wcf-embed-checkout-form #add_payment_method #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-cart #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box::before{content:'';display:block;border:1em solid;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;border-bottom-color:#eaeaea;position:absolute;top:-.75em;left:0;margin:-1em 0 0 2em}.wcf-embed-checkout-form .select2-container--default .select2-selection--single{display:block;width:100%;min-height:34px;height:auto;padding:11px 12px;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__rendered{color:#666;line-height:19px;min-height:19px;overflow:visible;padding-left:0}.select2-results__option[data-selected],.wcf-embed-checkout-form .select2-results__option[aria-selected]{font-size:14px}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.select2-dropdown{border:1px solid #d4d4d4}.wcf-embed-checkout-form .woocommerce #order_review .input-text,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row select,.wcf-embed-checkout-form .woocommerce form .form-row textarea{display:block;width:100%;min-height:34px;padding:11px 12px;font-family:inherit;font-weight:inherit;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;height:auto}.wcf-embed-checkout-form #order_review{padding:3px;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message{padding:0 2em 1.2em 2em;background-color:transparent;border:none;margin:0;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{list-style:none!important;margin:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message::before{top:0;left:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before{content:'\e016'}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{margin:0 0 0 8px}.wcf-embed-checkout-form .woocommerce #order_review .wcf-custom-coupon-field input[type=text]{font-weight:400}.wcf-embed-checkout-form .wcf-custom-coupon-field{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:15px;margin-top:25px;border-top:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;padding-top:25px;padding-bottom:25px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.wcf-embed-checkout-form #order_review .wcf-coupon-col-1{width:70%;display:inline-block;padding-right:20px}.wcf-embed-checkout-form #order_review .wcf-coupon-col-2{width:30%}.wcf-embed-checkout-form .select2-container--open,.wcf-embed-checkout-form input[type=email]:focus,.wcf-embed-checkout-form input[type=password]:focus,.wcf-embed-checkout-form input[type=tel]:focus,.wcf-embed-checkout-form input[type=text]:focus,.wcf-embed-checkout-form textarea:focus{border-color:#b3b3b3;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form button:focus{outline:0;outline-color:none;outline-style:none;outline-width:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row button,.wcf-embed-checkout-form form.checkout_coupon .button{display:block;clear:both;border:none;font-size:15px;font-family:inherit;font-weight:inherit;background-color:#f16334;line-height:9px;padding:18px;margin-bottom:10px;width:100%;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button{border:1px solid;border-color:#f16334;background-color:#f16334;font-family:inherit;font-weight:inherit;font-size:18px;letter-spacing:.5px;width:100%;padding:16px 24px;font-size:16px;line-height:1.5;-webkit-border-radius:3px;border-radius:3px;color:#fff;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small{padding:8px 6px;background-color:#c8c8c8;border:1px #c8c8c8 solid}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small:hover{border-color:#f16334;background-color:#f16334}.wcf-embed-checkout-form .woocommerce #payment #place_order:hover{background-color:#f16334;border-color:#f16334;color:#fff}.wcf-embed-checkout-form .woocommerce-checkout{display:inline-block;width:100%}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:inline-block;width:55%;float:left;padding-right:40px;margin:20px 0 0}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper,.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-shipping-fields .woocommerce-shipping-fields__field-wrapper{margin:0 -7px;-ms-flex-wrap:wrap;flex-wrap:wrap;-js-display:flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-additional-fields .woocommerce-additional-fields__field-wrapper{margin:0 -7px}.wcf-embed-checkout-form-two-column .woocommerce-checkout .wcf-order-wrap{display:inline-block;float:none;width:45%;border:none;background-color:inherit;padding:0 10px;-webkit-border-radius:3px;border-radius:3px}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{display:inline-block;font-family:inherit;font-weight:600;width:100%;margin:20px 0 0;padding:3px 3px 20px;border:none;border-bottom:none}.wcf-embed-checkout-form .woocommerce-checkout #payment{background-color:inherit;border:none;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{padding:1em 0}.wcf-embed-checkout-form #add_payment_method #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-cart #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{border:none}.wcf-embed-checkout-form .woocommerce form .form-row{display:block;margin-bottom:1.1em;padding:3px 7px;position:relative}.wcf-embed-checkout-form table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:left}.wcf-embed-checkout-form table.shop_table td strong.product-quantity{font-weight:400}.wcf-embed-checkout-form table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.wcf-embed-checkout-form table.shop_table #shipping_method .amount{font-weight:400}.wcf-embed-checkout-form table.shop_table th{border:none;font-weight:400;padding:9px 0;line-height:1.2em}.wcf-embed-checkout-form table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.wcf-embed-checkout-form table.shop_table td,.wcf-embed-checkout-form table.shop_table td dl dd,.wcf-embed-checkout-form table.shop_table td dl dt,.wcf-embed-checkout-form table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.wcf-embed-checkout-form table.shop_table td dl dd p{margin-top:0}.wcf-embed-checkout-form table.shop_table tbody th,.wcf-embed-checkout-form table.shop_table tfoot td,.wcf-embed-checkout-form table.shop_table tfoot th{border:none;font-weight:400;width:50%}.wcf-embed-checkout-form table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table th.product-name,.wcf-embed-checkout-form table.shop_table th.product-total{font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) td,.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total td,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total th,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(1){width:70%}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(2){width:30%}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label,.wcf-embed-checkout-form .woocommerce-checkout .form-row label{font-size:13px;line-height:1em;letter-spacing:.3px;font-family:inherit;font-weight:inherit;text-transform:capitalize;margin-bottom:8px}.wcf-embed-checkout-form .woocommerce .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text{line-height:20px;text-transform:initial}.wcf-embed-checkout-form #payment .woocommerce-privacy-policy-text p{font-family:inherit;font-weight:inherit;font-size:11px;color:#777;margin-top:0;text-align:justify}.wcf-embed-checkout-form #payment .wc_payment_methods .payment_box p{margin:0}.wcf-embed-checkout-form .woocommerce a{color:#f16334;text-decoration:none}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-info,.wcf-embed-checkout-form .woocommerce .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{padding:1em 2em .4em 2em;border-top:none;background-color:inherit;font-size:14px;font-weight:500;margin:0}.wcf-embed-checkout-form .woocommerce-info::before,.wcf-embed-checkout-form .woocommerce-message::before{left:.1em;color:#f16334}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-error{background-color:#fff6f6;border:dashed 1px #a00;padding:25px 25px 20px;color:#a00;margin:1rem 0 1rem;font-size:14px;width:100%}.wcf-embed-checkout-form .woocommerce .woocommerce-error::before{content:''}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before{display:inline}.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{margin:1em 0 1em}.wcf-embed-checkout-form .woocommerce .woocommerce-error li{list-style:disc inside!important;margin:0 0 8px}.wcf-embed-checkout-form .woocommerce .woocommerce-error li strong{font-weight:400}.wcf-embed-checkout-form .woocommerce form.checkout_coupon{border:1px solid #d3ced2;padding:30px 20px 20px;margin:2em 0;text-align:left;-webkit-border-radius:5px;border-radius:5px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-size:14px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-family:inherit;font-weight:500;margin-top:0;margin-bottom:10px}@media only screen and (max-width:768px){.wcf-embed-checkout-form form .wcf-column-33{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review{width:100%}.wcf-embed-checkout-form .woocommerce-checkout .wcf-order-wrap{width:100%}.wcf-embed-checkout-form .woocommerce-checkout{display:block}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:block;width:100%;padding-right:0;margin:20px 0 0}.wcf-embed-checkout-form form.checkout_coupon .button{font-size:12px}.wcf-bump-order-field-wrap .wcf-bump-order-label{font-size:16px;text-transform:capitalize}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce .wcf-order-wrap,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .wcf-order-wrap{padding:15px 18px}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:100%}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-size:1em}}#et-info-email:before,#et-info-phone:before,#et_search_icon:before,.comment-reply-link:after,.et-cart-info span:before,.et-pb-arrow-next:before,.et-pb-arrow-prev:before,.et-social-icon a:before,.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before,.et_overlay:before,.et_password_protected_form .et_submit_button:after,.et_pb_button:after,.et_pb_contact_reset:after,.et_pb_contact_submit:after,.et_pb_font_icon:before,.et_pb_newsletter_button:after,.et_pb_pricing_table_button:after,.et_pb_promo_button:after,.et_pb_social_icon a.icon:before,.et_pb_testimonial:before,.et_pb_toggle_title:before,.form-submit .et_pb_button:after,.mobile_menu_bar:before,.woocommerce #content input.button.alt:after,.woocommerce #content input.button:after,.woocommerce #respond input#submit.alt:after,.woocommerce #respond input#submit:after,.woocommerce a.button.alt:after,.woocommerce button.button.alt:after,.woocommerce button.button:after,.woocommerce button.single_add_to_cart_button.button:after,.woocommerce input.button.alt:after,.woocommerce input.button:after,.woocommerce-page #content input.button.alt:after,.woocommerce-page #content input.button:after,.woocommerce-page #respond input#submit.alt:after,.woocommerce-page #respond input#submit:after,.woocommerce-page a.button.alt:after,.woocommerce-page a.button:after,.woocommerce-page button.button.alt:after,.woocommerce-page button.button:after,.woocommerce-page input.button.alt:after,.woocommerce-page input.button:after,a.et_pb_more_button:after{text-shadow:0 0;font-family:none;font-weight:400;font-style:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1;text-transform:none;speak:none}.comment-reply-link:hover:after,.woocommerce #content input.button.alt:hover:after,.woocommerce #content input.button:hover:after,.woocommerce #respond input#submit.alt:hover:after,.woocommerce #respond input#submit:hover:after,.woocommerce a.button.alt:hover:after,.woocommerce a.button:hover:after,.woocommerce button.button.alt:hover:after,.woocommerce button.button:hover:after,.woocommerce input.button.alt:hover:after,.woocommerce input.button:hover:after,.woocommerce-page #content input.button.alt:hover:after,.woocommerce-page #content input.button:hover:after,.woocommerce-page #respond input#submit.alt:hover:after,.woocommerce-page #respond input#submit:hover:after,.woocommerce-page a.button.alt:hover:after,.woocommerce-page a.button:hover:after,.woocommerce-page button.button.alt:hover:after,.woocommerce-page button.button:hover:after,.woocommerce-page input.button.alt:hover:after,.woocommerce-page input.button:hover:after{opacity:0}.thrv_wrapper .wcf-embed-checkout-form div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
|
1 |
+
.cartflows-container .wcf-embed-checkout-form,.cartflows-container .wcf-embed-checkout-form *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wcf-embed-checkout-form .wc-backward{display:none!important}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:50%;display:block}.wcf-embed-checkout-form .woocommerce form .form-row-full,.wcf-embed-checkout-form .woocommerce-page form .form-row-full{width:100%;clear:both}.wcf-embed-checkout-form form .form-row-wide{width:100%}.wcf-embed-checkout-form form .wcf-column-33{width:33.33%}.wcf-embed-checkout-form .woocommerce form .form-row-first,.woocommerce-page form .form-row-first{float:left;clear:left}.wcf-embed-checkout-form .woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:right;clear:right}.wcf-embed-checkout-form .woocommerce form .form-row .required{color:red;font-weight:700;border:0!important;text-decoration:none}.wcf-embed-checkout-form form .form-row-first.form-row-one{clear:both}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login{display:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row{margin-bottom:15px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .clear{clear:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label{margin:0;line-height:1em;padding-top:0;position:relative;top:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .login-form-actions{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:0}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .remember_me{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;font-family:inherit;font-size:13px}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me label{margin-bottom:0;vertical-align:text-top}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me input,.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row .remember_me span{vertical-align:middle}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .lost_password{text-align:right;margin-top:0;margin-bottom:0}.wcf-embed-checkout-form .woocommerce .blockUI.blockOverlay{font-size:15px}.mt20{margin-top:20px!important}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-invalid select{border-width:1px;border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated .select2-container,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row.woocommerce-validated select{border-width:1px}.wcf-embed-checkout-form .select2-container--default.field-required .select2-selection--single,.wcf-embed-checkout-form .woocommerce #order_review .input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text.field-required,.wcf-embed-checkout-form .woocommerce form .form-row textarea.input-text.field-required{border-color:#e2401c}.wcf-embed-checkout-form .woocommerce form .form-row input.field-validated{border-left-width:2px;border-left-color:#69bf29}.wcf-embed-checkout-form .wcf-checkout-header-image{text-align:center}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{content:"\e600";margin:0;color:#f16334}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox],.wcf-embed-checkout-form .woocommerce #payment input[type=radio],.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox],.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:focus,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:focus{border-color:#f16334;-webkit-box-shadow:0 0 2px rgba(241,99,52,.8);box-shadow:0 0 2px rgba(241,99,52,.8)}.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before{background-color:#f16334;-webkit-border-radius:50px;border-radius:50px;content:"\2022";font-size:24px;height:6px;line-height:16px;margin:4px;text-indent:-9999px;width:6px}.wcf-embed-checkout-form .woocommerce #payment input[type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce #payment input[type=radio]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-billing-fields [type=checkbox]:checked:before,.wcf-embed-checkout-form .woocommerce .woocommerce-shipping-fields [type=checkbox]:checked:before{display:inline-block;float:left;font:normal 15px/1 cartflows-icon;speak:none;vertical-align:middle;width:6px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li input[type=checkbox]{min-width:16px}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2{float:none;width:100%;max-width:100%;padding:0;-webkit-border-radius:0;border-radius:0;border:none;border-color:none;margin-bottom:0}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-family:inherit;font-weight:600;font-size:20px;text-transform:capitalize;margin:0 0 25px 0;padding:3px}.wcf-embed-checkout-form .woocommerce-checkout #payment{background:unset;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row{margin:0;padding:0}.wcf-embed-checkout-form .woocommerce-checkout #payment .form-row label.checkbox{display:block;margin-bottom:1.1em}.wcf-embed-checkout-form .woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:none;margin-left:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 .5em}.wcf-embed-checkout-form .woocommerce-checkout #payment fieldset .form-row .wcf-embed-checkout-form .woocommerce-checkout #payment fieldset p{margin-bottom:10px}.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box{background-color:#eaeaea;font-family:inherit;font-weight:inherit;margin-bottom:.5em}.wcf-embed-checkout-form #add_payment_method #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-cart #payment div.payment_box::before,.wcf-embed-checkout-form .woocommerce-checkout #payment div.payment_box::before{content:'';display:block;border:1em solid;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;border-bottom-color:#eaeaea;position:absolute;top:-.75em;left:0;margin:-1em 0 0 2em}.wcf-embed-checkout-form .select2-container--default .select2-selection--single{display:block;width:100%;min-height:34px;height:auto;padding:11px 12px;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__rendered{color:#666;line-height:19px;min-height:19px;overflow:visible;padding-left:0}.select2-results__option[data-selected],.wcf-embed-checkout-form .select2-results__option[aria-selected]{font-size:14px}.wcf-embed-checkout-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.select2-dropdown{border:1px solid #d4d4d4}.wcf-embed-checkout-form .woocommerce #order_review .input-text,.wcf-embed-checkout-form .woocommerce form .form-row input.input-text,.wcf-embed-checkout-form .woocommerce form .form-row select,.wcf-embed-checkout-form .woocommerce form .form-row textarea{display:block;width:100%;min-height:34px;padding:11px 12px;font-family:inherit;font-weight:inherit;font-size:14px;line-height:1.42857143!important;color:#555;background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;height:auto}.wcf-embed-checkout-form #order_review{padding:3px;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message{padding:0 2em 1.2em 2em;background-color:transparent;border:none;margin:0;width:100%}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{list-style:none!important;margin:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before,.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-message::before{top:0;left:0}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error::before{content:'\e016'}.wcf-embed-checkout-form .woocommerce .wcf-custom-coupon-field .woocommerce-error li{margin:0 0 0 8px}.wcf-embed-checkout-form .woocommerce #order_review .wcf-custom-coupon-field input[type=text]{font-weight:400}.wcf-embed-checkout-form .wcf-custom-coupon-field{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;margin-bottom:15px;margin-top:25px;border-top:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;padding-top:25px;padding-bottom:25px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.wcf-embed-checkout-form #order_review .wcf-coupon-col-1{width:70%;display:inline-block;padding-right:20px}.wcf-embed-checkout-form #order_review .wcf-coupon-col-2{width:30%}.wcf-embed-checkout-form .select2-container--open,.wcf-embed-checkout-form input[type=email]:focus,.wcf-embed-checkout-form input[type=password]:focus,.wcf-embed-checkout-form input[type=tel]:focus,.wcf-embed-checkout-form input[type=text]:focus,.wcf-embed-checkout-form textarea:focus{border-color:#b3b3b3;-webkit-box-shadow:none;box-shadow:none;outline:0}.wcf-embed-checkout-form button:focus{outline:0;outline-color:none;outline-style:none;outline-width:none}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row button,.wcf-embed-checkout-form form.checkout_coupon .button{display:block;clear:both;border:none;font-size:15px;font-family:inherit;font-weight:inherit;background-color:#f16334;line-height:9px;padding:18px;margin-bottom:10px;width:100%;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button{border:1px solid;border-color:#f16334;background-color:#f16334;font-family:inherit;font-weight:inherit;font-size:18px;letter-spacing:.5px;width:100%;padding:16px 24px;font-size:16px;line-height:1.5;-webkit-border-radius:3px;border-radius:3px;color:#fff;text-transform:uppercase}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small{padding:8px 6px;background-color:#c8c8c8;border:1px #c8c8c8 solid}.wcf-embed-checkout-form .woocommerce #order_review button.wcf-btn-small:hover{border-color:#f16334;background-color:#f16334}.wcf-embed-checkout-form .woocommerce #payment #place_order:hover{background-color:#f16334;border-color:#f16334;color:#fff}.wcf-embed-checkout-form .woocommerce-checkout{display:inline-block;width:100%}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:inline-block;width:55%;float:left;padding-right:40px;margin:20px 0 0}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper,.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-shipping-fields .woocommerce-shipping-fields__field-wrapper{margin:0 -7px;-ms-flex-wrap:wrap;flex-wrap:wrap;-js-display:flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap}.wcf-embed-checkout-form .woocommerce-checkout .col2-set .woocommerce-additional-fields .woocommerce-additional-fields__field-wrapper{margin:0 -7px}.wcf-embed-checkout-form-two-column .woocommerce-checkout .wcf-order-wrap{display:inline-block;float:none;width:45%;border:none;background-color:inherit;padding:0 10px;-webkit-border-radius:3px;border-radius:3px}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{display:inline-block;font-family:inherit;font-weight:600;width:100%;margin:20px 0 0;padding:3px 3px 20px;border:none;border-bottom:none}.wcf-embed-checkout-form .woocommerce-checkout #payment{background-color:inherit;border:none;-webkit-border-radius:0;border-radius:0}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{padding:1em 0}.wcf-embed-checkout-form #add_payment_method #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-cart #payment ul.payment_methods,.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods{border:none}.wcf-embed-checkout-form .woocommerce form .form-row{display:block;margin-bottom:1.1em;padding:3px 7px;position:relative}.wcf-embed-checkout-form .woocommerce form .woocommerce-account-fields .form-row{padding:0}.wcf-embed-checkout-form table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:left}.wcf-embed-checkout-form table.shop_table td strong.product-quantity{font-weight:400}.wcf-embed-checkout-form table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.wcf-embed-checkout-form table.shop_table #shipping_method .amount{font-weight:400}.wcf-embed-checkout-form table.shop_table th{border:none;font-weight:400;padding:9px 0;line-height:1.2em}.wcf-embed-checkout-form table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.wcf-embed-checkout-form table.shop_table td,.wcf-embed-checkout-form table.shop_table td dl dd,.wcf-embed-checkout-form table.shop_table td dl dt,.wcf-embed-checkout-form table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.wcf-embed-checkout-form table.shop_table td dl dd p{margin-top:0}.wcf-embed-checkout-form table.shop_table tbody th,.wcf-embed-checkout-form table.shop_table tfoot td,.wcf-embed-checkout-form table.shop_table tfoot th{border:none;font-weight:400;width:50%}.wcf-embed-checkout-form table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table th.product-name,.wcf-embed-checkout-form table.shop_table th.product-total{font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) td,.wcf-embed-checkout-form table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total td,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-total th,.wcf-embed-checkout-form table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(1),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(1){width:70%}.wcf-embed-checkout-form table.shop_table tbody tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table tfoot tr td:nth-child(2),.wcf-embed-checkout-form table.shop_table thead tr th:nth-child(2){width:30%}.wcf-embed-checkout-form .woocommerce form.woocommerce-form-login .form-row label,.wcf-embed-checkout-form .woocommerce-checkout .form-row label{font-size:13px;line-height:1em;letter-spacing:.3px;font-family:inherit;font-weight:inherit;text-transform:capitalize;margin-bottom:8px}.wcf-embed-checkout-form .woocommerce .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text{line-height:20px;text-transform:initial}.wcf-embed-checkout-form #payment .woocommerce-privacy-policy-text p{font-family:inherit;font-weight:inherit;font-size:11px;color:#777;margin-top:0;text-align:justify}.wcf-embed-checkout-form #payment .wc_payment_methods .payment_box p{margin:0}.wcf-embed-checkout-form .woocommerce a{color:#f16334;text-decoration:none}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-info,.wcf-embed-checkout-form .woocommerce .woocommerce-message,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{padding:1em 2em .4em 2em;border-top:none;background-color:inherit;font-size:14px;font-weight:500;margin:0}.wcf-embed-checkout-form .woocommerce-info::before,.wcf-embed-checkout-form .woocommerce-message::before{left:.1em;color:#f16334}.wcf-embed-checkout-form .woocommerce .woocommerce-NoticeGroup .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-error,.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-error{background-color:#fff6f6;border:dashed 1px #a00;padding:25px 25px 20px;color:#a00;margin:1rem 0 1rem;font-size:14px;width:100%}.wcf-embed-checkout-form .woocommerce .woocommerce-error::before{content:''}.wcf-embed-checkout-form .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before{display:inline}.wcf-embed-checkout-form .woocommerce .woocommerce-notices-wrapper .woocommerce-message{margin:1em 0 1em}.wcf-embed-checkout-form .woocommerce .woocommerce-error li{list-style:disc inside!important;margin:0 0 8px}.wcf-embed-checkout-form .woocommerce .woocommerce-error li strong{font-weight:400}.wcf-embed-checkout-form .woocommerce form.checkout_coupon{border:1px solid #d3ced2;padding:30px 20px 20px;margin:2em 0;text-align:left;-webkit-border-radius:5px;border-radius:5px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-size:14px}.wcf-embed-checkout-form .woocommerce .checkout_coupon p{font-family:inherit;font-weight:500;margin-top:0;margin-bottom:10px}@media only screen and (max-width:768px){.wcf-embed-checkout-form form .wcf-column-33{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review_heading{width:100%}.wcf-embed-checkout-form .woocommerce-checkout #order_review{width:100%}.wcf-embed-checkout-form .woocommerce-checkout .wcf-order-wrap{width:100%}.wcf-embed-checkout-form .woocommerce-checkout{display:block}.wcf-embed-checkout-form .woocommerce-checkout .col2-set{display:block;width:100%;padding-right:0;margin:20px 0 0}.wcf-embed-checkout-form form.checkout_coupon .button{font-size:12px}.wcf-bump-order-field-wrap .wcf-bump-order-label{font-size:16px;text-transform:capitalize}.wcf-embed-checkout-form .woocommerce .col2-set .col-1,.wcf-embed-checkout-form .woocommerce .col2-set .col-2,.wcf-embed-checkout-form .woocommerce .wcf-order-wrap,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-1,.wcf-embed-checkout-form .woocommerce-page .col2-set .col-2,.wcf-embed-checkout-form .woocommerce-page .wcf-order-wrap{padding:15px 18px}.wcf-embed-checkout-form .woocommerce form .form-row-first,.wcf-embed-checkout-form .woocommerce form .form-row-last,.wcf-embed-checkout-form .woocommerce-page form .form-row-first,.wcf-embed-checkout-form .woocommerce-page form .form-row-last{width:100%}.wcf-embed-checkout-form #order_review_heading,.wcf-embed-checkout-form .woocommerce #ship-to-different-address,.wcf-embed-checkout-form .woocommerce-additional-fields>h3,.wcf-embed-checkout-form .woocommerce-billing-fields>h3{font-size:1em}}#et-info-email:before,#et-info-phone:before,#et_search_icon:before,.comment-reply-link:after,.et-cart-info span:before,.et-pb-arrow-next:before,.et-pb-arrow-prev:before,.et-social-icon a:before,.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before,.et_overlay:before,.et_password_protected_form .et_submit_button:after,.et_pb_button:after,.et_pb_contact_reset:after,.et_pb_contact_submit:after,.et_pb_font_icon:before,.et_pb_newsletter_button:after,.et_pb_pricing_table_button:after,.et_pb_promo_button:after,.et_pb_social_icon a.icon:before,.et_pb_testimonial:before,.et_pb_toggle_title:before,.form-submit .et_pb_button:after,.mobile_menu_bar:before,.woocommerce #content input.button.alt:after,.woocommerce #content input.button:after,.woocommerce #respond input#submit.alt:after,.woocommerce #respond input#submit:after,.woocommerce a.button.alt:after,.woocommerce button.button.alt:after,.woocommerce button.button:after,.woocommerce button.single_add_to_cart_button.button:after,.woocommerce input.button.alt:after,.woocommerce input.button:after,.woocommerce-page #content input.button.alt:after,.woocommerce-page #content input.button:after,.woocommerce-page #respond input#submit.alt:after,.woocommerce-page #respond input#submit:after,.woocommerce-page a.button.alt:after,.woocommerce-page a.button:after,.woocommerce-page button.button.alt:after,.woocommerce-page button.button:after,.woocommerce-page input.button.alt:after,.woocommerce-page input.button:after,a.et_pb_more_button:after{text-shadow:0 0;font-family:none;font-weight:400;font-style:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1;text-transform:none;speak:none}.comment-reply-link:hover:after,.woocommerce #content input.button.alt:hover:after,.woocommerce #content input.button:hover:after,.woocommerce #respond input#submit.alt:hover:after,.woocommerce #respond input#submit:hover:after,.woocommerce a.button.alt:hover:after,.woocommerce a.button:hover:after,.woocommerce button.button.alt:hover:after,.woocommerce button.button:hover:after,.woocommerce input.button.alt:hover:after,.woocommerce input.button:hover:after,.woocommerce-page #content input.button.alt:hover:after,.woocommerce-page #content input.button:hover:after,.woocommerce-page #respond input#submit.alt:hover:after,.woocommerce-page #respond input#submit:hover:after,.woocommerce-page a.button.alt:hover:after,.woocommerce-page a.button:hover:after,.woocommerce-page button.button.alt:hover:after,.woocommerce-page button.button:hover:after,.woocommerce-page input.button.alt:hover:after,.woocommerce-page input.button:hover:after{opacity:0}.thrv_wrapper .wcf-embed-checkout-form div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
|
assets/min-css/frontend-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
html{line-height:1.15;-webkit-text-size-adjust:100%}@font-face{font-family:cartflows-icon;src:url(../fonts/cartflows-icon.eot?81m15v);src:url(../fonts/cartflows-icon.eot?81m15v#iefix) format('embedded-opentype'),url(../fonts/cartflows-icon.ttf?81m15v) format('truetype'),url(../fonts/cartflows-icon.woff?81m15v) format('woff'),url(../fonts/cartflows-icon.svg?81m15v#cartflows-icon) format('svg');font-weight:400;font-style:normal}.cartflows-icon{font-family:cartflows-icon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cartflows-icon-close:before{content:"\e602";font-family:cartflows-icon}.cartflows-icon-cross:before{content:"\e601"}.cartflows-icon-check:before{content:"\e600"}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}body,button,input,optgroup,select,textarea{color:#404040;font-family:sans-serif;font-size:16px;font-size:1rem;line-height:1.5}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}cite,dfn,em,i{font-style:italic}blockquote{margin:0 1.5em}address{margin:0 0 1.5em}pre{background:#eee;font-family:"Courier 10 Pitch",Courier,monospace;font-size:15px;font-size:.9375rem;line-height:1.6;margin-bottom:1.6em;max-width:100%;overflow:auto;padding:1.6em}code,kbd,tt,var{font-family:Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;font-size:15px;font-size:.9375rem}abbr,acronym{border-bottom:1px dotted #666;cursor:help}ins,mark{background:#fff9c0;text-decoration:none}big{font-size:125%}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{background:#fff}hr{background-color:#ccc;border:0;height:1px;margin-bottom:1.5em}ol,ul{margin:0 3em 1.5em 0}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-right:1.5em}dt{font-weight:700}dd{margin:0 1.5em 1.5em}img{height:auto;max-width:100%}figure{margin:1em 0}table{margin:0 0 1.5em;width:100%}button,input[type=button],input[type=reset],input[type=submit]{border:1px solid;border-color:#ccc #ccc #bbb;-webkit-border-radius:3px;border-radius:3px;background:#e6e6e6;color:rgba(0,0,0,.8);font-size:12px;font-size:.75rem;line-height:1;padding:.6em 1em .4em}button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{border-color:#ccc #bbb #aaa}button:active,button:focus,input[type=button]:active,input[type=button]:focus,input[type=reset]:active,input[type=reset]:focus,input[type=submit]:active,input[type=submit]:focus{border-color:#aaa #bbb #bbb}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{color:#666;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;padding:3px}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=range]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{color:#111}select{border:1px solid #ccc}textarea{width:100%}a{color:#4169e1}a:active,a:hover{outline:0}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#f1f1f1;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;-webkit-clip-path:none;clip-path:none;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#content[tabindex="-1"]:focus{outline:0}.alignleft{display:inline;float:right;margin-left:1.5em}.alignright{display:inline;float:left;margin-right:1.5em}.aligncenter{clear:both;display:block;margin-right:auto;margin-left:auto}.clear:after,.clear:before{content:"";display:table;table-layout:fixed}.clear:after{clear:both}.widget{margin:0 0 1.5em}.widget select{max-width:100%}embed,iframe,object{max-width:100%}.wcf-button{display:inline-block;padding:12px 24px;background:#ccc;text-decoration:none;margin:5px}body.cartflows-default{background-color:#f5f5f5}.cartflows-default .cartflows-container{max-width:1200px;width:100%;padding:0 20px;margin:60px auto}.cartflows-default .cartflows-primary{background-color:#fff;padding:70px;overflow:hidden;max-width:100%}@media (max-width:768px){.cartflows-default .cartflows-container{padding:0;margin:0}.cartflows-default .cartflows-primary{padding:20px 30px}}@media (max-width:544px){.cartflows-default .cartflows-primary{padding:20px 15px}}.wcf-preview-mode{background:#f16334;position:fixed;bottom:0;right:0;width:100%;height:2.6em;color:#fff;text-align:center;font-size:14px;line-height:2.6em;pointer-events:none;z-index:9999999}@media only screen and (max-width:768px){.wcf-preview-mode{font-size:13px;line-height:18px;padding:4px 10px;height:auto}}.wcf-footer-primary .wcf-footer-content p{margin:1.5em 0;text-align:center}.wcf-thankyou-wrap{padding:0;margin:0 auto;width:100%;max-width:55em;font-size:13px}.wcf-thankyou-wrap a{color:#404040}.woocommerce-order ul.order_details::after,.woocommerce-order ul.order_details::before{content:' ';display:table}.woocommerce-order ul.order_details::after{clear:both}.woocommerce-order ul.order_details,.woocommerce-order ul.order_details li{list-style:none;line-height:1}.woocommerce-order ul.order_details li{display:inline-block;border-left:1px dashed #ccc;padding:.5em 0 .5em 1em;margin:.5em 0 .5em .5em;list-style-type:none}.woocommerce-order ul.order_details li:first-child{padding-right:0}.woocommerce-order ul.order_details li:last-child{border-left:0;padding-left:0}.woocommerce-order ul.order_details li strong{display:block;margin-top:.7em}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{margin:0 0 2em;-webkit-border-radius:3px;border-radius:3px;width:100%;display:block}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{background:#f1f1f1;padding:1.5em 2.5em}.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.8em 0;margin:0 0 .5em;font-size:1.5em;font-weight:600;color:#404040}.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1.5em;padding:0 .5em;text-align:center}.woocommerce-order-details table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:right}.woocommerce-order-details table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.woocommerce-order-details table.shop_table th{border:none;font-weight:400;padding:9px 0;line-height:1.2em}.woocommerce-order-details table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.woocommerce-order-details table.shop_table td,.woocommerce-order-details table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.woocommerce-order-details table.shop_table tbody th,.woocommerce-order-details table.shop_table tfoot td,.woocommerce-order-details table.shop_table tfoot th{font-weight:400;border:none}.woocommerce-order-details table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.woocommerce-order-details table.shop_table th.product-name,.woocommerce-order-details table.shop_table th.product-total{font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) td,.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.recurring-total td,.woocommerce-order-details table.shop_table tfoot tr.recurring-total th,.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.woocommerce-order .col2-set{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.woocommerce-order .col2-set .col-1{margin-left:2%}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:49%;display:inline-block}.woocommerce-order .woocommerce-customer-details address{border-left-width:1px;border-bottom-width:1px;-webkit-border-radius:0;border-radius:0;font-style:normal}.woocommerce-order .woocommerce-customer-details address p{margin:0}@media only screen and (max-width:768px){.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1em}.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.5em 0;font-size:1.5em}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{padding:1.5em 2em}.woocommerce-order ul.order_details li{display:block;width:100%;border-left:none;padding:.5em 0 1em 1em;border-bottom:1px dashed #ccc}.woocommerce-order ul.order_details li:last-child{border:none}.woocommerce-order .col2-set{display:block}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:100%;display:block}}
|
1 |
+
html{line-height:1.15;-webkit-text-size-adjust:100%}@font-face{font-family:cartflows-icon;src:url(../fonts/cartflows-icon.eot?81m15v);src:url(../fonts/cartflows-icon.eot?81m15v#iefix) format('embedded-opentype'),url(../fonts/cartflows-icon.ttf?81m15v) format('truetype'),url(../fonts/cartflows-icon.woff?81m15v) format('woff'),url(../fonts/cartflows-icon.svg?81m15v#cartflows-icon) format('svg');font-weight:400;font-style:normal}.cartflows-icon{font-family:cartflows-icon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cartflows-icon-close:before{content:"\e602";font-family:cartflows-icon}.cartflows-icon-cross:before{content:"\e601"}.cartflows-icon-check:before{content:"\e600"}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}body,button,input,optgroup,select,textarea{color:#404040;font-family:sans-serif;font-size:16px;font-size:1rem;line-height:1.5}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}cite,dfn,em,i{font-style:italic}blockquote{margin:0 1.5em}address{margin:0 0 1.5em}pre{background:#eee;font-family:"Courier 10 Pitch",Courier,monospace;font-size:15px;font-size:.9375rem;line-height:1.6;margin-bottom:1.6em;max-width:100%;overflow:auto;padding:1.6em}code,kbd,tt,var{font-family:Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;font-size:15px;font-size:.9375rem}abbr,acronym{border-bottom:1px dotted #666;cursor:help}ins,mark{background:#fff9c0;text-decoration:none}big{font-size:125%}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{background:#fff}hr{background-color:#ccc;border:0;height:1px;margin-bottom:1.5em}ol,ul{margin:0 3em 1.5em 0}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-right:1.5em}dt{font-weight:700}dd{margin:0 1.5em 1.5em}img{height:auto;max-width:100%}figure{margin:1em 0}table{margin:0 0 1.5em;width:100%}button,input[type=button],input[type=reset],input[type=submit]{border:1px solid;border-color:#ccc #ccc #bbb;-webkit-border-radius:3px;border-radius:3px;background:#e6e6e6;color:rgba(0,0,0,.8);font-size:12px;font-size:.75rem;line-height:1;padding:.6em 1em .4em}button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{border-color:#ccc #bbb #aaa}button:active,button:focus,input[type=button]:active,input[type=button]:focus,input[type=reset]:active,input[type=reset]:focus,input[type=submit]:active,input[type=submit]:focus{border-color:#aaa #bbb #bbb}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{color:#666;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;padding:3px}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=range]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{color:#111}select{border:1px solid #ccc}textarea{width:100%}a{color:#4169e1}a:active,a:hover{outline:0}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#f1f1f1;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;-webkit-clip-path:none;clip-path:none;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#content[tabindex="-1"]:focus{outline:0}.alignleft{display:inline;float:right;margin-left:1.5em}.alignright{display:inline;float:left;margin-right:1.5em}.aligncenter{clear:both;display:block;margin-right:auto;margin-left:auto}.clear:after,.clear:before{content:"";display:table;table-layout:fixed}.clear:after{clear:both}.widget{margin:0 0 1.5em}.widget select{max-width:100%}embed,iframe,object{max-width:100%}.wcf-button{display:inline-block;padding:12px 24px;background:#ccc;text-decoration:none;margin:5px}body.cartflows-default{background-color:#f5f5f5}.cartflows-default .cartflows-container{max-width:1200px;width:100%;padding:0 20px;margin:60px auto}.cartflows-default .cartflows-primary{background-color:#fff;padding:70px;overflow:hidden;max-width:100%}@media (max-width:768px){.cartflows-default .cartflows-container{padding:0;margin:0}.cartflows-default .cartflows-primary{padding:20px 30px}}@media (max-width:544px){.cartflows-default .cartflows-primary{padding:20px 15px}}.wcf-preview-mode{background:#f16334;position:fixed;bottom:0;right:0;width:100%;height:2.6em;color:#fff;text-align:center;font-size:14px;line-height:2.6em;pointer-events:none;z-index:9999999}@media only screen and (max-width:768px){.wcf-preview-mode{font-size:13px;line-height:18px;padding:4px 10px;height:auto}}.wcf-footer-primary .wcf-footer-content p{margin:1.5em 0;text-align:center}.wcf-thankyou-wrap{padding:0;margin:0 auto;width:100%;max-width:55em;font-size:13px}.wcf-thankyou-wrap a{color:#404040}.woocommerce-order ul.order_details::after,.woocommerce-order ul.order_details::before{content:' ';display:table}.woocommerce-order ul.order_details::after{clear:both}.woocommerce-order ul.order_details,.woocommerce-order ul.order_details li{list-style:none;line-height:1}.woocommerce-order ul.order_details li{display:inline-block;border-left:1px dashed #ccc;padding:.5em 0 .5em 1em;margin:.5em 0 .5em .5em;list-style-type:none}.woocommerce-order ul.order_details li:first-child{padding-right:0}.woocommerce-order ul.order_details li:last-child{border-left:0;padding-left:0}.woocommerce-order ul.order_details li strong{display:block;margin-top:.7em}.woocommerce-order .woocommerce-bacs-bank-details,.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order .woocommerce-order-downloads,.woocommerce-order ul.order_details{margin:0 0 2em;-webkit-border-radius:3px;border-radius:3px;width:100%;display:block}.woocommerce-order .woocommerce-bacs-bank-details ul.bacs_details{padding:0}.woocommerce-order .woocommerce-bacs-bank-details,.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order .woocommerce-order-downloads,.woocommerce-order ul.order_details{background:#f1f1f1;padding:1.5em 2.5em}.woocommerce-order .woocommerce-order-downloads__title,.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.wc-bacs-bank-details-heading,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.8em 0;margin:0 0 .5em;font-size:1.5em;font-weight:600;color:#404040}.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1.5em;padding:0 .5em;text-align:center}.woocommerce-order-details table.shop_table,.woocommerce-order-downloads table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:right}.woocommerce-order-details table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.woocommerce-order-details table.shop_table th,.woocommerce-order-downloads table.shop_table th{border:none;font-weight:600;padding:9px 0;line-height:1.2em}.woocommerce-order-details table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.woocommerce-order-details table.shop_table td,.woocommerce-order-details table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.woocommerce-order-details table.shop_table tbody th,.woocommerce-order-details table.shop_table tfoot td,.woocommerce-order-details table.shop_table tfoot th{font-weight:400;border:none}.woocommerce-order-details table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.woocommerce-order-details table.shop_table th.product-name,.woocommerce-order-details table.shop_table th.product-total{font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) td,.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.recurring-total td,.woocommerce-order-details table.shop_table tfoot tr.recurring-total th,.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.woocommerce-order .col2-set{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.woocommerce-order .col2-set .col-1{margin-left:2%}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:49%;display:inline-block}.woocommerce-order .woocommerce-customer-details address{border-left-width:1px;border-bottom-width:1px;-webkit-border-radius:0;border-radius:0;font-style:normal}.woocommerce-order .woocommerce-customer-details address p{margin:0}@media only screen and (max-width:768px){.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1em}.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.5em 0;font-size:1.5em}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{padding:1.5em 2em}.woocommerce-order ul.order_details li{display:block;width:100%;border-left:none;padding:.5em 0 1em 1em;border-bottom:1px dashed #ccc}.woocommerce-order ul.order_details li:last-child{border:none}.woocommerce-order .col2-set{display:block}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:100%;display:block}}
|
assets/min-css/frontend.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
html{line-height:1.15;-webkit-text-size-adjust:100%}@font-face{font-family:cartflows-icon;src:url(../fonts/cartflows-icon.eot?81m15v);src:url(../fonts/cartflows-icon.eot?81m15v#iefix) format('embedded-opentype'),url(../fonts/cartflows-icon.ttf?81m15v) format('truetype'),url(../fonts/cartflows-icon.woff?81m15v) format('woff'),url(../fonts/cartflows-icon.svg?81m15v#cartflows-icon) format('svg');font-weight:400;font-style:normal}.cartflows-icon{font-family:cartflows-icon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cartflows-icon-close:before{content:"\e602";font-family:cartflows-icon}.cartflows-icon-cross:before{content:"\e601"}.cartflows-icon-check:before{content:"\e600"}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}body,button,input,optgroup,select,textarea{color:#404040;font-family:sans-serif;font-size:16px;font-size:1rem;line-height:1.5}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}cite,dfn,em,i{font-style:italic}blockquote{margin:0 1.5em}address{margin:0 0 1.5em}pre{background:#eee;font-family:"Courier 10 Pitch",Courier,monospace;font-size:15px;font-size:.9375rem;line-height:1.6;margin-bottom:1.6em;max-width:100%;overflow:auto;padding:1.6em}code,kbd,tt,var{font-family:Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;font-size:15px;font-size:.9375rem}abbr,acronym{border-bottom:1px dotted #666;cursor:help}ins,mark{background:#fff9c0;text-decoration:none}big{font-size:125%}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{background:#fff}hr{background-color:#ccc;border:0;height:1px;margin-bottom:1.5em}ol,ul{margin:0 0 1.5em 3em}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-left:1.5em}dt{font-weight:700}dd{margin:0 1.5em 1.5em}img{height:auto;max-width:100%}figure{margin:1em 0}table{margin:0 0 1.5em;width:100%}button,input[type=button],input[type=reset],input[type=submit]{border:1px solid;border-color:#ccc #ccc #bbb;-webkit-border-radius:3px;border-radius:3px;background:#e6e6e6;color:rgba(0,0,0,.8);font-size:12px;font-size:.75rem;line-height:1;padding:.6em 1em .4em}button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{border-color:#ccc #bbb #aaa}button:active,button:focus,input[type=button]:active,input[type=button]:focus,input[type=reset]:active,input[type=reset]:focus,input[type=submit]:active,input[type=submit]:focus{border-color:#aaa #bbb #bbb}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{color:#666;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;padding:3px}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=range]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{color:#111}select{border:1px solid #ccc}textarea{width:100%}a{color:#4169e1}a:active,a:hover{outline:0}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#f1f1f1;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;-webkit-clip-path:none;clip-path:none;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#content[tabindex="-1"]:focus{outline:0}.alignleft{display:inline;float:left;margin-right:1.5em}.alignright{display:inline;float:right;margin-left:1.5em}.aligncenter{clear:both;display:block;margin-left:auto;margin-right:auto}.clear:after,.clear:before{content:"";display:table;table-layout:fixed}.clear:after{clear:both}.widget{margin:0 0 1.5em}.widget select{max-width:100%}embed,iframe,object{max-width:100%}.wcf-button{display:inline-block;padding:12px 24px;background:#ccc;text-decoration:none;margin:5px}body.cartflows-default{background-color:#f5f5f5}.cartflows-default .cartflows-container{max-width:1200px;width:100%;padding:0 20px;margin:60px auto}.cartflows-default .cartflows-primary{background-color:#fff;padding:70px;overflow:hidden;max-width:100%}@media (max-width:768px){.cartflows-default .cartflows-container{padding:0;margin:0}.cartflows-default .cartflows-primary{padding:20px 30px}}@media (max-width:544px){.cartflows-default .cartflows-primary{padding:20px 15px}}.wcf-preview-mode{background:#f16334;position:fixed;bottom:0;left:0;width:100%;height:2.6em;color:#fff;text-align:center;font-size:14px;line-height:2.6em;pointer-events:none;z-index:9999999}@media only screen and (max-width:768px){.wcf-preview-mode{font-size:13px;line-height:18px;padding:4px 10px;height:auto}}.wcf-footer-primary .wcf-footer-content p{margin:1.5em 0;text-align:center}.wcf-thankyou-wrap{padding:0;margin:0 auto;width:100%;max-width:55em;font-size:13px}.wcf-thankyou-wrap a{color:#404040}.woocommerce-order ul.order_details::after,.woocommerce-order ul.order_details::before{content:' ';display:table}.woocommerce-order ul.order_details::after{clear:both}.woocommerce-order ul.order_details,.woocommerce-order ul.order_details li{list-style:none;line-height:1}.woocommerce-order ul.order_details li{display:inline-block;border-right:1px dashed #ccc;padding:.5em 1em .5em 0;margin:.5em .5em .5em 0;list-style-type:none}.woocommerce-order ul.order_details li:first-child{padding-left:0}.woocommerce-order ul.order_details li:last-child{border-right:0;padding-right:0}.woocommerce-order ul.order_details li strong{display:block;margin-top:.7em}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{margin:0 0 2em;-webkit-border-radius:3px;border-radius:3px;width:100%;display:block}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{background:#f1f1f1;padding:1.5em 2.5em}.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.8em 0;margin:0 0 .5em;font-size:1.5em;font-weight:600;color:#404040}.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1.5em;padding:0 .5em;text-align:center}.woocommerce-order-details table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:left}.woocommerce-order-details table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.woocommerce-order-details table.shop_table th{border:none;font-weight:400;padding:9px 0;line-height:1.2em}.woocommerce-order-details table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.woocommerce-order-details table.shop_table td,.woocommerce-order-details table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.woocommerce-order-details table.shop_table tbody th,.woocommerce-order-details table.shop_table tfoot td,.woocommerce-order-details table.shop_table tfoot th{font-weight:400;border:none}.woocommerce-order-details table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.woocommerce-order-details table.shop_table th.product-name,.woocommerce-order-details table.shop_table th.product-total{font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) td,.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.recurring-total td,.woocommerce-order-details table.shop_table tfoot tr.recurring-total th,.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.woocommerce-order .col2-set{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.woocommerce-order .col2-set .col-1{margin-right:2%}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:49%;display:inline-block}.woocommerce-order .woocommerce-customer-details address{border-right-width:1px;border-bottom-width:1px;-webkit-border-radius:0;border-radius:0;font-style:normal}.woocommerce-order .woocommerce-customer-details address p{margin:0}@media only screen and (max-width:768px){.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1em}.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.5em 0;font-size:1.5em}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{padding:1.5em 2em}.woocommerce-order ul.order_details li{display:block;width:100%;border-right:none;padding:.5em 1em 1em 0;border-bottom:1px dashed #ccc}.woocommerce-order ul.order_details li:last-child{border:none}.woocommerce-order .col2-set{display:block}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:100%;display:block}}
|
1 |
+
html{line-height:1.15;-webkit-text-size-adjust:100%}@font-face{font-family:cartflows-icon;src:url(../fonts/cartflows-icon.eot?81m15v);src:url(../fonts/cartflows-icon.eot?81m15v#iefix) format('embedded-opentype'),url(../fonts/cartflows-icon.ttf?81m15v) format('truetype'),url(../fonts/cartflows-icon.woff?81m15v) format('woff'),url(../fonts/cartflows-icon.svg?81m15v#cartflows-icon) format('svg');font-weight:400;font-style:normal}.cartflows-icon{font-family:cartflows-icon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cartflows-icon-close:before{content:"\e602";font-family:cartflows-icon}.cartflows-icon-cross:before{content:"\e601"}.cartflows-icon-check:before{content:"\e600"}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}body,button,input,optgroup,select,textarea{color:#404040;font-family:sans-serif;font-size:16px;font-size:1rem;line-height:1.5}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}cite,dfn,em,i{font-style:italic}blockquote{margin:0 1.5em}address{margin:0 0 1.5em}pre{background:#eee;font-family:"Courier 10 Pitch",Courier,monospace;font-size:15px;font-size:.9375rem;line-height:1.6;margin-bottom:1.6em;max-width:100%;overflow:auto;padding:1.6em}code,kbd,tt,var{font-family:Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;font-size:15px;font-size:.9375rem}abbr,acronym{border-bottom:1px dotted #666;cursor:help}ins,mark{background:#fff9c0;text-decoration:none}big{font-size:125%}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{background:#fff}hr{background-color:#ccc;border:0;height:1px;margin-bottom:1.5em}ol,ul{margin:0 0 1.5em 3em}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-left:1.5em}dt{font-weight:700}dd{margin:0 1.5em 1.5em}img{height:auto;max-width:100%}figure{margin:1em 0}table{margin:0 0 1.5em;width:100%}button,input[type=button],input[type=reset],input[type=submit]{border:1px solid;border-color:#ccc #ccc #bbb;-webkit-border-radius:3px;border-radius:3px;background:#e6e6e6;color:rgba(0,0,0,.8);font-size:12px;font-size:.75rem;line-height:1;padding:.6em 1em .4em}button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{border-color:#ccc #bbb #aaa}button:active,button:focus,input[type=button]:active,input[type=button]:focus,input[type=reset]:active,input[type=reset]:focus,input[type=submit]:active,input[type=submit]:focus{border-color:#aaa #bbb #bbb}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{color:#666;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;padding:3px}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=range]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{color:#111}select{border:1px solid #ccc}textarea{width:100%}a{color:#4169e1}a:active,a:hover{outline:0}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#f1f1f1;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;-webkit-clip-path:none;clip-path:none;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#content[tabindex="-1"]:focus{outline:0}.alignleft{display:inline;float:left;margin-right:1.5em}.alignright{display:inline;float:right;margin-left:1.5em}.aligncenter{clear:both;display:block;margin-left:auto;margin-right:auto}.clear:after,.clear:before{content:"";display:table;table-layout:fixed}.clear:after{clear:both}.widget{margin:0 0 1.5em}.widget select{max-width:100%}embed,iframe,object{max-width:100%}.wcf-button{display:inline-block;padding:12px 24px;background:#ccc;text-decoration:none;margin:5px}body.cartflows-default{background-color:#f5f5f5}.cartflows-default .cartflows-container{max-width:1200px;width:100%;padding:0 20px;margin:60px auto}.cartflows-default .cartflows-primary{background-color:#fff;padding:70px;overflow:hidden;max-width:100%}@media (max-width:768px){.cartflows-default .cartflows-container{padding:0;margin:0}.cartflows-default .cartflows-primary{padding:20px 30px}}@media (max-width:544px){.cartflows-default .cartflows-primary{padding:20px 15px}}.wcf-preview-mode{background:#f16334;position:fixed;bottom:0;left:0;width:100%;height:2.6em;color:#fff;text-align:center;font-size:14px;line-height:2.6em;pointer-events:none;z-index:9999999}@media only screen and (max-width:768px){.wcf-preview-mode{font-size:13px;line-height:18px;padding:4px 10px;height:auto}}.wcf-footer-primary .wcf-footer-content p{margin:1.5em 0;text-align:center}.wcf-thankyou-wrap{padding:0;margin:0 auto;width:100%;max-width:55em;font-size:13px}.wcf-thankyou-wrap a{color:#404040}.woocommerce-order ul.order_details::after,.woocommerce-order ul.order_details::before{content:' ';display:table}.woocommerce-order ul.order_details::after{clear:both}.woocommerce-order ul.order_details,.woocommerce-order ul.order_details li{list-style:none;line-height:1}.woocommerce-order ul.order_details li{display:inline-block;border-right:1px dashed #ccc;padding:.5em 1em .5em 0;margin:.5em .5em .5em 0;list-style-type:none}.woocommerce-order ul.order_details li:first-child{padding-left:0}.woocommerce-order ul.order_details li:last-child{border-right:0;padding-right:0}.woocommerce-order ul.order_details li strong{display:block;margin-top:.7em}.woocommerce-order .woocommerce-bacs-bank-details,.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order .woocommerce-order-downloads,.woocommerce-order ul.order_details{margin:0 0 2em;-webkit-border-radius:3px;border-radius:3px;width:100%;display:block}.woocommerce-order .woocommerce-bacs-bank-details ul.bacs_details{padding:0}.woocommerce-order .woocommerce-bacs-bank-details,.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order .woocommerce-order-downloads,.woocommerce-order ul.order_details{background:#f1f1f1;padding:1.5em 2.5em}.woocommerce-order .woocommerce-order-downloads__title,.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.wc-bacs-bank-details-heading,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.8em 0;margin:0 0 .5em;font-size:1.5em;font-weight:600;color:#404040}.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1.5em;padding:0 .5em;text-align:center}.woocommerce-order-details table.shop_table,.woocommerce-order-downloads table.shop_table{border:none;border-bottom:0;background-color:inherit;-webkit-border-radius:0;border-radius:0;font-family:inherit;font-weight:inherit;font-size:.95em;margin:0!important;border-collapse:collapse;text-align:left}.woocommerce-order-details table.shop_table #shipping_method{margin:0;padding:0;list-style:none}.woocommerce-order-details table.shop_table th,.woocommerce-order-downloads table.shop_table th{border:none;font-weight:600;padding:9px 0;line-height:1.2em}.woocommerce-order-details table.shop_table tfoot tr:last-child .woocommerce-Price-amount{font-size:1em}.woocommerce-order-details table.shop_table td,.woocommerce-order-details table.shop_table th{padding:.6em 0;line-height:1.4em;border:none}.woocommerce-order-details table.shop_table tbody th,.woocommerce-order-details table.shop_table tfoot td,.woocommerce-order-details table.shop_table tfoot th{font-weight:400;border:none}.woocommerce-order-details table.shop_table tbody{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc}.woocommerce-order-details table.shop_table th.product-name,.woocommerce-order-details table.shop_table th.product-total{font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) td,.woocommerce-order-details table.shop_table tfoot tr.order-total:not(.recurring-total) th{font-weight:600;border-top:1px dashed #ccc}.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{padding-top:1.8em;font-weight:600}.woocommerce-order-details table.shop_table tfoot tr.recurring-total td,.woocommerce-order-details table.shop_table tfoot tr.recurring-total th,.woocommerce-order-details table.shop_table tfoot tr.recurring-totals th{vertical-align:top}.woocommerce-order .col2-set{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.woocommerce-order .col2-set .col-1{margin-right:2%}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:49%;display:inline-block}.woocommerce-order .woocommerce-customer-details address{border-right-width:1px;border-bottom-width:1px;-webkit-border-radius:0;border-radius:0;font-style:normal}.woocommerce-order .woocommerce-customer-details address p{margin:0}@media only screen and (max-width:768px){.woocommerce-order .woocommerce-thankyou-order-received{margin:0 0 1em}.woocommerce-order .woocommerce-thankyou-order-received,.woocommerce-order h2.woocommerce-column__title,.woocommerce-order h2.woocommerce-order-details__title{padding:.5em 0;font-size:1.5em}.woocommerce-order .woocommerce-customer-details,.woocommerce-order .woocommerce-order-details,.woocommerce-order ul.order_details{padding:1.5em 2em}.woocommerce-order ul.order_details li{display:block;width:100%;border-right:none;padding:.5em 1em 1em 0;border-bottom:1px dashed #ccc}.woocommerce-order ul.order_details li:last-child{border:none}.woocommerce-order .col2-set{display:block}.woocommerce-order .col2-set .col-1,.woocommerce-order .col2-set .col-2{width:100%;display:block}}
|
assets/min-css/import-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.no-elementor-notice{border-right:none;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding-right:0}.no-elementor-notice span{color:#f16334;font-size:18px;vertical-align:middle}.site-preview{background:#c5c5c5;display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden}.template.importing .site-preview:after,.template:hover .site-preview:after{opacity:.3}.template.importing .site-preview,.template:hover .site-preview{background:#fff;cursor:pointer}.template .site-preview:after{content:"";background:#fff;opacity:0;top:0;content:"";display:block;top:0;position:absolute;padding-top:66.66666%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;right:0;left:0;bottom:0}.template .notice{padding:.5em;background:rgba(0,0,0,.7);color:#fff;font-weight:400;border:#ffdead;font-size:11px;text-decoration:none;position:absolute;width:100%;vertical-align:middle;top:50%;-webkit-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);left:0;right:0;z-index:4;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}#wcf_create_notice{display:none}.preview:focus,.preview:hover{color:#fff;-webkit-box-shadow:none;box-shadow:none}.preview{text-decoration:none;opacity:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:22%;right:22%;z-index:4;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:13px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:10px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.template-id-container{font-size:15px;font-weight:600;margin:0;padding:10px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65);position:relative}.template-actions{opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;left:0;top:0;padding:5px 5px 0 5px;background:rgba(244,244,244,.7);border-right:1px solid rgba(0,0,0,.05)}.template.importing .preview,.template.importing .template-actions,.template:hover .preview,.template:hover .template-actions,.wcf-step-content .template-actions{opacity:1}.wcf-remote-list .template{position:relative;overflow:hidden}.wcf-remote-list h3{margin-bottom:1em;margin-top:0;font-size:15px;font-weight:600;margin:0;padding:0;text-align:right}.wcf-remote-list img{max-width:100%;vertical-align:middle}.wcf-remote-list *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cartflows-steps-list img{width:100%}#cartflows-steps-list .title{font-weight:700;color:#474747;line-height:2;background:#f7f7f7;padding:.5em 1em}#cartflows-steps-list .image-wrap{-webkit-background-size:cover;background-size:cover;overflow:hidden}#cartflows-steps .close{display:inline-block;padding:2em;cursor:pointer}.template-message-block{text-align:center;margin:0 auto;padding:4em 0}.templator #TB_ajaxContent{width:100%!important}.template-message-block .description{font-style:normal}.template-message-block .spinner{float:none;margin:0}.cartflows-steps-popup{position:fixed;right:0;left:0;top:0;bottom:0;z-index:99999;background:#fff;overflow-y:scroll}.cartflows-steps-popup .notice{max-width:700px;margin:0 auto}.cartflows-load-steps-library .dashicons{height:auto;width:auto;line-height:normal;margin:0 0 0 5px;vertical-align:initial;font-size:100%}.cartflows-load-steps .dashicons{vertical-align:text-bottom}#TB_window{width:100%!important;margin:0 auto!important;text-align:center!important;position:fixed!important;top:0!important;right:0!important;left:0!important;bottom:0!important}#TB_iframeContent{width:100%!important;height:100%!important}@media only screen and (min-device-width :320px) and (max-device-width :1024px){#TB_iframeContent-wrapper{position:fixed;left:0;bottom:50px;right:0;top:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}}#TB_window #TB_ajaxWindowTitle{font-size:1.2rem;display:inline-block;width:auto;padding:0}#TB_window #TB_closeWindowButton{position:relative}.tb-close-icon:before{vertical-align:middle}#TB_window{text-align:center}#TB_iframeContent.tablet{width:768px!important;height:1024px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.tablet.landscape{width:1024px!important}#TB_iframeContent.mobile{width:360px!important;height:640px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.mobile.landscape{width:360px!important}#TB_closeAjaxWindow{float:left}#TB_window.thickbox-loading{margin:0!important}div#TB_window{background-color:#fff}#TB_window #TB_title{color:#0a0c0d;text-align:right;bottom:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:1em 1.5em 1em 1em}@media all and (min-width:769px){#TB_window #TB_title{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}}#TB_window.mobile,#TB_window.tablet{overflow-y:scroll}.top #TB_iframeContent-wrapper{bottom:0;top:80px}#TB_window.top #TB_title{top:0}#TB_window #TB_closeWindowButton:focus .tb-close-icon{-webkit-box-shadow:none;box-shadow:none;color:#666}@media all and (max-width:768px){#TB_closeAjaxWindow{padding-left:0}#TB_window #TB_closeWindowButton,#TB_window .tb-close-icon{width:80px}}.responsive-view .dashicons{color:#ddd}.responsive-view .active{color:#111}.responsive-view a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#TB_window.mobile #TB_iframeContent,#TB_window.tablet #TB_iframeContent{margin-bottom:50px;margin-top:50px}.responsive-view a{color:#666;cursor:pointer;display:inline-block;padding:1em;vertical-align:middle;text-decoration:none}#TB_closeAjaxWindow .tb-close-icon{position:relative}.site-loading{display:none;position:absolute;right:50%;top:50%;text-align:center;color:#555;-webkit-transform:translate(50%,-40%);-ms-transform:translate(50%,-40%);transform:translate(50%,-40%)}.top .site-loading{top:50%;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.site-loading h3{font-size:33px;font-weight:600;margin:0 0 .8em 0}.site-loading p{margin:0}.cartflows-thickbox-loading .site-loading{display:block}.cartflows-thickbox-loading #TB_iframeContent,.cartflows-thickbox-loading #TB_iframeContent-wrapper{display:none}.wcf-remote-list:after,.wcf-remote-list:before{content:"";display:table}.wcf-remote-list::after{content:"";display:table;clear:both}.wcf-template-header .filter-count{line-height:normal}#wcf-page-builders{display:none}#wcf-remote-flow-filters>div,#wcf-remote-step-filters>div{display:inline-block}.wcf-template-header .filter-links{margin:0;padding:0}.wcf-template-header li:focus{outline:0}.wcf-template-header .filter-links li{margin:0;display:inline-block}.wcf-template-header .filter-links li a:focus,.wcf-template-header .filter-links li a:hove{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-template-header .filter-links li .current{color:#000;border-bottom:2px solid #f16334;font-weight:600}.wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8}.wcf-search-form{margin-left:2em;padding-left:0;text-align:left;margin-top:1em;margin-bottom:1em;position:relative}.wcf-template-notice{display:none}#wcf-start-from-scratch{text-align:center}#wcf-start-from-scratch .inner{background:0 0;-webkit-box-shadow:none;box-shadow:none;width:94%;margin:0 auto;float:none;position:absolute;top:40%}#wcf-scratch-steps-categories{display:inline-block}#wcf-scratch-steps-categories select{-webkit-border-radius:0;border-radius:0;height:29px;border:1px solid;border-color:#9e9e9e;border-width:1px;-webkit-box-shadow:none;box-shadow:none;padding:2px;line-height:29px}#wcf-start-from-scratch .description{margin-bottom:2em}#wcf-remote-step-importer .wcf-search-form{display:none}.wcf-search-form .wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8;background:0 0;border-bottom:1px solid #ccc;font-size:1em}.wcf-search-form .wcf-flow-search-input:focus{-webkit-box-shadow:none;box-shadow:none;border-color:#ccc}.cartflows-preview-flow-steps li{display:inline-block;margin:0 1em;position:relative}.cartflows-flow-import-blank.updating-message:before{vertical-align:text-bottom}#wpwrap .cartflows-step-loading h2,#wpwrap .template-message-block h2{font-size:1.5em;margin:0 0 .5em 0;padding:8px 12px;line-height:1.4}#wpwrap .cartflows-step-loading p,#wpwrap .template-message-block p{font-size:1.2em}#wpwrap .cartflows-step-loading .spinner{vertical-align:initial}.wcf-flow-type{position:absolute;left:0;top:0;padding:3px 10px;color:#fff}.wcf-flow-type.pro{background:#f06262}.wcf-templates-popup-overlay{position:fixed;height:100%;width:100%;top:0;right:0;background:rgba(0,0,0,.7);-webkit-transition:opacity .5s;transition:opacity .5s;visibility:hidden;opacity:0;z-index:9999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:none;transition:none}.wcf-templates-popup-overlay.open{visibility:visible;opacity:1;z-index:9999}.wcf-templates-popup-content{max-width:1200px;background-color:#fff;position:absolute;-webkit-border-radius:3px;border-radius:3px;top:40%;right:50%;-webkit-transform:translate(50%,-35%);-ms-transform:translate(50%,-35%);transform:translate(50%,-35%);width:70%;min-height:450px;overflow:hidden}.wcf-templates-popup-content .inner{background:#fff;position:relative;padding:8px 8px 0 8px;display:block;float:right;margin:15px;text-align:center;-webkit-box-shadow:0 0 5px 1px rgba(204,204,204,.3);box-shadow:0 0 5px 1px rgba(204,204,204,.3)}@media only screen and (max-width:480px){.wcf-templates-popup-content{width:90%}.wcf-template-header{display:block!important;padding:15px 15px 0 15px!important}.wcf-popup-close-wrap{position:absolute;top:10px;left:5px}}@media only screen and (min-width:768px){.wcf-templates-popup-content .inner{width:-webkit-calc(25% - 30px);width:calc(25% - 30px)}}html.wcf-popup-open{overflow:hidden}.wcf-button-wrap{margin-top:0;position:absolute;top:10px;right:110px}.wcf-steps-loading #wcf-remote-step-list{display:none!important}#wcf-remote-content{background-color:#f5f5f5;overflow-y:auto;min-height:450px;max-height:450px;padding:20px 20px 20px 20px;clear:both}#wcf-remote-content #wcf-start-from-scratch h1{font-size:23px;font-weight:400;margin:0 0 1em 0;padding:9px 0 4px;line-height:29px}.wcf-template-list-wrap .template-name{margin:0;text-align:right;font-size:13px}.wcf-template-list-wrap img{width:100%;vertical-align:middle}.wcf-templates-popup-content .template{margin:0;position:relative;overflow:hidden}.wcf-tab.nav-tabs{overflow:hidden;margin:0}.wcf-template-header{-moz-box-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);box-shadow:0 0 8px rgba(0,0,0,.2);-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;-moz-box-pack:justify;justify-content:space-between;padding:0 15px;min-height:50px}.wcf-search-form:after{content:"\f179";display:inline-block;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:.5em;top:.5em;color:#81868a}.wcf-template-logo-wrap{font-size:16px;font-weight:600;text-align:center}.wcf-template-logo-wrap .wcf-cartflows-logo-img{vertical-align:middle}.wcf-tab.nav-tabs:before{display:table;content:""}.wcf-tab.nav-tabs:after{clear:both}.wcf-tab.nav-tabs>li{display:inline-block;padding:15px 0;margin:0;font-weight:400}.wcf-tab.nav-tabs>li.active{border-bottom:3px solid #f16334;font-weight:600}.wcf-template-header .filter-links li>a{border-color:transparent;margin:0}.wcf-tab.nav-tabs>li:active,.wcf-tab.nav-tabs>li:focus,.wcf-tab.nav-tabs>li>a:focus,.wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li:focus .wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-tab.nav-tabs>li>a,.wcf-template-header .filter-links>li>a,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{padding:15px;color:#555;text-decoration:none}.wcf-nav-section-content{display:none}.wcf-nav-section-content.active{display:block;overflow:hidden}.wcf-popup-close-wrap{width:35px;text-align:center;border-right:1px #eee solid}.wcf-popup-close-wrap .close-icon{cursor:pointer}.wcf-popup-close-wrap .wcf-cartflow-icons{pointer-events:none;font-size:20px;height:20px;width:20px;line-height:20px;opacity:.7}.wcf-popup-close-wrap .close-icon:hover .wcf-cartflow-icons{opacity:1}.wcf-templates-popup-content .spinner{position:absolute;top:50%;right:50%;bottom:0;left:0;max-width:100%;max-height:100%;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%);z-index:99999}.wcf-templates-popup-content .wcf-template-header .wcf-tab-wrapper{margin:0 auto}#wcf-upcoming-page-builders .description{font-size:1rem;margin:4em 0 0 0;text-align:center}.flow-type-filter-links{display:none}#wcf-remote-filters{padding:0 15px}#wcf-remote-filters a{text-decoration:none}#wcf-remote-filters .filter-links li:focus,#wcf-remote-filters a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-filters .filter-links li a{border-bottom:none}#wcf-remote-filters .filter-links li:first-child a{margin-right:0}#wcf-remote-filters .filter-links li:last-child a{margin-left:0}#wcf-remote-filters .filter-links li .current,#wcf-remote-filters .filter-links li a:focus,#wcf-remote-filters .filter-links li a:hover{color:#f16334}.wrap .wcf-page-builder-notice .notice{margin:5px 15px}#wcf-api-notice-block{text-align:center;margin-top:5em}.wcf-templates-popup-overlay a{-webkit-transition:none;transition:none}.wcf-notice-wrap .notice{display:inline-block}.wcf-learn-how i{font-size:1rem;vertical-align:middle}.wcf-learn-how a{text-decoration:none}#wcf-remote-content .wcf-install-plugin::focus{border-color:none;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-content .wcf-install-plugin.updating-message{background:0 0;padding:0;font-size:1rem;-webkit-box-shadow:none;box-shadow:none;border:none;margin:0 3px 0 0}.wcf-page-builder-message{margin:5em auto 0 auto;width:700px}.wcf-page-builder-message p{font-size:1rem}.wcf-page-builder-message i{font-size:1rem;vertical-align:middle}.wcf-page-builder-message a{text-decoration:none;margin:1.5em 0 0 0}.cartflows-ie .postbox{padding:1em}.cartflows-ie{padding-top:2em;padding-left:2em}.admin_page_flow_exporter .notice,.admin_page_flow_importer .notice{margin:1em 0 0 0}.cartflows-website-unreachable{padding:1em 2em}
|
1 |
+
.no-elementor-notice{border-right:none;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding-right:0}.no-elementor-notice span{color:#f16334;font-size:18px;vertical-align:middle}.site-preview{background:#c5c5c5;display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden}.template.importing .site-preview:after,.template:hover .site-preview:after{opacity:.3}.template.importing .site-preview,.template:hover .site-preview{background:#fff;cursor:pointer}.template .site-preview:after{content:"";background:#fff;opacity:0;top:0;content:"";display:block;top:0;position:absolute;padding-top:66.66666%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;right:0;left:0;bottom:0}.template .notice{padding:.6em;background:rgba(0,0,0,.8);color:#fff;font-weight:400;border:none;font-size:13px;text-decoration:none;position:absolute;width:100%;vertical-align:middle;bottom:0;margin:0;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);left:0;right:0;z-index:4;text-align:center;-webkit-border-radius:3px;border-radius:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;-webkit-font-smoothing:antialiased}.template .notice a{color:#f16334}.template .notice p{padding:0;margin:0}#wcf_create_notice{display:none}.preview:focus,.preview:hover{color:#fff;-webkit-box-shadow:none;box-shadow:none}.preview{text-decoration:none;opacity:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:22%;right:22%;z-index:4;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:13px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:10px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.template-id-container{font-size:15px;font-weight:600;margin:0;padding:10px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65);position:relative}.template-actions{opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;left:0;top:0;padding:5px 5px 0 5px;background:rgba(244,244,244,.7);border-right:1px solid rgba(0,0,0,.05)}.template.importing .preview,.template.importing .template-actions,.template:hover .preview,.template:hover .template-actions,.wcf-step-content .template-actions{opacity:1}.wcf-remote-list .template{position:relative;overflow:hidden}.wcf-remote-list h3{margin-bottom:1em;margin-top:0;font-size:15px;font-weight:600;margin:0;padding:0;text-align:right}.wcf-remote-list img{max-width:100%;vertical-align:middle}.wcf-remote-list *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cartflows-steps-list img{width:100%}#cartflows-steps-list .title{font-weight:700;color:#474747;line-height:2;background:#f7f7f7;padding:.5em 1em}#cartflows-steps-list .image-wrap{-webkit-background-size:cover;background-size:cover;overflow:hidden}#cartflows-steps .close{display:inline-block;padding:2em;cursor:pointer}.template-message-block{text-align:center;margin:0 auto;padding:4em 0}.templator #TB_ajaxContent{width:100%!important}.template-message-block .description{font-style:normal}.template-message-block .spinner{float:none;margin:0}.cartflows-steps-popup{position:fixed;right:0;left:0;top:0;bottom:0;z-index:99999;background:#fff;overflow-y:scroll}.cartflows-steps-popup .notice{max-width:700px;margin:0 auto}.cartflows-load-steps-library .dashicons{height:auto;width:auto;line-height:normal;margin:0 0 0 5px;vertical-align:initial;font-size:100%}.cartflows-load-steps .dashicons{vertical-align:text-bottom}#TB_window{width:100%!important;margin:0 auto!important;text-align:center!important;position:fixed!important;top:0!important;right:0!important;left:0!important;bottom:0!important}#TB_iframeContent{width:100%!important;height:100%!important}@media only screen and (min-device-width :320px) and (max-device-width :1024px){#TB_iframeContent-wrapper{position:fixed;left:0;bottom:50px;right:0;top:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}}#TB_window #TB_ajaxWindowTitle{font-size:1.2rem;display:inline-block;width:auto;padding:0}#TB_window #TB_closeWindowButton{position:relative}.tb-close-icon:before{vertical-align:middle}#TB_window{text-align:center}#TB_iframeContent.tablet{width:768px!important;height:1024px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.tablet.landscape{width:1024px!important}#TB_iframeContent.mobile{width:360px!important;height:640px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.mobile.landscape{width:360px!important}#TB_closeAjaxWindow{float:left}#TB_window.thickbox-loading{margin:0!important}div#TB_window{background-color:#fff}#TB_window #TB_title{color:#0a0c0d;text-align:right;bottom:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:1em 1.5em 1em 1em}@media all and (min-width:769px){#TB_window #TB_title{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}}#TB_window.mobile,#TB_window.tablet{overflow-y:scroll}.top #TB_iframeContent-wrapper{bottom:0;top:80px}#TB_window.top #TB_title{top:0}#TB_window #TB_closeWindowButton:focus .tb-close-icon{-webkit-box-shadow:none;box-shadow:none;color:#666}@media all and (max-width:768px){#TB_closeAjaxWindow{padding-left:0}#TB_window #TB_closeWindowButton,#TB_window .tb-close-icon{width:80px}}.responsive-view .dashicons{color:#ddd}.responsive-view .active{color:#111}.responsive-view a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#TB_window.mobile #TB_iframeContent,#TB_window.tablet #TB_iframeContent{margin-bottom:50px;margin-top:50px}.responsive-view a{color:#666;cursor:pointer;display:inline-block;padding:1em;vertical-align:middle;text-decoration:none}#TB_closeAjaxWindow .tb-close-icon{position:relative}.site-loading{display:none;position:absolute;right:50%;top:50%;text-align:center;color:#555;-webkit-transform:translate(50%,-40%);-ms-transform:translate(50%,-40%);transform:translate(50%,-40%)}.top .site-loading{top:50%;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.site-loading h3{font-size:33px;font-weight:600;margin:0 0 .8em 0}.site-loading p{margin:0}.cartflows-thickbox-loading .site-loading{display:block}.cartflows-thickbox-loading #TB_iframeContent,.cartflows-thickbox-loading #TB_iframeContent-wrapper{display:none}.wcf-remote-list:after,.wcf-remote-list:before{content:"";display:table}.wcf-remote-list::after{content:"";display:table;clear:both}.wcf-template-header .filter-count{line-height:normal}#wcf-page-builders{display:none}#wcf-remote-flow-filters>div,#wcf-remote-step-filters>div{display:inline-block}.wcf-template-header .filter-links{margin:0;padding:0}.wcf-template-header li:focus{outline:0}.wcf-template-header .filter-links li{margin:0;display:inline-block}.wcf-template-header .filter-links li a:focus,.wcf-template-header .filter-links li a:hove{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-template-header .filter-links li .current{color:#000;border-bottom:2px solid #f16334;font-weight:600}.wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8}.wcf-search-form{margin-left:2em;padding-left:0;text-align:left;margin-top:1em;margin-bottom:1em;position:relative}.wcf-template-notice{display:none}#wcf-start-from-scratch{text-align:center}#wcf-start-from-scratch .inner{background:0 0;-webkit-box-shadow:none;box-shadow:none;width:94%;margin:0 auto;float:none;position:absolute;top:40%}#wcf-scratch-steps-categories{display:inline-block}#wcf-scratch-steps-categories select{-webkit-border-radius:0;border-radius:0;height:29px;border:1px solid;border-color:#9e9e9e;border-width:1px;-webkit-box-shadow:none;box-shadow:none;padding:2px;line-height:29px}#wcf-start-from-scratch .description{margin-bottom:2em}#wcf-remote-step-importer .wcf-search-form{display:none}.wcf-search-form .wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8;background:0 0;border-bottom:1px solid #ccc;font-size:1em}.wcf-search-form .wcf-flow-search-input:focus{-webkit-box-shadow:none;box-shadow:none;border-color:#ccc}.cartflows-preview-flow-steps li{display:inline-block;margin:0 1em;position:relative}.cartflows-flow-import-blank.updating-message:before{vertical-align:text-bottom}#wpwrap .cartflows-step-loading h2,#wpwrap .template-message-block h2{font-size:1.5em;margin:0 0 .5em 0;padding:8px 12px;line-height:1.4}#wpwrap .cartflows-step-loading p,#wpwrap .template-message-block p{font-size:1.2em}#wpwrap .cartflows-step-loading .spinner{vertical-align:initial}.wcf-flow-type{position:absolute;left:0;top:0;padding:3px 10px;color:#fff}.wcf-flow-type.pro{background:#f06262}.wcf-templates-popup-overlay{position:fixed;height:100%;width:100%;top:0;right:0;background:rgba(0,0,0,.7);-webkit-transition:opacity .5s;transition:opacity .5s;visibility:hidden;opacity:0;z-index:9999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:none;transition:none}.wcf-templates-popup-overlay.open{visibility:visible;opacity:1;z-index:9999}.wcf-templates-popup-content{max-width:1200px;background-color:#fff;position:absolute;-webkit-border-radius:3px;border-radius:3px;top:40%;right:50%;-webkit-transform:translate(50%,-35%);-ms-transform:translate(50%,-35%);transform:translate(50%,-35%);width:70%;min-height:450px;overflow:hidden}.wcf-templates-popup-content .inner{background:#fff;position:relative;padding:8px 8px 0 8px;display:block;float:right;margin:15px;text-align:center;-webkit-box-shadow:0 0 5px 1px rgba(204,204,204,.3);box-shadow:0 0 5px 1px rgba(204,204,204,.3)}@media only screen and (max-width:480px){.wcf-templates-popup-content{width:90%}.wcf-template-header{display:block!important;padding:15px 15px 0 15px!important}.wcf-popup-close-wrap{position:absolute;top:10px;left:5px}}@media only screen and (min-width:768px){.wcf-templates-popup-content .inner{width:-webkit-calc(25% - 30px);width:calc(25% - 30px)}}html.wcf-popup-open{overflow:hidden}.wcf-button-wrap{margin-top:0;position:absolute;top:10px;right:110px}.wcf-steps-loading #wcf-remote-step-list{display:none!important}#wcf-remote-content{background-color:#f5f5f5;overflow-y:auto;min-height:450px;max-height:450px;padding:20px 20px 20px 20px;clear:both}#wcf-remote-content #wcf-start-from-scratch h1{font-size:23px;font-weight:400;margin:0 0 1em 0;padding:9px 0 4px;line-height:29px}.wcf-template-list-wrap .template-name{margin:0;text-align:right;font-size:13px}.wcf-template-list-wrap img{width:100%;vertical-align:middle}.wcf-templates-popup-content .template{margin:0;position:relative;overflow:hidden}.wcf-tab.nav-tabs{overflow:hidden;margin:0}.wcf-template-header{-moz-box-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);box-shadow:0 0 8px rgba(0,0,0,.2);-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;-moz-box-pack:justify;justify-content:space-between;padding:0 15px;min-height:50px}.wcf-search-form:after{content:"\f179";display:inline-block;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:.5em;top:.5em;color:#81868a}.wcf-template-logo-wrap{font-size:16px;font-weight:600;text-align:center}.wcf-template-logo-wrap .wcf-cartflows-logo-img{vertical-align:middle}.wcf-tab.nav-tabs:before{display:table;content:""}.wcf-tab.nav-tabs:after{clear:both}.wcf-tab.nav-tabs>li{display:inline-block;padding:15px 0;margin:0;font-weight:400}.wcf-tab.nav-tabs>li.active{border-bottom:3px solid #f16334;font-weight:600}.wcf-template-header .filter-links li>a{border-color:transparent;margin:0}.wcf-tab.nav-tabs>li:active,.wcf-tab.nav-tabs>li:focus,.wcf-tab.nav-tabs>li>a:focus,.wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li:focus .wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-tab.nav-tabs>li>a,.wcf-template-header .filter-links>li>a,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{padding:15px;color:#555;text-decoration:none}.wcf-nav-section-content{display:none}.wcf-nav-section-content.active{display:block;overflow:hidden}.wcf-popup-close-wrap{width:35px;text-align:center;border-right:1px #eee solid}.wcf-popup-close-wrap .close-icon{cursor:pointer}.wcf-popup-close-wrap .wcf-cartflow-icons{pointer-events:none;font-size:20px;height:20px;width:20px;line-height:20px;opacity:.7}.wcf-popup-close-wrap .close-icon:hover .wcf-cartflow-icons{opacity:1}.wcf-templates-popup-content .spinner{position:absolute;top:50%;right:50%;bottom:0;left:0;max-width:100%;max-height:100%;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%);z-index:99999}.wcf-templates-popup-content .wcf-template-header .wcf-tab-wrapper{margin:0 auto}#wcf-upcoming-page-builders .description{font-size:1rem;margin:4em 0 0 0;text-align:center}.flow-type-filter-links{display:none}#wcf-remote-filters{padding:0 15px}#wcf-remote-filters a{text-decoration:none}#wcf-remote-filters .filter-links li:focus,#wcf-remote-filters a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-filters .filter-links li a{border-bottom:none}#wcf-remote-filters .filter-links li:first-child a{margin-right:0}#wcf-remote-filters .filter-links li:last-child a{margin-left:0}#wcf-remote-filters .filter-links li .current,#wcf-remote-filters .filter-links li a:focus,#wcf-remote-filters .filter-links li a:hover{color:#f16334}.wrap .wcf-page-builder-notice .notice{margin:5px 15px}#wcf-api-notice-block{text-align:center;margin-top:5em}.wcf-templates-popup-overlay a{-webkit-transition:none;transition:none}.wcf-notice-wrap .notice{display:inline-block}.wcf-learn-how i{font-size:1rem;vertical-align:middle}.wcf-learn-how a{text-decoration:none}#wcf-remote-content .wcf-install-plugin::focus{border-color:none;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-content .wcf-install-plugin.updating-message{background:0 0;padding:0;font-size:1rem;-webkit-box-shadow:none;box-shadow:none;border:none;margin:0 3px 0 0}.wcf-page-builder-message{margin:5em auto 0 auto;width:700px}.wcf-page-builder-message p{font-size:1rem}.wcf-page-builder-message i{font-size:1rem;vertical-align:middle}.wcf-page-builder-message a{text-decoration:none;margin:1.5em 0 0 0}.cartflows-ie .postbox{padding:1em}.cartflows-ie{padding-top:2em;padding-left:2em}.admin_page_flow_exporter .notice,.admin_page_flow_importer .notice{margin:1em 0 0 0}.cartflows-website-unreachable{padding:1em 2em}.wcf-notice-wrap{margin-top:20px;font-size:15px;color:red}.wcf-activate-wc{text-decoration:none}.wcf-activate-wc.button{border:none;-webkit-box-shadow:none;box-shadow:none}.wcf-hidden{display:none}
|
assets/min-css/import.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.no-elementor-notice{border-left:none;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding-left:0}.no-elementor-notice span{color:#f16334;font-size:18px;vertical-align:middle}.site-preview{background:#c5c5c5;display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden}.template.importing .site-preview:after,.template:hover .site-preview:after{opacity:.3}.template.importing .site-preview,.template:hover .site-preview{background:#fff;cursor:pointer}.template .site-preview:after{content:"";background:#fff;opacity:0;top:0;content:"";display:block;top:0;position:absolute;padding-top:66.66666%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;left:0;right:0;bottom:0}.template .notice{padding:.5em;background:rgba(0,0,0,.7);color:#fff;font-weight:400;border:#ffdead;font-size:11px;text-decoration:none;position:absolute;width:100%;vertical-align:middle;top:50%;-webkit-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);right:0;left:0;z-index:4;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}#wcf_create_notice{display:none}.preview:focus,.preview:hover{color:#fff;-webkit-box-shadow:none;box-shadow:none}.preview{text-decoration:none;opacity:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:22%;left:22%;z-index:4;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:13px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:10px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.template-id-container{font-size:15px;font-weight:600;margin:0;padding:10px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65);position:relative}.template-actions{opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;right:0;top:0;padding:5px 5px 0 5px;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.template.importing .preview,.template.importing .template-actions,.template:hover .preview,.template:hover .template-actions,.wcf-step-content .template-actions{opacity:1}.wcf-remote-list .template{position:relative;overflow:hidden}.wcf-remote-list h3{margin-bottom:1em;margin-top:0;font-size:15px;font-weight:600;margin:0;padding:0;text-align:left}.wcf-remote-list img{max-width:100%;vertical-align:middle}.wcf-remote-list *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cartflows-steps-list img{width:100%}#cartflows-steps-list .title{font-weight:700;color:#474747;line-height:2;background:#f7f7f7;padding:.5em 1em}#cartflows-steps-list .image-wrap{-webkit-background-size:cover;background-size:cover;overflow:hidden}#cartflows-steps .close{display:inline-block;padding:2em;cursor:pointer}.template-message-block{text-align:center;margin:0 auto;padding:4em 0}.templator #TB_ajaxContent{width:100%!important}.template-message-block .description{font-style:normal}.template-message-block .spinner{float:none;margin:0}.cartflows-steps-popup{position:fixed;left:0;right:0;top:0;bottom:0;z-index:99999;background:#fff;overflow-y:scroll}.cartflows-steps-popup .notice{max-width:700px;margin:0 auto}.cartflows-load-steps-library .dashicons{height:auto;width:auto;line-height:normal;margin:0 5px 0 0;vertical-align:initial;font-size:100%}.cartflows-load-steps .dashicons{vertical-align:text-bottom}#TB_window{width:100%!important;margin:0 auto!important;text-align:center!important;position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important}#TB_iframeContent{width:100%!important;height:100%!important}@media only screen and (min-device-width :320px) and (max-device-width :1024px){#TB_iframeContent-wrapper{position:fixed;right:0;bottom:50px;left:0;top:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}}#TB_window #TB_ajaxWindowTitle{font-size:1.2rem;display:inline-block;width:auto;padding:0}#TB_window #TB_closeWindowButton{position:relative}.tb-close-icon:before{vertical-align:middle}#TB_window{text-align:center}#TB_iframeContent.tablet{width:768px!important;height:1024px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.tablet.landscape{width:1024px!important}#TB_iframeContent.mobile{width:360px!important;height:640px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.mobile.landscape{width:360px!important}#TB_closeAjaxWindow{float:right}#TB_window.thickbox-loading{margin:0!important}div#TB_window{background-color:#fff}#TB_window #TB_title{color:#0a0c0d;text-align:left;bottom:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:1em 1em 1em 1.5em}@media all and (min-width:769px){#TB_window #TB_title{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}}#TB_window.mobile,#TB_window.tablet{overflow-y:scroll}.top #TB_iframeContent-wrapper{bottom:0;top:80px}#TB_window.top #TB_title{top:0}#TB_window #TB_closeWindowButton:focus .tb-close-icon{-webkit-box-shadow:none;box-shadow:none;color:#666}@media all and (max-width:768px){#TB_closeAjaxWindow{padding-right:0}#TB_window #TB_closeWindowButton,#TB_window .tb-close-icon{width:80px}}.responsive-view .dashicons{color:#ddd}.responsive-view .active{color:#111}.responsive-view a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#TB_window.mobile #TB_iframeContent,#TB_window.tablet #TB_iframeContent{margin-bottom:50px;margin-top:50px}.responsive-view a{color:#666;cursor:pointer;display:inline-block;padding:1em;vertical-align:middle;text-decoration:none}#TB_closeAjaxWindow .tb-close-icon{position:relative}.site-loading{display:none;position:absolute;left:50%;top:50%;text-align:center;color:#555;-webkit-transform:translate(-50%,-40%);-ms-transform:translate(-50%,-40%);transform:translate(-50%,-40%)}.top .site-loading{top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.site-loading h3{font-size:33px;font-weight:600;margin:0 0 .8em 0}.site-loading p{margin:0}.cartflows-thickbox-loading .site-loading{display:block}.cartflows-thickbox-loading #TB_iframeContent,.cartflows-thickbox-loading #TB_iframeContent-wrapper{display:none}.wcf-remote-list:after,.wcf-remote-list:before{content:"";display:table}.wcf-remote-list::after{content:"";display:table;clear:both}.wcf-template-header .filter-count{line-height:normal}#wcf-page-builders{display:none}#wcf-remote-flow-filters>div,#wcf-remote-step-filters>div{display:inline-block}.wcf-template-header .filter-links{margin:0;padding:0}.wcf-template-header li:focus{outline:0}.wcf-template-header .filter-links li{margin:0;display:inline-block}.wcf-template-header .filter-links li a:focus,.wcf-template-header .filter-links li a:hove{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-template-header .filter-links li .current{color:#000;border-bottom:2px solid #f16334;font-weight:600}.wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8}.wcf-search-form{margin-right:2em;padding-right:0;text-align:right;margin-top:1em;margin-bottom:1em;position:relative}.wcf-template-notice{display:none}#wcf-start-from-scratch{text-align:center}#wcf-start-from-scratch .inner{background:0 0;-webkit-box-shadow:none;box-shadow:none;width:94%;margin:0 auto;float:none;position:absolute;top:40%}#wcf-scratch-steps-categories{display:inline-block}#wcf-scratch-steps-categories select{-webkit-border-radius:0;border-radius:0;height:29px;border:1px solid;border-color:#9e9e9e;border-width:1px;-webkit-box-shadow:none;box-shadow:none;padding:2px;line-height:29px}#wcf-start-from-scratch .description{margin-bottom:2em}#wcf-remote-step-importer .wcf-search-form{display:none}.wcf-search-form .wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8;background:0 0;border-bottom:1px solid #ccc;font-size:1em}.wcf-search-form .wcf-flow-search-input:focus{-webkit-box-shadow:none;box-shadow:none;border-color:#ccc}.cartflows-preview-flow-steps li{display:inline-block;margin:0 1em;position:relative}.cartflows-flow-import-blank.updating-message:before{vertical-align:text-bottom}#wpwrap .cartflows-step-loading h2,#wpwrap .template-message-block h2{font-size:1.5em;margin:0 0 .5em 0;padding:8px 12px;line-height:1.4}#wpwrap .cartflows-step-loading p,#wpwrap .template-message-block p{font-size:1.2em}#wpwrap .cartflows-step-loading .spinner{vertical-align:initial}.wcf-flow-type{position:absolute;right:0;top:0;padding:3px 10px;color:#fff}.wcf-flow-type.pro{background:#f06262}.wcf-templates-popup-overlay{position:fixed;height:100%;width:100%;top:0;left:0;background:rgba(0,0,0,.7);-webkit-transition:opacity .5s;transition:opacity .5s;visibility:hidden;opacity:0;z-index:9999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:none;transition:none}.wcf-templates-popup-overlay.open{visibility:visible;opacity:1;z-index:9999}.wcf-templates-popup-content{max-width:1200px;background-color:#fff;position:absolute;-webkit-border-radius:3px;border-radius:3px;top:40%;left:50%;-webkit-transform:translate(-50%,-35%);-ms-transform:translate(-50%,-35%);transform:translate(-50%,-35%);width:70%;min-height:450px;overflow:hidden}.wcf-templates-popup-content .inner{background:#fff;position:relative;padding:8px 8px 0 8px;display:block;float:left;margin:15px;text-align:center;-webkit-box-shadow:0 0 5px 1px rgba(204,204,204,.3);box-shadow:0 0 5px 1px rgba(204,204,204,.3)}@media only screen and (max-width:480px){.wcf-templates-popup-content{width:90%}.wcf-template-header{display:block!important;padding:15px 15px 0 15px!important}.wcf-popup-close-wrap{position:absolute;top:10px;right:5px}}@media only screen and (min-width:768px){.wcf-templates-popup-content .inner{width:-webkit-calc(25% - 30px);width:calc(25% - 30px)}}html.wcf-popup-open{overflow:hidden}.wcf-button-wrap{margin-top:0;position:absolute;top:10px;left:110px}.wcf-steps-loading #wcf-remote-step-list{display:none!important}#wcf-remote-content{background-color:#f5f5f5;overflow-y:auto;min-height:450px;max-height:450px;padding:20px 20px 20px 20px;clear:both}#wcf-remote-content #wcf-start-from-scratch h1{font-size:23px;font-weight:400;margin:0 0 1em 0;padding:9px 0 4px;line-height:29px}.wcf-template-list-wrap .template-name{margin:0;text-align:left;font-size:13px}.wcf-template-list-wrap img{width:100%;vertical-align:middle}.wcf-templates-popup-content .template{margin:0;position:relative;overflow:hidden}.wcf-tab.nav-tabs{overflow:hidden;margin:0}.wcf-template-header{-moz-box-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);box-shadow:0 0 8px rgba(0,0,0,.2);-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;-moz-box-pack:justify;justify-content:space-between;padding:0 15px;min-height:50px}.wcf-search-form:after{content:"\f179";display:inline-block;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:.5em;top:.5em;color:#81868a}.wcf-template-logo-wrap{font-size:16px;font-weight:600;text-align:center}.wcf-template-logo-wrap .wcf-cartflows-logo-img{vertical-align:middle}.wcf-tab.nav-tabs:before{display:table;content:""}.wcf-tab.nav-tabs:after{clear:both}.wcf-tab.nav-tabs>li{display:inline-block;padding:15px 0;margin:0;font-weight:400}.wcf-tab.nav-tabs>li.active{border-bottom:3px solid #f16334;font-weight:600}.wcf-template-header .filter-links li>a{border-color:transparent;margin:0}.wcf-tab.nav-tabs>li:active,.wcf-tab.nav-tabs>li:focus,.wcf-tab.nav-tabs>li>a:focus,.wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li:focus .wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-tab.nav-tabs>li>a,.wcf-template-header .filter-links>li>a,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{padding:15px;color:#555;text-decoration:none}.wcf-nav-section-content{display:none}.wcf-nav-section-content.active{display:block;overflow:hidden}.wcf-popup-close-wrap{width:35px;text-align:center;border-left:1px #eee solid}.wcf-popup-close-wrap .close-icon{cursor:pointer}.wcf-popup-close-wrap .wcf-cartflow-icons{pointer-events:none;font-size:20px;height:20px;width:20px;line-height:20px;opacity:.7}.wcf-popup-close-wrap .close-icon:hover .wcf-cartflow-icons{opacity:1}.wcf-templates-popup-content .spinner{position:absolute;top:50%;left:50%;bottom:0;right:0;max-width:100%;max-height:100%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:99999}.wcf-templates-popup-content .wcf-template-header .wcf-tab-wrapper{margin:0 auto}#wcf-upcoming-page-builders .description{font-size:1rem;margin:4em 0 0 0;text-align:center}.flow-type-filter-links{display:none}#wcf-remote-filters{padding:0 15px}#wcf-remote-filters a{text-decoration:none}#wcf-remote-filters .filter-links li:focus,#wcf-remote-filters a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-filters .filter-links li a{border-bottom:none}#wcf-remote-filters .filter-links li:first-child a{margin-left:0}#wcf-remote-filters .filter-links li:last-child a{margin-right:0}#wcf-remote-filters .filter-links li .current,#wcf-remote-filters .filter-links li a:focus,#wcf-remote-filters .filter-links li a:hover{color:#f16334}.wrap .wcf-page-builder-notice .notice{margin:5px 15px}#wcf-api-notice-block{text-align:center;margin-top:5em}.wcf-templates-popup-overlay a{-webkit-transition:none;transition:none}.wcf-notice-wrap .notice{display:inline-block}.wcf-learn-how i{font-size:1rem;vertical-align:middle}.wcf-learn-how a{text-decoration:none}#wcf-remote-content .wcf-install-plugin::focus{border-color:none;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-content .wcf-install-plugin.updating-message{background:0 0;padding:0;font-size:1rem;-webkit-box-shadow:none;box-shadow:none;border:none;margin:0 0 0 3px}.wcf-page-builder-message{margin:5em auto 0 auto;width:700px}.wcf-page-builder-message p{font-size:1rem}.wcf-page-builder-message i{font-size:1rem;vertical-align:middle}.wcf-page-builder-message a{text-decoration:none;margin:1.5em 0 0 0}.cartflows-ie .postbox{padding:1em}.cartflows-ie{padding-top:2em;padding-right:2em}.admin_page_flow_exporter .notice,.admin_page_flow_importer .notice{margin:1em 0 0 0}.cartflows-website-unreachable{padding:1em 2em}
|
1 |
+
.no-elementor-notice{border-left:none;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding-left:0}.no-elementor-notice span{color:#f16334;font-size:18px;vertical-align:middle}.site-preview{background:#c5c5c5;display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden}.template.importing .site-preview:after,.template:hover .site-preview:after{opacity:.3}.template.importing .site-preview,.template:hover .site-preview{background:#fff;cursor:pointer}.template .site-preview:after{content:"";background:#fff;opacity:0;top:0;content:"";display:block;top:0;position:absolute;padding-top:66.66666%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;left:0;right:0;bottom:0}.template .notice{padding:.6em;background:rgba(0,0,0,.8);color:#fff;font-weight:400;border:none;font-size:13px;text-decoration:none;position:absolute;width:100%;vertical-align:middle;bottom:0;margin:0;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);right:0;left:0;z-index:4;text-align:center;-webkit-border-radius:3px;border-radius:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;-webkit-font-smoothing:antialiased}.template .notice a{color:#f16334}.template .notice p{padding:0;margin:0}#wcf_create_notice{display:none}.preview:focus,.preview:hover{color:#fff;-webkit-box-shadow:none;box-shadow:none}.preview{text-decoration:none;opacity:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:22%;left:22%;z-index:4;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:13px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:10px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.template-id-container{font-size:15px;font-weight:600;margin:0;padding:10px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65);position:relative}.template-actions{opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;right:0;top:0;padding:5px 5px 0 5px;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.template.importing .preview,.template.importing .template-actions,.template:hover .preview,.template:hover .template-actions,.wcf-step-content .template-actions{opacity:1}.wcf-remote-list .template{position:relative;overflow:hidden}.wcf-remote-list h3{margin-bottom:1em;margin-top:0;font-size:15px;font-weight:600;margin:0;padding:0;text-align:left}.wcf-remote-list img{max-width:100%;vertical-align:middle}.wcf-remote-list *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cartflows-steps-list img{width:100%}#cartflows-steps-list .title{font-weight:700;color:#474747;line-height:2;background:#f7f7f7;padding:.5em 1em}#cartflows-steps-list .image-wrap{-webkit-background-size:cover;background-size:cover;overflow:hidden}#cartflows-steps .close{display:inline-block;padding:2em;cursor:pointer}.template-message-block{text-align:center;margin:0 auto;padding:4em 0}.templator #TB_ajaxContent{width:100%!important}.template-message-block .description{font-style:normal}.template-message-block .spinner{float:none;margin:0}.cartflows-steps-popup{position:fixed;left:0;right:0;top:0;bottom:0;z-index:99999;background:#fff;overflow-y:scroll}.cartflows-steps-popup .notice{max-width:700px;margin:0 auto}.cartflows-load-steps-library .dashicons{height:auto;width:auto;line-height:normal;margin:0 5px 0 0;vertical-align:initial;font-size:100%}.cartflows-load-steps .dashicons{vertical-align:text-bottom}#TB_window{width:100%!important;margin:0 auto!important;text-align:center!important;position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important}#TB_iframeContent{width:100%!important;height:100%!important}@media only screen and (min-device-width :320px) and (max-device-width :1024px){#TB_iframeContent-wrapper{position:fixed;right:0;bottom:50px;left:0;top:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}}#TB_window #TB_ajaxWindowTitle{font-size:1.2rem;display:inline-block;width:auto;padding:0}#TB_window #TB_closeWindowButton{position:relative}.tb-close-icon:before{vertical-align:middle}#TB_window{text-align:center}#TB_iframeContent.tablet{width:768px!important;height:1024px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.tablet.landscape{width:1024px!important}#TB_iframeContent.mobile{width:360px!important;height:640px!important;background:#111;padding:40px 10px 70px;-webkit-border-radius:30px;border-radius:30px}#TB_iframeContent.mobile.landscape{width:360px!important}#TB_closeAjaxWindow{float:right}#TB_window.thickbox-loading{margin:0!important}div#TB_window{background-color:#fff}#TB_window #TB_title{color:#0a0c0d;text-align:left;bottom:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:1em 1em 1em 1.5em}@media all and (min-width:769px){#TB_window #TB_title{-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}}#TB_window.mobile,#TB_window.tablet{overflow-y:scroll}.top #TB_iframeContent-wrapper{bottom:0;top:80px}#TB_window.top #TB_title{top:0}#TB_window #TB_closeWindowButton:focus .tb-close-icon{-webkit-box-shadow:none;box-shadow:none;color:#666}@media all and (max-width:768px){#TB_closeAjaxWindow{padding-right:0}#TB_window #TB_closeWindowButton,#TB_window .tb-close-icon{width:80px}}.responsive-view .dashicons{color:#ddd}.responsive-view .active{color:#111}.responsive-view a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#TB_window.mobile #TB_iframeContent,#TB_window.tablet #TB_iframeContent{margin-bottom:50px;margin-top:50px}.responsive-view a{color:#666;cursor:pointer;display:inline-block;padding:1em;vertical-align:middle;text-decoration:none}#TB_closeAjaxWindow .tb-close-icon{position:relative}.site-loading{display:none;position:absolute;left:50%;top:50%;text-align:center;color:#555;-webkit-transform:translate(-50%,-40%);-ms-transform:translate(-50%,-40%);transform:translate(-50%,-40%)}.top .site-loading{top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.site-loading h3{font-size:33px;font-weight:600;margin:0 0 .8em 0}.site-loading p{margin:0}.cartflows-thickbox-loading .site-loading{display:block}.cartflows-thickbox-loading #TB_iframeContent,.cartflows-thickbox-loading #TB_iframeContent-wrapper{display:none}.wcf-remote-list:after,.wcf-remote-list:before{content:"";display:table}.wcf-remote-list::after{content:"";display:table;clear:both}.wcf-template-header .filter-count{line-height:normal}#wcf-page-builders{display:none}#wcf-remote-flow-filters>div,#wcf-remote-step-filters>div{display:inline-block}.wcf-template-header .filter-links{margin:0;padding:0}.wcf-template-header li:focus{outline:0}.wcf-template-header .filter-links li{margin:0;display:inline-block}.wcf-template-header .filter-links li a:focus,.wcf-template-header .filter-links li a:hove{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-template-header .filter-links li .current{color:#000;border-bottom:2px solid #f16334;font-weight:600}.wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8}.wcf-search-form{margin-right:2em;padding-right:0;text-align:right;margin-top:1em;margin-bottom:1em;position:relative}.wcf-template-notice{display:none}#wcf-start-from-scratch{text-align:center}#wcf-start-from-scratch .inner{background:0 0;-webkit-box-shadow:none;box-shadow:none;width:94%;margin:0 auto;float:none;position:absolute;top:40%}#wcf-scratch-steps-categories{display:inline-block}#wcf-scratch-steps-categories select{-webkit-border-radius:0;border-radius:0;height:29px;border:1px solid;border-color:#9e9e9e;border-width:1px;-webkit-box-shadow:none;box-shadow:none;padding:2px;line-height:29px}#wcf-start-from-scratch .description{margin-bottom:2em}#wcf-remote-step-importer .wcf-search-form{display:none}.wcf-search-form .wcf-flow-search-input{border:none;-webkit-box-shadow:none;box-shadow:none;border-bottom:1px solid #eee;line-height:1.8;background:0 0;border-bottom:1px solid #ccc;font-size:1em}.wcf-search-form .wcf-flow-search-input:focus{-webkit-box-shadow:none;box-shadow:none;border-color:#ccc}.cartflows-preview-flow-steps li{display:inline-block;margin:0 1em;position:relative}.cartflows-flow-import-blank.updating-message:before{vertical-align:text-bottom}#wpwrap .cartflows-step-loading h2,#wpwrap .template-message-block h2{font-size:1.5em;margin:0 0 .5em 0;padding:8px 12px;line-height:1.4}#wpwrap .cartflows-step-loading p,#wpwrap .template-message-block p{font-size:1.2em}#wpwrap .cartflows-step-loading .spinner{vertical-align:initial}.wcf-flow-type{position:absolute;right:0;top:0;padding:3px 10px;color:#fff}.wcf-flow-type.pro{background:#f06262}.wcf-templates-popup-overlay{position:fixed;height:100%;width:100%;top:0;left:0;background:rgba(0,0,0,.7);-webkit-transition:opacity .5s;transition:opacity .5s;visibility:hidden;opacity:0;z-index:9999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:none;transition:none}.wcf-templates-popup-overlay.open{visibility:visible;opacity:1;z-index:9999}.wcf-templates-popup-content{max-width:1200px;background-color:#fff;position:absolute;-webkit-border-radius:3px;border-radius:3px;top:40%;left:50%;-webkit-transform:translate(-50%,-35%);-ms-transform:translate(-50%,-35%);transform:translate(-50%,-35%);width:70%;min-height:450px;overflow:hidden}.wcf-templates-popup-content .inner{background:#fff;position:relative;padding:8px 8px 0 8px;display:block;float:left;margin:15px;text-align:center;-webkit-box-shadow:0 0 5px 1px rgba(204,204,204,.3);box-shadow:0 0 5px 1px rgba(204,204,204,.3)}@media only screen and (max-width:480px){.wcf-templates-popup-content{width:90%}.wcf-template-header{display:block!important;padding:15px 15px 0 15px!important}.wcf-popup-close-wrap{position:absolute;top:10px;right:5px}}@media only screen and (min-width:768px){.wcf-templates-popup-content .inner{width:-webkit-calc(25% - 30px);width:calc(25% - 30px)}}html.wcf-popup-open{overflow:hidden}.wcf-button-wrap{margin-top:0;position:absolute;top:10px;left:110px}.wcf-steps-loading #wcf-remote-step-list{display:none!important}#wcf-remote-content{background-color:#f5f5f5;overflow-y:auto;min-height:450px;max-height:450px;padding:20px 20px 20px 20px;clear:both}#wcf-remote-content #wcf-start-from-scratch h1{font-size:23px;font-weight:400;margin:0 0 1em 0;padding:9px 0 4px;line-height:29px}.wcf-template-list-wrap .template-name{margin:0;text-align:left;font-size:13px}.wcf-template-list-wrap img{width:100%;vertical-align:middle}.wcf-templates-popup-content .template{margin:0;position:relative;overflow:hidden}.wcf-tab.nav-tabs{overflow:hidden;margin:0}.wcf-template-header{-moz-box-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);box-shadow:0 0 8px rgba(0,0,0,.2);-js-display:flex;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;-moz-box-pack:justify;justify-content:space-between;padding:0 15px;min-height:50px}.wcf-search-form:after{content:"\f179";display:inline-block;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:.5em;top:.5em;color:#81868a}.wcf-template-logo-wrap{font-size:16px;font-weight:600;text-align:center}.wcf-template-logo-wrap .wcf-cartflows-logo-img{vertical-align:middle}.wcf-tab.nav-tabs:before{display:table;content:""}.wcf-tab.nav-tabs:after{clear:both}.wcf-tab.nav-tabs>li{display:inline-block;padding:15px 0;margin:0;font-weight:400}.wcf-tab.nav-tabs>li.active{border-bottom:3px solid #f16334;font-weight:600}.wcf-template-header .filter-links li>a{border-color:transparent;margin:0}.wcf-tab.nav-tabs>li:active,.wcf-tab.nav-tabs>li:focus,.wcf-tab.nav-tabs>li>a:focus,.wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li:focus .wcf-template-header .filter-links>li:active,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{outline:0;-webkit-box-shadow:none;box-shadow:none}.wcf-tab.nav-tabs>li>a,.wcf-template-header .filter-links>li>a,.wcf-template-header .filter-links>li>a:focus,.wcf-template-header .filter-links>li>a:hover{padding:15px;color:#555;text-decoration:none}.wcf-nav-section-content{display:none}.wcf-nav-section-content.active{display:block;overflow:hidden}.wcf-popup-close-wrap{width:35px;text-align:center;border-left:1px #eee solid}.wcf-popup-close-wrap .close-icon{cursor:pointer}.wcf-popup-close-wrap .wcf-cartflow-icons{pointer-events:none;font-size:20px;height:20px;width:20px;line-height:20px;opacity:.7}.wcf-popup-close-wrap .close-icon:hover .wcf-cartflow-icons{opacity:1}.wcf-templates-popup-content .spinner{position:absolute;top:50%;left:50%;bottom:0;right:0;max-width:100%;max-height:100%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:99999}.wcf-templates-popup-content .wcf-template-header .wcf-tab-wrapper{margin:0 auto}#wcf-upcoming-page-builders .description{font-size:1rem;margin:4em 0 0 0;text-align:center}.flow-type-filter-links{display:none}#wcf-remote-filters{padding:0 15px}#wcf-remote-filters a{text-decoration:none}#wcf-remote-filters .filter-links li:focus,#wcf-remote-filters a:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-filters .filter-links li a{border-bottom:none}#wcf-remote-filters .filter-links li:first-child a{margin-left:0}#wcf-remote-filters .filter-links li:last-child a{margin-right:0}#wcf-remote-filters .filter-links li .current,#wcf-remote-filters .filter-links li a:focus,#wcf-remote-filters .filter-links li a:hover{color:#f16334}.wrap .wcf-page-builder-notice .notice{margin:5px 15px}#wcf-api-notice-block{text-align:center;margin-top:5em}.wcf-templates-popup-overlay a{-webkit-transition:none;transition:none}.wcf-notice-wrap .notice{display:inline-block}.wcf-learn-how i{font-size:1rem;vertical-align:middle}.wcf-learn-how a{text-decoration:none}#wcf-remote-content .wcf-install-plugin::focus{border-color:none;-webkit-box-shadow:none;box-shadow:none}#wcf-remote-content .wcf-install-plugin.updating-message{background:0 0;padding:0;font-size:1rem;-webkit-box-shadow:none;box-shadow:none;border:none;margin:0 0 0 3px}.wcf-page-builder-message{margin:5em auto 0 auto;width:700px}.wcf-page-builder-message p{font-size:1rem}.wcf-page-builder-message i{font-size:1rem;vertical-align:middle}.wcf-page-builder-message a{text-decoration:none;margin:1.5em 0 0 0}.cartflows-ie .postbox{padding:1em}.cartflows-ie{padding-top:2em;padding-right:2em}.admin_page_flow_exporter .notice,.admin_page_flow_importer .notice{margin:1em 0 0 0}.cartflows-website-unreachable{padding:1em 2em}.wcf-notice-wrap{margin-top:20px;font-size:15px;color:red}.wcf-activate-wc{text-decoration:none}.wcf-activate-wc.button{border:none;-webkit-box-shadow:none;box-shadow:none}.wcf-hidden{display:none}
|
assets/min-js/import.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var CartFlowsAjaxQueue=function(){var s=[];return{add:function(t){s.push(t)},remove:function(t){-1<jQuery.inArray(t,s)&&s.splice($.inArray(t,s),1)},run:function(){var t,e=this;s.length?(t=s[0].complete,s[0].complete=function(){"function"==typeof t&&t(),s.shift(),e.run.apply(e,[])},jQuery.ajax(s[0])):e.tid=setTimeout(function(){e.run.apply(e,[])},1e3)},stop:function(){s=[],clearTimeout(this.tid)}}}();!function(c){CartFlowsImport={doc:c(document),wrap:c(".wcf-flow-steps-data-wrap"),inner:c(".wcf-flow-steps-data-wrap-importer"),post_id:c("#post_ID").val(),_ref:null,_api_step_type:{},_api_params:{},all_steps:0,remaining_steps:0,remaining_install_plugins:0,remaining_active_plugins:0,init:function(){if(this._bind(),"other"!==CartFlowsImportVars.default_page_builder&&(c(".post-type-cartflows_flow").hasClass("edit-php")&&this._process_cache_remote_flows(),c(".post-type-cartflows_flow").hasClass("post-php")&&this._process_cache_remote_steps()),c(".post-type-cartflows_flow").hasClass("edit-php")&&null!==this._getParamFromURL("add-new-flow")&&this._render_remote_flows(),c(".post-type-cartflows_flow").hasClass("post-php")&&null!==this._getParamFromURL("add-new-step")&&this._render_remote_steps(),this._getParamFromURL("highlight-step-id")){var t=c('.wcf-step-wrap[data-id="'+this._getParamFromURL("highlight-step-id")+'"]');t.length&&c("html, body").animate({scrollTop:t.offset().top},1500)}if(c(".post-type-cartflows_flow").hasClass("edit-php")){var e=c(".edit-php.post-type-cartflows_flow").find(".page-title-action:first");e.after('<a href="'+CartFlowsImportVars.export_url+'" class="page-title-action">Export</a>'),e.after('<a href="'+CartFlowsImportVars.import_url+'" class="page-title-action">Import</a>')}},_getParamFromURL:function(t,e){e||(e=window.location.href),t=t.replace(/[\[\]]/g,"\\$&");var s=new RegExp("[?&]"+t+"(=([^&#]*)|&|#|$)").exec(e);return s?s[2]?decodeURIComponent(s[2].replace(/\+/g," ")):"":null},_bind:function(){var t=CartFlowsImport;t.doc.on("click",".wcf-install-plugin",t._install_plugin),t.doc.on("cartflows-api-request-fail",t._api_request_failed),t.doc.on("click","#wcf-get-started-steps a, .wcf-create-from-scratch-link",t._toggle_ready_templates),t.doc.on("click",".cartflows-flow-import-blank",t._create_default_flow),t.doc.on("click","#wcf-remote-flow-importer .wcf-page-builder-links a",t._filterFlowPageBuilderClick),t.doc.on("click","#wcf-remote-step-importer #wcf-categories .step-type-filter-links a",t._filterBlankStepCategoryClick),t.doc.on("change","#wcf-remote-step-importer #wcf-scratch-steps-categories .step-type-filter-links",t._filterBlankStepCategoryChange),t.doc.on("click","#wcf-remote-step-importer .wcf-page-builder-links a",t._filterStepPageBuilderClick),t.doc.on("click",".cartflows-step-import-blank:not(.get-pro)",t._create_blank_step),t.doc.on("click","#wcf-remote-step-importer .cartflows-step-import",t._process_import_step),t.doc.on("click","#wcf-remote-flow-importer .cartflows-step-import",t._process_import_flow),t.doc.on("click",".cartflows-preview-flow-step",t._preview_individual),t.doc.on("add_template_to_page-fail",t._add_template_to_page_fail),c("body").on("thickbox:iframe:loaded",t._previewLoaded),c(document).on("keyup input","#wcf-remote-step-importer .wcf-flow-search-input",t._remote_step_search),c(document).on("click",".actions a",t._previewResponsive),c(document).on("click",".page-title-action:first",t._render_remote_flows),c(document).on("click",".wcf-trigger-popup",t._render_remote_steps),c(document).on("click",".wcf-templates-popup-overlay",t._close_template_popup),c(document).on("click",".wcf-popup-close-wrap .close-icon",t._close_template_popup),c(document).on("wp-plugin-install-success",t._installSuccess)},_install_plugin:function(t){t.preventDefault();var e=c(this);if(!e.hasClass("updating-message")){c("#wcf-remote-flow-importer").addClass("request-process"),c("#wcf-remote-step-importer").addClass("request-process"),e.addClass("updating-message button");var s=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;c.each(s,function(t,e){"install"===e.status&&CartFlowsImport.remaining_install_plugins++,"activate"===e.status&&CartFlowsImport.remaining_active_plugins++}),CartFlowsImport.remaining_install_plugins?CartFlowsImport._install_all_plugins():CartFlowsImport.remaining_active_plugins?CartFlowsImport._activate_all_plugins():c("#wcf-remote-flow-importer").length?CartFlowsImport._cache_remote_flows():c("#wcf-remote-step-importer").length&&CartFlowsImport._cache_remote_steps()}},_install_all_plugins:function(){var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;c.each(t,function(t,e){"install"===e.status&&wp.updates.queue.push({action:"install-plugin",data:{slug:e.slug}})}),wp.updates.queueChecker()},_activate_all_plugins:function(){if(CartFlowsImport.remaining_active_plugins||CartFlowsImport.remaining_install_plugins){var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;CartFlowsAjaxQueue.stop(),CartFlowsAjaxQueue.run(),c.each(t,function(t,e){"activate"===e.status&&CartFlowsAjaxQueue.add({url:CartFlowsImportVars.ajaxurl,type:"POST",data:{action:"cartflows_activate_plugin",plugin_init:e.init},success:function(t){CartFlowsImport.remaining_active_plugins--,CartFlowsImport.remaining_active_plugins||CartFlowsImport.remaining_install_plugins||(c("#wcf-remote-flow-importer").length?CartFlowsImport._cache_remote_flows():c("#wcf-remote-step-importer").length&&CartFlowsImport._cache_remote_steps())}})})}else c("#wcf-remote-flow-importer").length?CartFlowsImport._cache_remote_flows():c("#wcf-remote-step-importer").length&&CartFlowsImport._cache_remote_steps()},_installSuccess:function(t,s){t.preventDefault();var e=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;c.each(e,function(t,e){"install"===e.status&&s.slug===e.slug&&c.ajax({url:ajaxurl,type:"POST",data:{action:"cartflows_activate_plugin",plugin_init:e.init}}).done(function(t,e,s){CartFlowsImport.remaining_install_plugins--,CartFlowsImport.remaining_install_plugins||CartFlowsImport._activate_all_plugins()})})},_api_request_failed:function(t,e,s,a){"error"==a&&(c("#wcf-remote-content-failed").length||c("#wcf-ready-templates").html(wp.template("cartflows-website-unreachable")))},_toggle_ready_templates:function(t){t.preventDefault();var e=c(this).data("slug")||"";c("#wcf-get-started-steps").find("a").removeClass("current"),c("#wcf-get-started-steps").find('a[data-slug="'+e+'"]').addClass("current"),"canvas"==e?(c("#wcf-ready-templates").hide(),c("#wcf-start-from-scratch").show()):(c("#wcf-ready-templates").show(),c("#wcf-start-from-scratch").hide()),!c(".wcf-page-builder-notice").length&&c("#wcf-remote-step-importer").length&&CartFlowsImport._showSteps()},_switch_step_tab:function(t){t.preventDefault();var e=c(".wcf-tab > li.active > a").attr("href");c(".wcf-tab > li.active").removeClass("active"),c(this).parents("li").addClass("active"),c(e).removeClass("active"),c(e).addClass("hide");var s=c(this).attr("href");c(s).removeClass("hide"),c(s).addClass("active")},_remote_step_search:function(t){t.preventDefault(),c(".step-type-filter-links").find("option").removeClass("current"),c(".step-type-filter-links").find("option:first-child").addClass("current"),window.clearTimeout(CartFlowsImport._ref),CartFlowsImport._ref=window.setTimeout(function(){CartFlowsImport._ref=null,CartFlowsImport._showSteps()},500)},_previewResponsive:function(t){t.preventDefault();var e=c(this).find(".dashicons"),s=e.attr("data-view")||"";c("#TB_window").removeClass("desktop tablet mobile"),c("#TB_window").addClass(s),c(".actions .dashicons").removeClass("active"),e.addClass("active"),c("#TB_iframeContent").removeClass(),c("#TB_iframeContent").addClass(s)},_filterStepPageBuilderClick:function(t){t.preventDefault(),c(this).parents("ul").find("a").removeClass("current"),c(this).addClass("current");var e=c(".step-type-filter-links .current").data("slug")||"";"upsell"===e||"downsell"===e?c(".wcf-template-notice").show():c(".wcf-template-notice").hide(),c(".wcf-page-builder-notice").html(""),c("#wcf-remote-step-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showSteps()},_filterBlankStepCategoryClick:function(t){t.preventDefault(),c(".wcf-page-builder-notice").html("");var e=c(this).data("group")||"";e&&(c("#wcf-scratch-steps-categories .step-type-filter-links").val(e),c("#wcf-scratch-steps-categories .step-type-filter-links option").removeClass("current"),c('#wcf-scratch-steps-categories .step-type-filter-links option[data-group="'+e+'"]').addClass("current")),c(".step-type-filter-links").find("a").removeClass("current"),c(this).addClass("current"),$step_type=c(this).data("slug"),"upsell"===$step_type||"downsell"===$step_type?c(".wcf-template-notice").show():c(".wcf-template-notice").hide(),""!=CartFlowsImportVars._is_pro_active||"upsell"!=$step_type&&"downsell"!=$step_type?(c(".cartflows-step-import-blank").text("Create Step"),c(".cartflows-step-import-blank").removeClass("get-pro"),c(".cartflows-step-import-blank").removeAttr("target")):(c(".cartflows-step-import-blank").text("Get Pro"),c(".cartflows-step-import-blank").attr("href",CartFlowsImportVars.domain_url),c(".cartflows-step-import-blank").attr("target","_blank"),c(".cartflows-step-import-blank").addClass("get-pro")),c("#wcf-remote-step-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showSteps()},_filterBlankStepCategoryChange:function(t){t.preventDefault();var e=c(this).find("option:selected").val()||"";e&&(c(".step-type-filter-links").val(e),c(".step-type-filter-links").find("a").removeClass("current"),c(".step-type-filter-links").find('a[data-group="'+e+'"]').addClass("current")),c(".step-type-filter-links").find("option").removeClass("current"),c(".step-type-filter-links").find("option:selected").addClass("current"),$step_type=c(this).find("option:selected").data("slug"),"upsell"===$step_type||"downsell"===$step_type?c(".wcf-template-notice").show():c(".wcf-template-notice").hide(),""!=CartFlowsImportVars._is_pro_active||"upsell"!=$step_type&&"downsell"!=$step_type?(c(".cartflows-step-import-blank").text("Create Step"),c(".cartflows-step-import-blank").removeClass("get-pro"),c(".cartflows-step-import-blank").removeAttr("target")):(c(".cartflows-step-import-blank").text("Get Pro"),c(".cartflows-step-import-blank").attr("href",CartFlowsImportVars.domain_url),c(".cartflows-step-import-blank").attr("target","_blank"),c(".cartflows-step-import-blank").addClass("get-pro")),!c(".wcf-page-builder-notice").length&&c("#wcf-remote-step-importer").length&&(c("#wcf-remote-step-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showSteps())},_showSteps:function(){var t={licence_args:CartFlowsImportVars.licence_args,per_page:15,_fields:CartFlowsImportVars.step_fields.toString()},e=c("#wcf-categories .step-type-filter-links").find(".current").data("group")||"",s=c("#wcf-categories .step-type-filter-links").find(".current").data("slug");""!==e&&"all"!==e&&(t[CartFlowsImportVars.step_type]=e);e=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("group")||"",s=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("slug")||"";var a=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("title")||"Page Builder";""!==e&&"all"!==e&&(t[CartFlowsImportVars.step_page_builder]=e);var r={remote_slug:CartFlowsImportVars.step,slug:CartFlowsImportVars.step+"?"+decodeURIComponent(c.param(t))};CartFlowsAPI._api_request(r,function(t){t.current_step_type=s;var e=wp.template("cartflows-steps-list");parseInt(t.items_count)?c("#wcf-remote-step-list").html(e(t)):(c("#wcf-remote-step-list").html(wp.template("cartflows-no-steps")),c(".cartflows-no-steps").find(".description").html("We are working on ready templates designed with "+a+'.<br/>Meanwhile you can <a href="#" data-slug="canvas" class="wcf-create-from-scratch-link">create your own designs</a> easily.')),c(".wcf-page-builder-notice").remove(),c("#wcf-remote-step-importer").removeClass("request-process")})},_apiAddParam_per_page:function(){CartFlowsImport._api_params.per_page=15},_apiAddParam_licence_args:function(){CartFlowsImport._api_params.licence_args=CartFlowsImportVars.licence_args},_apiAddParam_search:function(){var t=c(".wcf-flow-search-input").val()||"";""!==t&&(CartFlowsImport._api_params.search=t)},_close_popup:function(){c("#cartflows-steps").fadeOut(),c("body").removeClass("cartflows-popup-is-open")},_post_auto_save:function(){var t=c("#title"),e=c("#title-prompt-text"),s=CartFlowsImport;t.val()||(t.val("CartFlows #"+s.post_id),e.length&&e.remove()),wp.autosave&&wp.autosave.server.triggerSave()},_process_cache_remote_flows:function(){if("gutenberg"==CartFlowsImportVars.default_page_builder)CartFlowsImport._cache_remote_flows();else{var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins,s=!0;c.each(t,function(t,e){s&&("install"!==e.status&&"activate"!==e.status||(s=!1))}),!1===s?(c(".wcf-page-builder-notice").html(wp.template("cartflows-page-builder-notice")),c("#wcf-remote-flow-list").find(".spinner").remove()):CartFlowsImport._cache_remote_flows()}},_cache_remote_flows:function(){CartFlowsImport;var t={search:CartFlowsImportVars.default_page_builder,licence_args:CartFlowsImportVars.licence_args,hide_empty:!1,_fields:CartFlowsImportVars.flow_page_builder_fields.toString()},e={remote_slug:CartFlowsImportVars.flow_page_builder,slug:CartFlowsImportVars.flow_page_builder+"?"+decodeURIComponent(c.param(t)),wrapper_class:"wcf-page-builder-links filter-links",show_all:!1};CartFlowsAPI._api_request(e,function(t){var e=wp.template("cartflows-term-filters");c("#wcf-page-builders").html(e(t)),c("#wcf-page-builders").find("li:first a").addClass("current");var s={licence_args:CartFlowsImportVars.licence_args,hide_empty:!0,_fields:CartFlowsImportVars.flow_type_fields.toString()},a={remote_slug:CartFlowsImportVars.flow_type,slug:CartFlowsImportVars.flow_type+"?"+decodeURIComponent(c.param(s)),wrapper_class:"flow-type-filter-links filter-links",show_all:!1};CartFlowsAPI._api_request(a,function(t){var e=wp.template("cartflows-term-filters");c("#wcf-categories").html(e(t)),c("#wcf-categories").find("li:first a").addClass("current"),CartFlowsImport._showFlows()})})},_render_remote_flows:function(t){t&&t.preventDefault(),c("#wcf-remote-flow-importer").addClass("open"),c("html").addClass("wcf-popup-open")},_process_cache_remote_steps:function(){if("gutenberg"==CartFlowsImportVars.default_page_builder)CartFlowsImport._cache_remote_steps();else{var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins,s=!0;c.each(t,function(t,e){s&&("install"!==e.status&&"activate"!==e.status||(s=!1))}),!1===s?(c(".wcf-page-builder-notice").html(wp.template("cartflows-page-builder-notice")),c("#wcf-remote-step-list").find(".spinner").remove()):CartFlowsImport._cache_remote_steps()}},_cache_remote_steps:function(){CartFlowsImport;c("html").addClass("wcf-steps-loading");var t={search:CartFlowsImportVars.default_page_builder,licence_args:CartFlowsImportVars.licence_args,hide_empty:!1,_fields:CartFlowsImportVars.step_page_builder_fields.toString()},e={remote_slug:CartFlowsImportVars.step_page_builder,slug:CartFlowsImportVars.step_page_builder+"?"+decodeURIComponent(c.param(t)),wrapper_class:"wcf-page-builder-links filter-links",show_all:!1};CartFlowsAPI._api_request(e,function(t){var e=wp.template("cartflows-term-filters");c("#wcf-page-builders").html(e(t)),c("#wcf-page-builders").find("li:first a").addClass("current")});t={licence_args:CartFlowsImportVars.licence_args,_fields:CartFlowsImportVars.step_type_fields.toString()},e={remote_slug:CartFlowsImportVars.step_type,slug:CartFlowsImportVars.step_type+"?"+decodeURIComponent(c.param(t)),wrapper_class:"step-type-filter-links filter-links",show_all:!1};CartFlowsAPI._api_request(e,function(t){var a=t,r=t.items_count;if(t.items)for(key in t.items){var e={licence_args:CartFlowsImportVars.licence_args,per_page:15,_fields:CartFlowsImportVars.step_fields.toString()};e[CartFlowsImportVars.step_type]=t.items[key].id;var s={remote_slug:CartFlowsImportVars.step,slug:CartFlowsImportVars.step+"?"+decodeURIComponent(c.param(e))};CartFlowsAPI._api_request(s,function(t){var e=wp.template("cartflows-steps-list");if(parseInt(t.items_count)?c("#wcf-remote-step-list").html(e(t)):c("#wcf-remote-step-list").html(wp.template("cartflows-no-steps")),0==--r){var s=wp.template("cartflows-term-filters-dropdown");e=wp.template("cartflows-term-filters");c("#wcf-categories").html(e(a)),c("#wcf-scratch-steps-categories").html(s(a)),c("#wcf-categories, #wcf-scratch-steps-categories").find("option:first").addClass("current"),c("#wcf-categories").find("li:first a").addClass("current"),c(".wcf-page-builder-notice").remove(),c("#wcf-remote-content").find(".spinner").remove(),CartFlowsImport._showSteps(),c("html").removeClass("wcf-steps-loading")}})}})},_render_remote_steps:function(t){t&&t.preventDefault(),c("#wcf-remote-step-importer").addClass("open"),c("html").addClass("wcf-popup-open")},_categorize_data:function(t){var a=[];return c.each(t,function(t,e){var s=e.step_type.slug;void 0===a[s]&&(a[s]=[]),a[s].push(e)}),a},_close_template_popup:function(t){(c(t.target).hasClass("wcf-templates-popup-overlay")||c(t.target).hasClass("close-icon"))&&(c(".wcf-templates-popup-overlay").hasClass("request-process")||(c("html").removeClass("wcf-popup-open"),c(".wcf-templates-popup-overlay").removeClass("open")))},_ajax:function(t,a,r){var o=CartFlowsImport;c.ajax({url:ajaxurl,type:"POST",data:t}).done(function(t,e,s){a&&"function"==typeof a&&a({request:t,status:e,XHR:s}),o.doc.trigger(r+"-done",[t,e,s])}).fail(function(t,e){o.doc.trigger(r+"-fail",[t,e])}).always(function(){o.doc.trigger(r+"-always")})},_load_templates:function(t,a){var r=CartFlowsImport;c("body").hasClass("processing")||(c("body").addClass("processing"),c.ajax({url:ajaxurl,type:"POST",data:{action:"cartflows_load_steps",security:cartflows_admin.cf_load_steps_nonce,args:t}}).done(function(t,e,s){r.doc.trigger(a,[t]),c("body").removeClass("processing")}).fail(function(t,e){}).always(function(){}))},_empty:function(t){if("number"==typeof t||"boolean"==typeof t)return!1;if(null==t)return!0;if(void 0!==t.length)return 0==t.length;var e=0;for(var s in t)t.hasOwnProperty(s)&&e++;return 0==e},_preview_individual:function(){var t=c(this).data("id")||"",e=c(this).data("href")||"";c(".cartflows-preview-flow-step").removeClass("active"),c('.cartflows-preview-flow-step[data-id="'+t+'"]').addClass("active"),c("#TB_window").addClass("cartflows-thickbox-loading"),c("#TB_iframeContent").removeAttr("onload"),c("#TB_iframeContent").removeAttr("src"),c("#TB_iframeContent").attr("src",e),c("#TB_iframeContent").attr("onload","CartFlowsImport.showIframe()")},showIframe:function(){c("#TB_load").remove(),c("#TB_window").css({visibility:"visible"}),c("#TB_window").removeClass("cartflows-thickbox-loading")},_previewLoaded:function(t){t.preventDefault(),c("#TB_window").removeClass("cartflows-thickbox-loading")},_filterFlowPageBuilderClick:function(t){t.preventDefault(),c(this).parents("ul").find("a").removeClass("current"),c(this).addClass("current"),c(".wcf-page-builder-notice").html(""),c("#wcf-remote-flow-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showFlows()},_showFlows:function(){var t={licence_args:CartFlowsImportVars.licence_args,_fields:CartFlowsImportVars.flow_fields.toString()},e=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("group")||"";c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("slug"),c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("title");""!==e&&"all"!==e&&(t[CartFlowsImportVars.flow_page_builder]=e);var s={remote_slug:CartFlowsImportVars.flow,slug:CartFlowsImportVars.flow+"?"+decodeURIComponent(c.param(t))};CartFlowsAPI._api_request(s,function(t){var e=wp.template("cartflows-flows-list");parseInt(t.items_count)?c("#wcf-remote-flow-list").html(e(t)):c("#wcf-remote-flow-list").html(wp.template("cartflows-no-flows")),c(".wcf-page-builder-notice").remove(),c("#wcf-remote-flow-importer").removeClass("request-process")})},_create_default_flow:function(t){t.preventDefault();var e=CartFlowsImport,s=c(this);if(!s.hasClass("updating-message")){c("#wcf-remote-flow-importer").addClass("request-process"),s.addClass("updating-message").text("Creating Flow.."),s.parents(".template").addClass("importing");var a={action:"cartflows_default_flow",security:cartflows_admin.cf_default_flow_nonce};e._ajax(a,function(t){if(t.request.success){var e=t.request.data;setTimeout(function(){s.removeClass("updating-message").text("Flow Created! Redirecting.."),window.location=CartFlowsImportVars.admin_url+"post.php?post="+e+"&action=edit"},3e3)}})}},_activate_plugin:function(t){var e={action:"cartflows_activate_plugin",plugin_init:t};CartFlowsImport._ajax(e,function(t){})},_process_import_flow:function(t){t.preventDefault();var a=c(this);if(!a.hasClass("updating-message")){c("#wcf-remote-flow-importer").addClass("request-process");var e=CartFlowsImport;a.text("Creating Flow.."),a.addClass("updating-message"),a.parents(".template").addClass("importing");var s=a.data("flow-steps")||"",r=""!==s?JSON.parse("["+s+"]"):[],o={action:"cartflows_create_flow",security:cartflows_admin.cf_create_flow_nonce};e._ajax(o,function(t){if(t.request.success){var s=t.request.data;r&&(CartFlowsAjaxQueue.stop(),CartFlowsAjaxQueue.run(),CartFlowsImport.all_steps=r.length,a.addClass("updating-message").text("Importing Step 1 of "+CartFlowsImport.all_steps),c.each(r,function(t,e){CartFlowsAjaxQueue.add({url:CartFlowsImportVars.ajaxurl,type:"POST",data:{action:"cartflows_import_flow_step",flow_id:s,template_id:e,security:cartflows_admin.cf_import_flow_step_nonce},success:function(t){CartFlowsImport.remaining_steps=CartFlowsImport.remaining_steps+1,CartFlowsImport.remaining_steps===CartFlowsImport.all_steps?(a.addClass("updating-message").text("Imported Step "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps),setTimeout(function(){a.removeClass("updating-message").text("All Imported! Redirecting.."),window.location=CartFlowsImportVars.admin_url+"post.php?post="+s+"&action=edit"},3e3)):a.addClass("updating-message").text("Importing Step "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps)},error:function(t){CartFlowsImport.remaining_steps=CartFlowsImport.remaining_steps+1,template=a.parents(".template.importing"),template.find(".preview").addClass("notice notice-warning").removeClass("preview").text(t.statusText),CartFlowsImport.remaining_steps===CartFlowsImport.all_steps?(a.addClass("updating-message").text("Failed "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps),setTimeout(function(){a.removeClass("updating-message button-primary").addClass("disabled")},3e3)):a.addClass("updating-message").text("Failed "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps)},fail:function(t){CartFlowsImport.remaining_steps=CartFlowsImport.remaining_steps+1,CartFlowsImport.remaining_steps===CartFlowsImport.all_steps?(a.addClass("updating-message").text("Imported "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps),setTimeout(function(){a.removeClass("updating-message").text("All Step Imported! Reloading.."),location.reload()},3e3)):a.addClass("updating-message").text("Importing "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps)}})}))}})}},_handle_error:function(t){c(".cartflows-step-import.updating-message").addClass("updating-message").text(t.errorMessage)},_create_blank_step:function(t){t.preventDefault();var s=c(this),e=CartFlowsImport,a=c("#post_ID").val(),r=c("#wcf-scratch-steps-categories .step-type-filter-links .current").data("slug")||"",o=c("#wcf-scratch-steps-categories .step-type-filter-links .current").data("title")||"",l=r,i=c('.wcf-step-wrap[data-term-slug="'+r+'"]').length||1,p=o+" "+(parseInt(i)+1);if(c("#wcf-start-from-scratch .wcf-notice-wrap").remove(),""!==l){if(CartFlowsImportVars._is_pro_active||"upsell"!==l&&"downsell"!==l){if(s.parents(".template").addClass("importing"),!CartFlowsImportVars._is_pro_active)if("checkout"===l)if(0<c('.wcf-step-wrap[data-term-slug="checkout"]').length){s.parents(".template.importing");return s.removeClass("importing updating-message").text("Import Failed!"),void c("#wcf-start-from-scratch .inner").append('<div class="wcf-notice-wrap"><div class="notice notice-warning"><p>Upgrade to Pro for adding more than one Checkout step.</p></div></div>')}if(c("#wcf-remote-step-importer").addClass("request-process"),c(".cartflows-step-import").addClass("disabled"),s.addClass("importing updating-message").text("Creating.."),c("body").hasClass("post-type-cartflows_flow")){var n={action:"cartflows_step_create_blank",flow_id:a,step_type:l,step_title:p,security:cartflows_admin.cf_step_create_blank_nonce};e._ajax(n,function(t){CartFlowsImport;var e=s.parents(".template.importing");t.request.success?(s.text("Created. Reloading.."),setTimeout(function(){window.location.href=window.location.href+"&highlight-step-id="+t.request.data},3e3)):(s.removeClass("importing updating-message").text("Creating Failed!"),c("#wcf-remote-step-importer").removeClass("request-process"),e.find(".cartflows-step-preview").append("<div class='preview'></div>"),e.find(".preview").addClass("notice notice-warning").removeClass("preview").text(t.request.data))})}}}else c("#wcf-start-from-scratch .inner").append('<div class="wcf-notice-wrap"><div class="notice notice-info"><p>Please select the step type.</p></div></div>')},_process_import_step:function(t){t.preventDefault();var s=c(this),e=s.data("slug")||"",a=c('.wcf-step-wrap[data-term-slug="'+e+'"]').length||1;if((step_title=s.data("title")||"",step_custom_title=step_title+" "+(parseInt(a)+1),o=CartFlowsImport,!CartFlowsImportVars._is_pro_active)&&("checkout"===e&&0<c('.wcf-step-wrap[data-term-slug="checkout"]').length)){var r=s.parents(".template");return s.removeClass("importing updating-message").text("Import Failed!"),r.find(".preview").hide(),r.find("#wcf_create_notice").show().find("a").addClass("notice notice-warning ").text("Upgrade to Pro for adding more than one Checkout step"),void c("#wcf-remote-step-importer").removeClass("request-process")}if(!s.hasClass("updating-message")){c("#wcf-remote-step-importer").addClass("request-process");var o=CartFlowsImport;s.addClass("updating-message"),s.parents(".template").addClass("importing");var l=s.data("template-id")||"",i=c("#post_ID").val(),p=e;o=CartFlowsImport;if(c(".cartflows-step-import-blank").addClass("disabled"),c(".cartflows-step-import").addClass("disabled"),s.addClass("importing updating-message").text("Importing.."),c("body").hasClass("post-type-cartflows_flow")){var n={action:"cartflows_step_import",flow_id:i,template_id:l,step_title:step_custom_title,step_type:p,security:cartflows_admin.cf_step_import_nonce};o._ajax(n,function(t){CartFlowsImport;var e=s.parents(".template.importing");t.request.success?(s.text("Imported. Reloading.."),setTimeout(function(){window.location.href=window.location.href+"&highlight-step-id="+t.request.data},3e3)):(c(".wcf-templates-popup-overlay").removeClass("request-process"),s.removeClass("importing updating-message").text("Import Failed!"),e.find(".preview").addClass("notice notice-warning").removeClass("preview").text(t.request.data))},"add_template_to_page")}}},_add_template_to_page_fail:function(t,e,s){t.preventDefault();CartFlowsImport;var a=c(".wcf-flow-steps-data-wrap-importer .template.importing");a.find(".cartflows-step-import").removeClass("importing updating-message").text("Import Failed!"),a.find(".preview").addClass("notice notice-warning").removeClass("preview").text(e.responseText)}},c(function(){CartFlowsImport.init()})}(jQuery);
|
1 |
+
var CartFlowsAjaxQueue=function(){var s=[];return{add:function(t){s.push(t)},remove:function(t){-1<jQuery.inArray(t,s)&&s.splice($.inArray(t,s),1)},run:function(){var t,e=this;s.length?(t=s[0].complete,s[0].complete=function(){"function"==typeof t&&t(),s.shift(),e.run.apply(e,[])},jQuery.ajax(s[0])):e.tid=setTimeout(function(){e.run.apply(e,[])},1e3)},stop:function(){s=[],clearTimeout(this.tid)}}}();!function(c){CartFlowsImport={doc:c(document),wrap:c(".wcf-flow-steps-data-wrap"),inner:c(".wcf-flow-steps-data-wrap-importer"),post_id:c("#post_ID").val(),_ref:null,_api_step_type:{},_api_params:{},all_steps:0,remaining_steps:0,remaining_install_plugins:0,remaining_active_plugins:0,woo_required_steps:["checkout","upsell","downsell","thankyou"],step_order:["landing","checkout","upsell","downsell","thankyou"],new_step_names:{landing:"Landing",checkout:"Checkout (Woo)",upsell:"Upsell (Woo)",downsell:"Downsell (Woo)",thankyou:"Thank You (Woo)"},init:function(){if(this._bind(),"other"!==CartFlowsImportVars.default_page_builder&&(c(".post-type-cartflows_flow").hasClass("edit-php")&&this._process_cache_remote_flows(),c(".post-type-cartflows_flow").hasClass("post-php")&&this._process_cache_remote_steps()),c(".post-type-cartflows_flow").hasClass("edit-php")&&null!==this._getParamFromURL("add-new-flow")&&this._render_remote_flows(),c(".post-type-cartflows_flow").hasClass("post-php")&&null!==this._getParamFromURL("add-new-step")&&this._render_remote_steps(),this._getParamFromURL("highlight-step-id")){var t=c('.wcf-step-wrap[data-id="'+this._getParamFromURL("highlight-step-id")+'"]');t.length&&c("html, body").animate({scrollTop:t.offset().top},1500)}if(c(".post-type-cartflows_flow").hasClass("edit-php")){var e=c(".edit-php.post-type-cartflows_flow").find(".page-title-action:first");e.after('<a href="'+CartFlowsImportVars.export_url+'" class="page-title-action">Export</a>'),e.after('<a href="'+CartFlowsImportVars.import_url+'" class="page-title-action">Import</a>')}},_getParamFromURL:function(t,e){e||(e=window.location.href),t=t.replace(/[\[\]]/g,"\\$&");var s=new RegExp("[?&]"+t+"(=([^&#]*)|&|#|$)").exec(e);return s?s[2]?decodeURIComponent(s[2].replace(/\+/g," ")):"":null},_bind:function(){var t=CartFlowsImport;t.doc.on("click",".wcf-install-plugin",t._install_plugin),t.doc.on("cartflows-api-request-fail",t._api_request_failed),t.doc.on("click","#wcf-get-started-steps a, .wcf-create-from-scratch-link",t._toggle_ready_templates),t.doc.on("click",".cartflows-flow-import-blank",t._create_default_flow),t.doc.on("click","#wcf-remote-flow-importer .wcf-page-builder-links a",t._filterFlowPageBuilderClick),t.doc.on("click","#wcf-remote-step-importer #wcf-categories .step-type-filter-links a",t._filterBlankStepCategoryClick),t.doc.on("change","#wcf-remote-step-importer #wcf-scratch-steps-categories .step-type-filter-links",t._filterBlankStepCategoryChange),t.doc.on("click","#wcf-get-started-steps",t._filterBlankStepCategoryChange),t.doc.on("click","#wcf-remote-step-importer .wcf-page-builder-links a",t._filterStepPageBuilderClick),t.doc.on("click",".cartflows-step-import-blank:not(.get-pro)",t._create_blank_step),t.doc.on("click","#wcf-remote-step-importer .cartflows-step-import",t._process_import_step),t.doc.on("click","#wcf-remote-flow-importer .cartflows-step-import",t._process_import_flow),t.doc.on("click",".cartflows-preview-flow-step",t._preview_individual),t.doc.on("add_template_to_page-fail",t._add_template_to_page_fail),c("body").on("thickbox:iframe:loaded",t._previewLoaded),c(document).on("keyup input","#wcf-remote-step-importer .wcf-flow-search-input",t._remote_step_search),c(document).on("click",".actions a",t._previewResponsive),c(document).on("click",".page-title-action:first",t._render_remote_flows),c(document).on("click",".wcf-trigger-popup",t._render_remote_steps),c(document).on("click",".wcf-templates-popup-overlay",t._close_template_popup),c(document).on("click",".wcf-popup-close-wrap .close-icon",t._close_template_popup),c(document).on("wp-plugin-install-success",t._installSuccess),c(document).on("click",".wcf-activate-wc",t._installWc)},_install_plugin:function(t){t.preventDefault();var e=c(this);if(!e.hasClass("updating-message")){c("#wcf-remote-flow-importer").addClass("request-process"),c("#wcf-remote-step-importer").addClass("request-process"),e.addClass("updating-message button");var s=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;c.each(s,function(t,e){"install"===e.status&&CartFlowsImport.remaining_install_plugins++,"activate"===e.status&&CartFlowsImport.remaining_active_plugins++}),CartFlowsImport.remaining_install_plugins?CartFlowsImport._install_all_plugins():CartFlowsImport.remaining_active_plugins?CartFlowsImport._activate_all_plugins():c("#wcf-remote-flow-importer").length?CartFlowsImport._cache_remote_flows():c("#wcf-remote-step-importer").length&&CartFlowsImport._cache_remote_steps()}},_install_all_plugins:function(){var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;c.each(t,function(t,e){"install"===e.status&&wp.updates.queue.push({action:"install-plugin",data:{slug:e.slug}})}),wp.updates.queueChecker()},_activate_all_plugins:function(){if(CartFlowsImport.remaining_active_plugins||CartFlowsImport.remaining_install_plugins){var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;CartFlowsAjaxQueue.stop(),CartFlowsAjaxQueue.run(),c.each(t,function(t,e){"activate"===e.status&&CartFlowsAjaxQueue.add({url:CartFlowsImportVars.ajaxurl,type:"POST",data:{action:"cartflows_activate_plugin",plugin_init:e.init},success:function(t){CartFlowsImport.remaining_active_plugins--,CartFlowsImport.remaining_active_plugins||CartFlowsImport.remaining_install_plugins||(c("#wcf-remote-flow-importer").length?CartFlowsImport._cache_remote_flows():c("#wcf-remote-step-importer").length&&CartFlowsImport._cache_remote_steps())}})})}else c("#wcf-remote-flow-importer").length?CartFlowsImport._cache_remote_flows():c("#wcf-remote-step-importer").length&&CartFlowsImport._cache_remote_steps()},_installSuccess:function(t,s){t.preventDefault(),"no"===CartFlowsImportVars.is_wc_activated&&CartFlowsImport._activateWc();var e=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins;c.each(e,function(t,e){"install"===e.status&&s.slug===e.slug&&c.ajax({url:ajaxurl,type:"POST",data:{action:"cartflows_activate_plugin",plugin_init:e.init}}).done(function(t,e,s){CartFlowsImport.remaining_install_plugins--,CartFlowsImport.remaining_install_plugins||CartFlowsImport._activate_all_plugins()})})},_api_request_failed:function(t,e,s,a){"error"==a&&(c("#wcf-remote-content-failed").length||c("#wcf-ready-templates").html(wp.template("cartflows-website-unreachable")))},_toggle_ready_templates:function(t){t.preventDefault();var e=c(this).data("slug")||"";c("#wcf-get-started-steps").find("a").removeClass("current"),c("#wcf-get-started-steps").find('a[data-slug="'+e+'"]').addClass("current"),"canvas"==e?(c("#wcf-ready-templates").hide(),c("#wcf-start-from-scratch").show()):(c("#wcf-ready-templates").show(),c("#wcf-start-from-scratch").hide()),!c(".wcf-page-builder-notice").length&&c("#wcf-remote-step-importer").length&&CartFlowsImport._showSteps()},_switch_step_tab:function(t){t.preventDefault();var e=c(".wcf-tab > li.active > a").attr("href");c(".wcf-tab > li.active").removeClass("active"),c(this).parents("li").addClass("active"),c(e).removeClass("active"),c(e).addClass("hide");var s=c(this).attr("href");c(s).removeClass("hide"),c(s).addClass("active")},_remote_step_search:function(t){t.preventDefault(),c(".step-type-filter-links").find("option").removeClass("current"),c(".step-type-filter-links").find("option:first-child").addClass("current"),window.clearTimeout(CartFlowsImport._ref),CartFlowsImport._ref=window.setTimeout(function(){CartFlowsImport._ref=null,CartFlowsImport._showSteps()},500)},_previewResponsive:function(t){t.preventDefault();var e=c(this).find(".dashicons"),s=e.attr("data-view")||"";c("#TB_window").removeClass("desktop tablet mobile"),c("#TB_window").addClass(s),c(".actions .dashicons").removeClass("active"),e.addClass("active"),c("#TB_iframeContent").removeClass(),c("#TB_iframeContent").addClass(s)},_filterStepPageBuilderClick:function(t){t.preventDefault(),c(this).parents("ul").find("a").removeClass("current"),c(this).addClass("current");var e=c(".step-type-filter-links .current").data("slug")||"";"upsell"===e||"downsell"===e?c(".wcf-template-notice").show():c(".wcf-template-notice").hide(),c(".wcf-page-builder-notice").html(""),c("#wcf-remote-step-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showSteps()},_filterBlankStepCategoryClick:function(t){t.preventDefault(),c(".wcf-page-builder-notice").html("");var e=c(this).data("group")||"";e&&(c("#wcf-scratch-steps-categories .step-type-filter-links").val(e),c("#wcf-scratch-steps-categories .step-type-filter-links option").removeClass("current"),c('#wcf-scratch-steps-categories .step-type-filter-links option[data-group="'+e+'"]').addClass("current")),c(".step-type-filter-links").find("a").removeClass("current"),c(this).addClass("current"),$step_type=c(this).data("slug"),"upsell"===$step_type||"downsell"===$step_type?c(".wcf-template-notice").show():c(".wcf-template-notice").hide(),""!=CartFlowsImportVars._is_pro_active||"upsell"!=$step_type&&"downsell"!=$step_type?(c(".cartflows-step-import-blank").text("Create Step"),c(".cartflows-step-import-blank").removeClass("get-pro"),c(".cartflows-step-import-blank").removeAttr("target")):(c(".cartflows-step-import-blank").text("Get Pro"),c(".cartflows-step-import-blank").attr("href",CartFlowsImportVars.domain_url),c(".cartflows-step-import-blank").attr("target","_blank"),c(".cartflows-step-import-blank").addClass("get-pro")),c("#wcf-remote-step-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showSteps()},_filterBlankStepCategoryChange:function(t){t.preventDefault(),c(".wcf-notice-wrap").remove(),c(".cartflows-step-import-blank").css("pointer-events","auto").removeClass("disabled");var e=c(".step-type-filter-links").find("option:selected").val()||"";if(e&&(c(".step-type-filter-links").val(e),c(".step-type-filter-links").find("a").removeClass("current"),c(".step-type-filter-links").find('a[data-group="'+e+'"]').addClass("current")),c(".step-type-filter-links").find("option").removeClass("current"),c(".step-type-filter-links").find("option:selected").addClass("current"),$step_type=c(".step-type-filter-links").find("option:selected").data("slug"),!("no"!==CartFlowsImportVars.is_wc_installed&&"no"!==CartFlowsImportVars.is_wc_activated||"upsell"!==$step_type&&"downsell"!==$step_type&&"checkout"!==$step_type&&"thankyou"!==$step_type))return c(".cartflows-step-import-blank").after("<p class='wcf-notice-wrap' style='text-align: center'>You need WooCommerce plugin installed and actived to use this product flow. <br/><br/> <a href='#' class='wcf-activate-wc button-secondary'> Click here to install and activate WooCommerce </a> </p>"),void c(".cartflows-step-import-blank").addClass("disabled").css("pointer-events","none");"upsell"===$step_type||"downsell"===$step_type?c(".wcf-template-notice").show():c(".wcf-template-notice").hide(),""!=CartFlowsImportVars._is_pro_active||"upsell"!=$step_type&&"downsell"!=$step_type?(c(".cartflows-step-import-blank").text("Create Step"),c(".cartflows-step-import-blank").removeClass("get-pro"),c(".cartflows-step-import-blank").removeAttr("target")):(c(".cartflows-step-import-blank").text("Get Pro"),c(".cartflows-step-import-blank").attr("href",CartFlowsImportVars.domain_url),c(".cartflows-step-import-blank").attr("target","_blank"),c(".cartflows-step-import-blank").addClass("get-pro")),!c(".wcf-page-builder-notice").length&&c("#wcf-remote-step-importer").length&&(c("#wcf-remote-step-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showSteps())},_showSteps:function(){var t={licence_args:CartFlowsImportVars.licence_args,per_page:15,_fields:CartFlowsImportVars.step_fields.toString()},e=c("#wcf-categories .step-type-filter-links").find(".current").data("group")||"",a=c("#wcf-categories .step-type-filter-links").find(".current").data("slug");""!==e&&"all"!==e&&(t[CartFlowsImportVars.step_type]=e);e=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("group")||"",a=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("slug")||"";var r=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("title")||"Page Builder";""!==e&&"all"!==e&&(t[CartFlowsImportVars.step_page_builder]=e);var s={remote_slug:CartFlowsImportVars.step,slug:CartFlowsImportVars.step+"?"+decodeURIComponent(c.param(t))};CartFlowsAPI._api_request(s,function(s){s.current_step_type=a,"yes"!==CartFlowsImportVars.is_wc_activated&&c.each(s.items,function(t,e){s.items[t].woo_required=!1,0<=c.inArray(e.step_type.slug,CartFlowsImport.woo_required_steps)&&(s.items[t].woo_required=!0)});var t=wp.template("cartflows-steps-list");parseInt(s.items_count)?c("#wcf-remote-step-list").html(t(s)):(c("#wcf-remote-step-list").html(wp.template("cartflows-no-steps")),c(".cartflows-no-steps").find(".description").html("We are working on ready templates designed with "+r+'.<br/>Meanwhile you can <a href="#" data-slug="canvas" class="wcf-create-from-scratch-link">create your own designs</a> easily.')),c(".wcf-page-builder-notice").remove(),c("#wcf-remote-step-importer").removeClass("request-process")})},_apiAddParam_per_page:function(){CartFlowsImport._api_params.per_page=15},_apiAddParam_licence_args:function(){CartFlowsImport._api_params.licence_args=CartFlowsImportVars.licence_args},_apiAddParam_search:function(){var t=c(".wcf-flow-search-input").val()||"";""!==t&&(CartFlowsImport._api_params.search=t)},_close_popup:function(){c("#cartflows-steps").fadeOut(),c("body").removeClass("cartflows-popup-is-open")},_post_auto_save:function(){var t=c("#title"),e=c("#title-prompt-text"),s=CartFlowsImport;t.val()||(t.val("CartFlows #"+s.post_id),e.length&&e.remove()),wp.autosave&&wp.autosave.server.triggerSave()},_process_cache_remote_flows:function(){if("gutenberg"==CartFlowsImportVars.default_page_builder)CartFlowsImport._cache_remote_flows();else{var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins,s=!0;c.each(t,function(t,e){s&&("install"!==e.status&&"activate"!==e.status||(s=!1))}),!1===s?(c(".wcf-page-builder-notice").html(wp.template("cartflows-page-builder-notice")),c("#wcf-remote-flow-list").find(".spinner").remove()):CartFlowsImport._cache_remote_flows()}},_cache_remote_flows:function(){CartFlowsImport;var t={search:CartFlowsImportVars.default_page_builder,licence_args:CartFlowsImportVars.licence_args,hide_empty:!1,_fields:CartFlowsImportVars.flow_page_builder_fields.toString()},e={remote_slug:CartFlowsImportVars.flow_page_builder,slug:CartFlowsImportVars.flow_page_builder+"?"+decodeURIComponent(c.param(t)),wrapper_class:"wcf-page-builder-links filter-links",show_all:!1};CartFlowsAPI._api_request(e,function(t){var e=wp.template("cartflows-term-filters");c("#wcf-page-builders").html(e(t)),c("#wcf-page-builders").find("li:first a").addClass("current");var s={licence_args:CartFlowsImportVars.licence_args,hide_empty:!0,_fields:CartFlowsImportVars.flow_type_fields.toString()},a={remote_slug:CartFlowsImportVars.flow_type,slug:CartFlowsImportVars.flow_type+"?"+decodeURIComponent(c.param(s)),wrapper_class:"flow-type-filter-links filter-links",show_all:!1};CartFlowsAPI._api_request(a,function(t){var e=wp.template("cartflows-term-filters");c("#wcf-categories").html(e(t)),c("#wcf-categories").find("li:first a").addClass("current"),CartFlowsImport._showFlows()})})},_render_remote_flows:function(t){t&&t.preventDefault(),c("#wcf-remote-flow-importer").addClass("open"),c("html").addClass("wcf-popup-open")},_process_cache_remote_steps:function(){if("gutenberg"==CartFlowsImportVars.default_page_builder)CartFlowsImport._cache_remote_steps();else{var t=CartFlowsImportVars.required_plugins[CartFlowsImportVars.default_page_builder].plugins,s=!0;c.each(t,function(t,e){s&&("install"!==e.status&&"activate"!==e.status||(s=!1))}),!1===s?(c(".wcf-page-builder-notice").html(wp.template("cartflows-page-builder-notice")),c("#wcf-remote-step-list").find(".spinner").remove()):CartFlowsImport._cache_remote_steps()}},mapOrder:function(t,r,o){return t.sort(function(t,e){var s=t[o],a=e[o];return r.indexOf(s)>r.indexOf(a)?1:-1}),t},_cache_remote_steps:function(){CartFlowsImport;c("html").addClass("wcf-steps-loading");var t={search:CartFlowsImportVars.default_page_builder,licence_args:CartFlowsImportVars.licence_args,hide_empty:!1,_fields:CartFlowsImportVars.step_page_builder_fields.toString()},e={remote_slug:CartFlowsImportVars.step_page_builder,slug:CartFlowsImportVars.step_page_builder+"?"+decodeURIComponent(c.param(t)),wrapper_class:"wcf-page-builder-links filter-links",show_all:!1};CartFlowsAPI._api_request(e,function(t){var e=wp.template("cartflows-term-filters");c("#wcf-page-builders").html(e(t)),c("#wcf-page-builders").find("li:first a").addClass("current")});t={licence_args:CartFlowsImportVars.licence_args,_fields:CartFlowsImportVars.step_type_fields.toString()},e={remote_slug:CartFlowsImportVars.step_type,slug:CartFlowsImportVars.step_type+"?"+decodeURIComponent(c.param(t)),wrapper_class:"step-type-filter-links filter-links",show_all:!1};CartFlowsAPI._api_request(e,function(t){t.items=CartFlowsImport.mapOrder(t.items,CartFlowsImport.step_order,"slug");var a=t,r=t.items_count;if(t.items)for(key in t.items){t.items[key].name=CartFlowsImport.new_step_names[t.items[key].slug];var e={licence_args:CartFlowsImportVars.licence_args,per_page:15,_fields:CartFlowsImportVars.step_fields.toString()};e[CartFlowsImportVars.step_type]=t.items[key].id;var s={remote_slug:CartFlowsImportVars.step,slug:CartFlowsImportVars.step+"?"+decodeURIComponent(c.param(e))};CartFlowsAPI._api_request(s,function(t){var e=wp.template("cartflows-steps-list");if(parseInt(t.items_count)?c("#wcf-remote-step-list").html(e(t)):c("#wcf-remote-step-list").html(wp.template("cartflows-no-steps")),0==--r){var s=wp.template("cartflows-term-filters-dropdown");e=wp.template("cartflows-term-filters");c("#wcf-categories").html(e(a)),c("#wcf-scratch-steps-categories").html(s(a)),c("#wcf-categories, #wcf-scratch-steps-categories").find("option:first").addClass("current"),c("#wcf-categories").find("li:first a").addClass("current"),c(".wcf-page-builder-notice").remove(),c("#wcf-remote-content").find(".spinner").remove(),CartFlowsImport._showSteps(),c("html").removeClass("wcf-steps-loading")}})}})},_render_remote_steps:function(t){t&&t.preventDefault(),c("#wcf-remote-step-importer").addClass("open"),c("html").addClass("wcf-popup-open")},_categorize_data:function(t){var a=[];return c.each(t,function(t,e){var s=e.step_type.slug;void 0===a[s]&&(a[s]=[]),a[s].push(e)}),a},_close_template_popup:function(t){(c(t.target).hasClass("wcf-templates-popup-overlay")||c(t.target).hasClass("close-icon"))&&(c(".wcf-templates-popup-overlay").hasClass("request-process")||(c("html").removeClass("wcf-popup-open"),c(".wcf-templates-popup-overlay").removeClass("open")))},_ajax:function(t,a,r){var o=CartFlowsImport;c.ajax({url:ajaxurl,type:"POST",data:t}).done(function(t,e,s){a&&"function"==typeof a&&a({request:t,status:e,XHR:s}),o.doc.trigger(r+"-done",[t,e,s])}).fail(function(t,e){o.doc.trigger(r+"-fail",[t,e])}).always(function(){o.doc.trigger(r+"-always")})},_load_templates:function(t,a){var r=CartFlowsImport;c("body").hasClass("processing")||(c("body").addClass("processing"),c.ajax({url:ajaxurl,type:"POST",data:{action:"cartflows_load_steps",security:cartflows_admin.cf_load_steps_nonce,args:t}}).done(function(t,e,s){r.doc.trigger(a,[t]),c("body").removeClass("processing")}).fail(function(t,e){}).always(function(){}))},_empty:function(t){if("number"==typeof t||"boolean"==typeof t)return!1;if(null==t)return!0;if(void 0!==t.length)return 0==t.length;var e=0;for(var s in t)t.hasOwnProperty(s)&&e++;return 0==e},_preview_individual:function(){var t=c(this).data("id")||"",e=c(this).data("href")||"";c(".cartflows-preview-flow-step").removeClass("active"),c('.cartflows-preview-flow-step[data-id="'+t+'"]').addClass("active"),c("#TB_window").addClass("cartflows-thickbox-loading"),c("#TB_iframeContent").removeAttr("onload"),c("#TB_iframeContent").removeAttr("src"),c("#TB_iframeContent").attr("src",e),c("#TB_iframeContent").attr("onload","CartFlowsImport.showIframe()")},showIframe:function(){c("#TB_load").remove(),c("#TB_window").css({visibility:"visible"}),c("#TB_window").removeClass("cartflows-thickbox-loading")},_previewLoaded:function(t){t.preventDefault(),c("#TB_window").removeClass("cartflows-thickbox-loading")},_filterFlowPageBuilderClick:function(t){t.preventDefault(),c(this).parents("ul").find("a").removeClass("current"),c(this).addClass("current"),c(".wcf-page-builder-notice").html(""),c("#wcf-remote-flow-list").html('<span class="spinner is-active"></span>'),CartFlowsImport._showFlows()},_showFlows:function(){var t={licence_args:CartFlowsImportVars.licence_args,_fields:CartFlowsImportVars.flow_fields.toString()},e=c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("group")||"";c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("slug"),c("#wcf-page-builders .wcf-page-builder-links").find(".current").data("title");""!==e&&"all"!==e&&(t[CartFlowsImportVars.flow_page_builder]=e);var s={remote_slug:CartFlowsImportVars.flow,slug:CartFlowsImportVars.flow+"?"+decodeURIComponent(c.param(t))};CartFlowsAPI._api_request(s,function(a){"yes"!==CartFlowsImportVars.is_wc_activated&&c.each(a.items,function(s,t){a.items[s].woo_required=!1,c.each(t.flow_steps,function(t,e){0<=c.inArray(e.type,CartFlowsImport.woo_required_steps)&&(a.items[s].woo_required=!0)})});var t=wp.template("cartflows-flows-list");parseInt(a.items_count)?c("#wcf-remote-flow-list").html(t(a)):c("#wcf-remote-flow-list").html(wp.template("cartflows-no-flows")),c(".wcf-page-builder-notice").remove(),c("#wcf-remote-flow-importer").removeClass("request-process")})},_create_default_flow:function(t){t.preventDefault();var e=CartFlowsImport,s=c(this);if(!s.hasClass("updating-message")){c("#wcf-remote-flow-importer").addClass("request-process"),s.addClass("updating-message").text("Creating Flow.."),s.parents(".template").addClass("importing");var a={action:"cartflows_default_flow",security:cartflows_admin.cf_default_flow_nonce};e._ajax(a,function(t){if(t.request.success){var e=t.request.data;setTimeout(function(){s.removeClass("updating-message").text("Flow Created! Redirecting.."),window.location=CartFlowsImportVars.admin_url+"post.php?post="+e+"&action=edit"},3e3)}})}},_activate_plugin:function(t){var e={action:"cartflows_activate_plugin",plugin_init:t};CartFlowsImport._ajax(e,function(t){})},_process_import_flow:function(t){t.preventDefault();var a=c(this);if(!a.hasClass("updating-message")){c("#wcf-remote-flow-importer").addClass("request-process");var e=CartFlowsImport;a.text("Creating Flow.."),a.addClass("updating-message"),a.parents(".template").addClass("importing");var s=a.data("flow-steps")||"",r=""!==s?JSON.parse("["+s+"]"):[],o={action:"cartflows_create_flow",security:cartflows_admin.cf_create_flow_nonce};e._ajax(o,function(t){if(t.request.success){var s=t.request.data;r&&(CartFlowsAjaxQueue.stop(),CartFlowsAjaxQueue.run(),CartFlowsImport.all_steps=r.length,a.addClass("updating-message").text("Importing Step 1 of "+CartFlowsImport.all_steps),c.each(r,function(t,e){CartFlowsAjaxQueue.add({url:CartFlowsImportVars.ajaxurl,type:"POST",data:{action:"cartflows_import_flow_step",flow_id:s,template_id:e,security:cartflows_admin.cf_import_flow_step_nonce},success:function(t){CartFlowsImport.remaining_steps=CartFlowsImport.remaining_steps+1,CartFlowsImport.remaining_steps===CartFlowsImport.all_steps?(a.addClass("updating-message").text("Imported Step "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps),setTimeout(function(){a.removeClass("updating-message").text("All Imported! Redirecting.."),window.location=CartFlowsImportVars.admin_url+"post.php?post="+s+"&action=edit"},3e3)):a.addClass("updating-message").text("Importing Step "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps)},error:function(t){CartFlowsImport.remaining_steps=CartFlowsImport.remaining_steps+1,template=a.parents(".template.importing"),template.find(".preview").addClass("notice notice-warning").removeClass("preview").text(t.statusText),CartFlowsImport.remaining_steps===CartFlowsImport.all_steps?(a.addClass("updating-message").text("Failed "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps),setTimeout(function(){a.removeClass("updating-message button-primary").addClass("disabled")},3e3)):a.addClass("updating-message").text("Failed "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps)},fail:function(t){CartFlowsImport.remaining_steps=CartFlowsImport.remaining_steps+1,CartFlowsImport.remaining_steps===CartFlowsImport.all_steps?(a.addClass("updating-message").text("Imported "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps),setTimeout(function(){a.removeClass("updating-message").text("All Step Imported! Reloading.."),location.reload()},3e3)):a.addClass("updating-message").text("Importing "+CartFlowsImport.remaining_steps+" of "+CartFlowsImport.all_steps)}})}))}})}},_handle_error:function(t){c(".cartflows-step-import.updating-message").addClass("updating-message").text(t.errorMessage)},_create_blank_step:function(t){t.preventDefault();var s=c(this),e=CartFlowsImport,a=c("#post_ID").val(),r=c("#wcf-scratch-steps-categories .step-type-filter-links .current").data("slug")||"",o=c("#wcf-scratch-steps-categories .step-type-filter-links .current").data("title")||"",l=r,i=c('.wcf-step-wrap[data-term-slug="'+r+'"]').length||1,p=o+" "+(parseInt(i)+1);if(c("#wcf-start-from-scratch .wcf-notice-wrap ").remove(),""!==l){if(CartFlowsImportVars._is_pro_active||"upsell"!==l&&"downsell"!==l){if(s.parents(".template").addClass("importing"),!CartFlowsImportVars._is_pro_active)if("checkout"===l)if(0<c('.wcf-step-wrap[data-term-slug="checkout"]').length){s.parents(".template.importing");return s.removeClass("importing updating-message").text("Import Failed!"),void c("#wcf-start-from-scratch .inner").append('<div class="wcf-notice-wrap"><div class="notice notice-warning"><p>Upgrade to Pro for adding more than one Checkout step.</p></div></div>')}if(c("#wcf-remote-step-importer").addClass("request-process"),c(".cartflows-step-import").addClass("disabled"),s.addClass("importing updating-message").text("Creating.."),c("body").hasClass("post-type-cartflows_flow")){var n={action:"cartflows_step_create_blank",flow_id:a,step_type:l,step_title:p,security:cartflows_admin.cf_step_create_blank_nonce};e._ajax(n,function(t){CartFlowsImport;var e=s.parents(".template.importing");t.request.success?(s.text("Created. Reloading.."),setTimeout(function(){window.location.href=window.location.href+"&highlight-step-id="+t.request.data},3e3)):(s.removeClass("importing updating-message").text("Creating Failed!"),c("#wcf-remote-step-importer").removeClass("request-process"),e.find(".cartflows-step-preview").append("<div class='preview'></div>"),e.find(".preview").addClass("notice notice-warning").removeClass("preview").text(t.request.data))})}}}else c("#wcf-start-from-scratch .inner").append('<div class="wcf-notice-wrap"><div class="notice notice-info"><p>Please select the step type.</p></div></div>')},_process_import_step:function(t){t.preventDefault();var s=c(this),e=s.data("slug")||"",a=c('.wcf-step-wrap[data-term-slug="'+e+'"]').length||1;if((step_title=s.data("title")||"",step_custom_title=step_title+" "+(parseInt(a)+1),o=CartFlowsImport,!CartFlowsImportVars._is_pro_active)&&("checkout"===e&&0<c('.wcf-step-wrap[data-term-slug="checkout"]').length)){var r=s.parents(".template");return s.removeClass("importing updating-message").text("Import Failed!"),r.find(".preview").hide(),r.find("#wcf_create_notice").show().find("a").addClass("notice notice-warning ").text("Upgrade to Pro for adding more than one Checkout step"),void c("#wcf-remote-step-importer").removeClass("request-process")}if(!s.hasClass("updating-message")){c("#wcf-remote-step-importer").addClass("request-process");var o=CartFlowsImport;s.addClass("updating-message"),s.parents(".template").addClass("importing");var l=s.data("template-id")||"",i=c("#post_ID").val(),p=e;o=CartFlowsImport;if(c(".cartflows-step-import-blank").addClass("disabled"),c(".cartflows-step-import").addClass("disabled"),s.addClass("importing updating-message").text("Importing.."),c("body").hasClass("post-type-cartflows_flow")){var n={action:"cartflows_step_import",flow_id:i,template_id:l,step_title:step_custom_title,step_type:p,security:cartflows_admin.cf_step_import_nonce};o._ajax(n,function(t){CartFlowsImport;var e=s.parents(".template.importing");t.request.success?(s.text("Imported. Reloading.."),setTimeout(function(){window.location.href=window.location.href+"&highlight-step-id="+t.request.data},3e3)):(c(".wcf-templates-popup-overlay").removeClass("request-process"),s.removeClass("importing updating-message").text("Import Failed!"),e.find(".preview").addClass("notice notice-warning").removeClass("preview").text(t.request.data))},"add_template_to_page")}}},_add_template_to_page_fail:function(t,e,s){t.preventDefault();CartFlowsImport;var a=c(".wcf-flow-steps-data-wrap-importer .template.importing");a.find(".cartflows-step-import").removeClass("importing updating-message").text("Import Failed!"),a.find(".preview").addClass("notice notice-warning").removeClass("preview").text(e.responseText)},_activateWc:function(t){c.ajax({url:ajaxurl,type:"POST",data:{action:"cartflows_activate_plugin",plugin_init:"woocommerce/woocommerce.php"}}).done(function(t,e,s){c(".wcf-notice-wrap").addClass("wcf-hidden"),c(".cartflows-template-selector").removeAttr("disabled"),CartFlowsImport.wc_installed=!0,CartFlowsImportVars.is_wc_installed="yes",CartFlowsImportVars.is_wc_activated="yes",location.reload(!0),window.location.search+="&add-new-flow"})},_installWc:function(t){c(this).addClass("updating-message button"),c(this).text(cartflows_admin.wc_activating_message),0==cartflows_admin.wc_status.installed?(wp.updates.shouldRequestFilesystemCredentials&&!wp.updates.ajaxLocked&&(wp.updates.requestFilesystemCredentials(t),$document.on("credential-modal-cancel",function(){c(".install-now.updating-message").removeClass("updating-message").text(wp.updates.l10n.installNow),wp.a11y.speak(wp.updates.l10n.updateCancel,"polite")})),wp.updates.installPlugin({slug:"woocommerce"})):CartFlowsImport._activateWc()}},c(function(){CartFlowsImport.init()})}(jQuery);
|
cartflows.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: CartFlows
|
4 |
* Plugin URI: https://cartflows.com/
|
5 |
* Description: Create beautiful checkout pages & sales flows for WooCommerce.
|
6 |
-
* Version: 1.1.
|
7 |
* Author: CartFlows Inc
|
8 |
* Author URI: https://cartflows.com/
|
9 |
* Text Domain: cartflows
|
3 |
* Plugin Name: CartFlows
|
4 |
* Plugin URI: https://cartflows.com/
|
5 |
* Description: Create beautiful checkout pages & sales flows for WooCommerce.
|
6 |
+
* Version: 1.1.20
|
7 |
* Author: CartFlows Inc
|
8 |
* Author URI: https://cartflows.com/
|
9 |
* Text Domain: cartflows
|
changelog.txt
CHANGED
@@ -1,3 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Version 1.1.18 - Friday, 10th May 2019
|
2 |
- Fix: Sometimes, Next step link was not working.
|
3 |
|
1 |
+
Version 1.1.20 - Wednesday, 12th June 2019
|
2 |
+
- New: WooCommerce dependency removed. Now, you can use CartFlows without WooCommerce.
|
3 |
+
- Fix: Analytics was not showing.
|
4 |
+
- Fix: Bank account details were not showing on the Thank You page.
|
5 |
+
- Fix: Download details were not showing on the Thank You page for PayPal.
|
6 |
+
- Fix: Variation issue fixed when the WordPress folder path is different.
|
7 |
+
|
8 |
+
Version 1.1.19 - Tuesday, 4th June 2019
|
9 |
+
- Improvement: Extra theme compatibility added.
|
10 |
+
- Improvement: Oxygen builder compatibility added.
|
11 |
+
- Fix: Floating Label issue with account fields. CSS updated.
|
12 |
+
- Fix: Remove product icon not visible in the admin area for entre theme.
|
13 |
+
|
14 |
Version 1.1.18 - Friday, 10th May 2019
|
15 |
- Fix: Sometimes, Next step link was not working.
|
16 |
|
classes/class-cartflows-admin.php
CHANGED
@@ -1,511 +1,521 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* CartFlows Admin.
|
4 |
-
*
|
5 |
-
* @package CartFlows
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class Cartflows_Admin.
|
10 |
-
*/
|
11 |
-
class Cartflows_Admin {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Calls on initialization
|
15 |
-
*
|
16 |
-
* @since 1.0.0
|
17 |
-
*/
|
18 |
-
public static function init() {
|
19 |
-
|
20 |
-
self::initialise_plugin();
|
21 |
-
self::init_hooks();
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Init Hooks.
|
26 |
-
*
|
27 |
-
* @since 1.0.0
|
28 |
-
* @return void
|
29 |
-
*/
|
30 |
-
static public function init_hooks() {
|
31 |
-
|
32 |
-
if ( ! is_admin() ) {
|
33 |
-
return;
|
34 |
-
}
|
35 |
-
|
36 |
-
include_once CARTFLOWS_DIR . 'classes/class-cartflows-admin-fields.php';
|
37 |
-
|
38 |
-
// Add CARTFLOWS menu option to admin.
|
39 |
-
add_action( 'network_admin_menu', __CLASS__ . '::menu' );
|
40 |
-
add_action( 'admin_menu', __CLASS__ . '::menu' );
|
41 |
-
add_action( 'admin_menu', __CLASS__ . '::submenu', 999 );
|
42 |
-
|
43 |
-
add_action( 'cartflows_render_admin_content', __CLASS__ . '::render_content' );
|
44 |
-
|
45 |
-
add_action( 'init', __CLASS__ . '::settings_admin_scripts' );
|
46 |
-
|
47 |
-
/* Global Addmin Script */
|
48 |
-
add_action( 'admin_enqueue_scripts', __CLASS__ . '::global_admin_scripts', 20 );
|
49 |
-
|
50 |
-
add_action( 'admin_footer', __CLASS__ . '::global_admin_data', 9555 );
|
51 |
-
|
52 |
-
/* Add lite version class to body */
|
53 |
-
add_action( 'admin_body_class', __CLASS__ . '::add_admin_body_class' );
|
54 |
-
|
55 |
-
add_filter( 'plugin_action_links_' . CARTFLOWS_BASE, __CLASS__ . '::add_action_links' );
|
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 |
-
if (
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
}
|
89 |
-
|
90 |
-
|
91 |
-
*
|
92 |
-
*
|
93 |
-
* @
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
$
|
99 |
-
|
100 |
-
|
101 |
-
define( '
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
*
|
107 |
-
*
|
108 |
-
* @
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
'CartFlows',
|
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 |
-
|
144 |
-
$
|
145 |
-
$
|
146 |
-
$
|
147 |
-
$
|
148 |
-
$
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
*
|
155 |
-
*
|
156 |
-
* @
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
$action = (
|
161 |
-
$action =
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
*
|
172 |
-
*
|
173 |
-
* @
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
$action = (
|
179 |
-
$action =
|
180 |
-
$action = '
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
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 |
-
*
|
277 |
-
*
|
278 |
-
* @
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
(
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
*
|
299 |
-
*
|
300 |
-
* @
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
(
|
310 |
-
|
311 |
-
(
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
*
|
321 |
-
*
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
$
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
<
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
<?php
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
$
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* CartFlows Admin.
|
4 |
+
*
|
5 |
+
* @package CartFlows
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class Cartflows_Admin.
|
10 |
+
*/
|
11 |
+
class Cartflows_Admin {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Calls on initialization
|
15 |
+
*
|
16 |
+
* @since 1.0.0
|
17 |
+
*/
|
18 |
+
public static function init() {
|
19 |
+
|
20 |
+
self::initialise_plugin();
|
21 |
+
self::init_hooks();
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Init Hooks.
|
26 |
+
*
|
27 |
+
* @since 1.0.0
|
28 |
+
* @return void
|
29 |
+
*/
|
30 |
+
static public function init_hooks() {
|
31 |
+
|
32 |
+
if ( ! is_admin() ) {
|
33 |
+
return;
|
34 |
+
}
|
35 |
+
|
36 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-admin-fields.php';
|
37 |
+
|
38 |
+
// Add CARTFLOWS menu option to admin.
|
39 |
+
add_action( 'network_admin_menu', __CLASS__ . '::menu' );
|
40 |
+
add_action( 'admin_menu', __CLASS__ . '::menu' );
|
41 |
+
add_action( 'admin_menu', __CLASS__ . '::submenu', 999 );
|
42 |
+
|
43 |
+
add_action( 'cartflows_render_admin_content', __CLASS__ . '::render_content' );
|
44 |
+
|
45 |
+
add_action( 'init', __CLASS__ . '::settings_admin_scripts' );
|
46 |
+
|
47 |
+
/* Global Addmin Script */
|
48 |
+
add_action( 'admin_enqueue_scripts', __CLASS__ . '::global_admin_scripts', 20 );
|
49 |
+
|
50 |
+
add_action( 'admin_footer', __CLASS__ . '::global_admin_data', 9555 );
|
51 |
+
|
52 |
+
/* Add lite version class to body */
|
53 |
+
add_action( 'admin_body_class', __CLASS__ . '::add_admin_body_class' );
|
54 |
+
|
55 |
+
add_filter( 'plugin_action_links_' . CARTFLOWS_BASE, __CLASS__ . '::add_action_links' );
|
56 |
+
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Initialize after Cartflows pro get loaded.
|
62 |
+
*/
|
63 |
+
static public function settings_admin_scripts() {
|
64 |
+
// Enqueue admin scripts.
|
65 |
+
if ( isset( $_REQUEST['page'] ) && CARTFLOWS_SETTINGS == $_REQUEST['page'] ) {
|
66 |
+
add_action( 'admin_enqueue_scripts', __CLASS__ . '::styles_scripts' );
|
67 |
+
|
68 |
+
self::save_settings();
|
69 |
+
}
|
70 |
+
}
|
71 |
+
/**
|
72 |
+
* Show action on plugin page.
|
73 |
+
*
|
74 |
+
* @param array $links links.
|
75 |
+
* @return array
|
76 |
+
*/
|
77 |
+
static public function add_action_links( $links ) {
|
78 |
+
$mylinks = array(
|
79 |
+
'<a href="' . admin_url( 'admin.php?page=' . CARTFLOWS_SETTINGS ) . '">Settings</a>',
|
80 |
+
'<a target="_blank" href="' . esc_url( 'https://cartflows.com/docs' ) . '">Docs</a>',
|
81 |
+
);
|
82 |
+
|
83 |
+
if ( ! _is_cartflows_pro() ) {
|
84 |
+
array_push( $mylinks, '<a style="color: #39b54a; font-weight: bold;" target="_blank" href="' . esc_url( 'https://cartflows.com/pricing/' ) . '"> Go Pro </a>' );
|
85 |
+
}
|
86 |
+
|
87 |
+
return array_merge( $links, $mylinks );
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Initialises the Plugin Name.
|
92 |
+
*
|
93 |
+
* @since 1.0.0
|
94 |
+
* @return void
|
95 |
+
*/
|
96 |
+
static public function initialise_plugin() {
|
97 |
+
|
98 |
+
$name = 'Cartflows';
|
99 |
+
$short_name = 'Cflows';
|
100 |
+
|
101 |
+
define( 'CARTFLOWS_PLUGIN_NAME', $name );
|
102 |
+
define( 'CARTFLOWS_PLUGIN_SHORT_NAME', $short_name );
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Renders the admin settings menu.
|
107 |
+
*
|
108 |
+
* @since 1.0.0
|
109 |
+
* @return void
|
110 |
+
*/
|
111 |
+
static public function menu() {
|
112 |
+
|
113 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
114 |
+
return;
|
115 |
+
}
|
116 |
+
|
117 |
+
add_menu_page(
|
118 |
+
'CartFlows',
|
119 |
+
'CartFlows',
|
120 |
+
'manage_options',
|
121 |
+
CARTFLOWS_SLUG,
|
122 |
+
__CLASS__ . '::render',
|
123 |
+
'data:image/svg+xml;base64,' . base64_encode( file_get_contents( CARTFLOWS_DIR . 'assets/images/cartflows-icon.svg' ) ),
|
124 |
+
39.7
|
125 |
+
);
|
126 |
+
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Add submenu to admin menu.
|
131 |
+
*
|
132 |
+
* @since 1.0.0
|
133 |
+
*/
|
134 |
+
static function submenu() {
|
135 |
+
|
136 |
+
$parent_slug = CARTFLOWS_SLUG;
|
137 |
+
$page_title = __( 'Settings', 'cartflows' );
|
138 |
+
$menu_title = __( 'Settings', 'cartflows' );
|
139 |
+
$capability = 'manage_options';
|
140 |
+
$menu_slug = 'cartflows_settings';
|
141 |
+
$callback = __CLASS__ . '::render';
|
142 |
+
|
143 |
+
add_submenu_page(
|
144 |
+
$parent_slug,
|
145 |
+
$page_title,
|
146 |
+
$menu_title,
|
147 |
+
$capability,
|
148 |
+
$menu_slug,
|
149 |
+
$callback
|
150 |
+
);
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Renders the admin settings.
|
155 |
+
*
|
156 |
+
* @since 1.0.0
|
157 |
+
* @return void
|
158 |
+
*/
|
159 |
+
static public function render() {
|
160 |
+
$action = ( isset( $_GET['action'] ) ) ? sanitize_text_field( $_GET['action'] ) : '';
|
161 |
+
$action = ( ! empty( $action ) && '' != $action ) ? $action : 'general';
|
162 |
+
$action = str_replace( '_', '-', $action );
|
163 |
+
|
164 |
+
// Enable header icon filter below.
|
165 |
+
$header_wrapper_class = apply_filters( 'cartflows_header_wrapper_class', array( $action ) );
|
166 |
+
|
167 |
+
include_once CARTFLOWS_DIR . 'includes/admin/cartflows-admin.php';
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Renders the admin settings content.
|
172 |
+
*
|
173 |
+
* @since 1.0.0
|
174 |
+
* @return void
|
175 |
+
*/
|
176 |
+
static public function render_content() {
|
177 |
+
|
178 |
+
$action = ( isset( $_GET['action'] ) ) ? sanitize_text_field( $_GET['action'] ) : '';
|
179 |
+
$action = ( ! empty( $action ) && '' != $action ) ? $action : 'general';
|
180 |
+
$action = str_replace( '_', '-', $action );
|
181 |
+
$action = 'general';
|
182 |
+
|
183 |
+
$header_wrapper_class = apply_filters( 'cartflows_header_wrapper_class', array( $action ) );
|
184 |
+
|
185 |
+
include_once CARTFLOWS_DIR . 'includes/admin/cartflows-general.php';
|
186 |
+
}
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Save Global Setting options.
|
190 |
+
*
|
191 |
+
* @since 1.0.0
|
192 |
+
*/
|
193 |
+
static public function save_common_settings() {
|
194 |
+
|
195 |
+
if ( isset( $_POST['cartflows-common-settings-nonce'] ) && wp_verify_nonce( $_POST['cartflows-common-settings-nonce'], 'cartflows-common-settings' ) ) {
|
196 |
+
|
197 |
+
$url = $_SERVER['REQUEST_URI'];
|
198 |
+
$input_settings = array();
|
199 |
+
$new_settings = array();
|
200 |
+
|
201 |
+
if ( isset( $_POST['_cartflows_common'] ) ) {
|
202 |
+
|
203 |
+
$input_settings = $_POST['_cartflows_common'];
|
204 |
+
|
205 |
+
// Loop through the input and sanitize each of the values.
|
206 |
+
foreach ( $input_settings as $key => $val ) {
|
207 |
+
|
208 |
+
if ( is_array( $val ) ) {
|
209 |
+
foreach ( $val as $k => $v ) {
|
210 |
+
$new_settings[ $key ][ $k ] = ( isset( $val[ $k ] ) ) ? sanitize_text_field( $v ) : '';
|
211 |
+
}
|
212 |
+
} else {
|
213 |
+
$new_settings[ $key ] = ( isset( $input_settings[ $key ] ) ) ? sanitize_text_field( $val ) : '';
|
214 |
+
}
|
215 |
+
}
|
216 |
+
}
|
217 |
+
|
218 |
+
Cartflows_Helper::update_admin_settings_option( '_cartflows_common', $new_settings, true );
|
219 |
+
|
220 |
+
$query = array(
|
221 |
+
'message' => 'saved',
|
222 |
+
);
|
223 |
+
|
224 |
+
$redirect_to = add_query_arg( $query, $url );
|
225 |
+
|
226 |
+
wp_redirect( $redirect_to );
|
227 |
+
exit;
|
228 |
+
} // End if statement.
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Save Debug Setting options.
|
233 |
+
*
|
234 |
+
* @since 1.1.14
|
235 |
+
*/
|
236 |
+
static public function save_debug_settings() {
|
237 |
+
|
238 |
+
if ( isset( $_POST['cartflows-debug-settings-nonce'] ) && wp_verify_nonce( $_POST['cartflows-debug-settings-nonce'], 'cartflows-debug-settings' ) ) {
|
239 |
+
|
240 |
+
$url = $_SERVER['REQUEST_URI'];
|
241 |
+
$input_settings = array();
|
242 |
+
$new_settings = array();
|
243 |
+
|
244 |
+
if ( isset( $_POST['_cartflows_debug_data'] ) ) {
|
245 |
+
|
246 |
+
$input_settings = $_POST['_cartflows_debug_data'];
|
247 |
+
|
248 |
+
// Loop through the input and sanitize each of the values.
|
249 |
+
foreach ( $input_settings as $key => $val ) {
|
250 |
+
|
251 |
+
if ( is_array( $val ) ) {
|
252 |
+
foreach ( $val as $k => $v ) {
|
253 |
+
$new_settings[ $key ][ $k ] = ( isset( $val[ $k ] ) ) ? sanitize_text_field( $v ) : '';
|
254 |
+
}
|
255 |
+
} else {
|
256 |
+
$new_settings[ $key ] = ( isset( $input_settings[ $key ] ) ) ? sanitize_text_field( $val ) : '';
|
257 |
+
}
|
258 |
+
}
|
259 |
+
}
|
260 |
+
|
261 |
+
Cartflows_Helper::update_admin_settings_option( '_cartflows_debug_data', $new_settings, true );
|
262 |
+
|
263 |
+
$query = array(
|
264 |
+
'message' => 'saved',
|
265 |
+
);
|
266 |
+
|
267 |
+
$redirect_to = add_query_arg( $query, $url );
|
268 |
+
|
269 |
+
wp_redirect( $redirect_to );
|
270 |
+
exit;
|
271 |
+
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Check is cartflows admin.
|
277 |
+
*
|
278 |
+
* @since 1.0.0
|
279 |
+
* @return boolean
|
280 |
+
*/
|
281 |
+
static public function is_global_admin() {
|
282 |
+
|
283 |
+
$current_screen = get_current_screen();
|
284 |
+
|
285 |
+
if (
|
286 |
+
is_object( $current_screen ) &&
|
287 |
+
isset( $current_screen->post_type ) &&
|
288 |
+
( CARTFLOWS_FLOW_POST_TYPE === $current_screen->post_type ||
|
289 |
+
CARTFLOWS_STEP_POST_TYPE === $current_screen->post_type
|
290 |
+
)
|
291 |
+
) {
|
292 |
+
return true;
|
293 |
+
}
|
294 |
+
return false;
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
* Check is flow admin.
|
299 |
+
*
|
300 |
+
* @since 1.0.0
|
301 |
+
* @return boolean
|
302 |
+
*/
|
303 |
+
static public function is_flow_edit_admin() {
|
304 |
+
|
305 |
+
$current_screen = get_current_screen();
|
306 |
+
|
307 |
+
if (
|
308 |
+
is_object( $current_screen ) &&
|
309 |
+
isset( $current_screen->post_type ) &&
|
310 |
+
( CARTFLOWS_FLOW_POST_TYPE === $current_screen->post_type ) &&
|
311 |
+
isset( $current_screen->base ) &&
|
312 |
+
( 'post' === $current_screen->base )
|
313 |
+
) {
|
314 |
+
return true;
|
315 |
+
}
|
316 |
+
return false;
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Global Admin Scripts.
|
321 |
+
*
|
322 |
+
* @since 1.0.0
|
323 |
+
*/
|
324 |
+
static public function global_admin_scripts() {
|
325 |
+
|
326 |
+
$installed_plugins = get_plugins();
|
327 |
+
$is_wc_installed = isset( $installed_plugins['woocommerce/woocommerce.php'] ) ? true : false;
|
328 |
+
|
329 |
+
$localize = array(
|
330 |
+
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
331 |
+
'ajax_nonce' => wp_create_nonce( 'cartflows-nonce' ),
|
332 |
+
'wc_status' => array(
|
333 |
+
'installed' => $is_wc_installed,
|
334 |
+
'active' => wcf()->is_woo_active,
|
335 |
+
),
|
336 |
+
'wc_activating_message' => __( 'Installing and activating..', 'cartflows' ),
|
337 |
+
'wc_install_error' => __( 'There was an error with the installation of plugin.', 'cartflows' ),
|
338 |
+
);
|
339 |
+
|
340 |
+
wp_localize_script( 'jquery', 'cartflows_admin', apply_filters( 'cartflows_admin_js_localize', $localize ) );
|
341 |
+
|
342 |
+
if ( self::is_global_admin() ) {
|
343 |
+
|
344 |
+
// Styles.
|
345 |
+
wp_enqueue_style( 'cartflows-global-admin', CARTFLOWS_URL . 'admin/assets/css/global-admin.css', array(), CARTFLOWS_VER );
|
346 |
+
wp_style_add_data( 'cartflows-global-admin', 'rtl', 'replace' );
|
347 |
+
|
348 |
+
wp_enqueue_script(
|
349 |
+
'wcf-global-admin',
|
350 |
+
CARTFLOWS_URL . 'admin/assets/js/global-admin.js',
|
351 |
+
array( 'jquery' ),
|
352 |
+
CARTFLOWS_VER,
|
353 |
+
true
|
354 |
+
);
|
355 |
+
|
356 |
+
do_action( 'cartflows_global_admin_scripts' );
|
357 |
+
}
|
358 |
+
}
|
359 |
+
|
360 |
+
/**
|
361 |
+
* Global Admin Data.
|
362 |
+
*
|
363 |
+
* @since 1.0.0
|
364 |
+
*/
|
365 |
+
static public function global_admin_data() {
|
366 |
+
|
367 |
+
$current_screen = get_current_screen();
|
368 |
+
|
369 |
+
if ( ! $current_screen ) {
|
370 |
+
return;
|
371 |
+
}
|
372 |
+
|
373 |
+
if ( 'edit-' . CARTFLOWS_FLOW_POST_TYPE != $current_screen->id ) {
|
374 |
+
return;
|
375 |
+
}
|
376 |
+
|
377 |
+
$default_page_builder = Cartflows_Helper::get_common_setting( 'default_page_builder' );
|
378 |
+
?>
|
379 |
+
|
380 |
+
<div id="wcf-remote-flow-importer" class="wcf-templates-popup-overlay">
|
381 |
+
<div class="wcf-templates-popup-content">
|
382 |
+
<div class="spinner"></div>
|
383 |
+
<div class="wcf-templates-wrap wcf-templates-wrap-flows">
|
384 |
+
|
385 |
+
<div id="wcf-remote-flow-actions" class="wcf-template-header">
|
386 |
+
<div class="wcf-template-logo-wrap">
|
387 |
+
<span class="wcf-cartflows-logo-img">
|
388 |
+
<span class="cartflows-logo-icon"></span>
|
389 |
+
</span>
|
390 |
+
<span class="wcf-cartflows-title"><?php _e( 'Flows Library', 'cartflows' ); ?></span>
|
391 |
+
</div>
|
392 |
+
<div class="wcf-tab-wrapper">
|
393 |
+
<?php if ( 'other' !== $default_page_builder ) { ?>
|
394 |
+
<div id="wcf-get-started-steps">
|
395 |
+
<ul class="filter-links ">
|
396 |
+
<li>
|
397 |
+
<a href="#" class="current" data-slug="ready-templates" data-title="<?php _e( 'Ready Templates', 'cartflows' ); ?>"><?php _e( 'Ready Templates', 'cartflows' ); ?></a>
|
398 |
+
</li>
|
399 |
+
<li>
|
400 |
+
<a href="#" data-slug="canvas" data-title="<?php _e( 'Create Your Own', 'cartflows' ); ?>"><?php _e( 'Create Your Own', 'cartflows' ); ?></a>
|
401 |
+
</li>
|
402 |
+
</ul>
|
403 |
+
</div>
|
404 |
+
<?php } ?>
|
405 |
+
</div>
|
406 |
+
<div class="wcf-popup-close-wrap">
|
407 |
+
<span class="close-icon"><span class="wcf-cartflow-icons dashicons dashicons-no"></span></span>
|
408 |
+
</div>
|
409 |
+
</div>
|
410 |
+
<!-- <div class="wcf-search-form">
|
411 |
+
<label class="screen-reader-text" for="wp-filter-search-input"><?php _e( 'Search Sites', 'cartflows' ); ?> </label>
|
412 |
+
<input placeholder="<?php _e( 'Search Flow...', 'cartflows' ); ?>" type="text" aria-describedby="live-search-desc" class="wcf-flow-search-input">
|
413 |
+
</div> -->
|
414 |
+
|
415 |
+
<div id="wcf-remote-content">
|
416 |
+
<?php if ( 'other' !== $default_page_builder ) { ?>
|
417 |
+
<div id="wcf-ready-templates">
|
418 |
+
<div id="wcf-remote-filters">
|
419 |
+
<div id="wcf-page-builders"></div>
|
420 |
+
<div id="wcf-categories"></div>
|
421 |
+
</div>
|
422 |
+
<div class="wcf-page-builder-notice"></div>
|
423 |
+
<div id="wcf-remote-flow-list" class="wcf-remote-list wcf-template-list-wrap"><span class="spinner is-active"></span></div>
|
424 |
+
<div id="wcf-upcoming-page-builders" style="display: none;" class="wcf-remote-list wcf-template-list-wrap"></div>
|
425 |
+
</div>
|
426 |
+
<?php } ?>
|
427 |
+
<div id="wcf-start-from-scratch" style="<?php echo ( 'other' !== $default_page_builder ) ? 'display: none;' : ''; ?>">
|
428 |
+
<div class="inner">
|
429 |
+
<a href="#" class="button button-hero button-primary cartflows-flow-import-blank"><?php _e( 'Design Your Flow', 'cartflows' ); ?></a>
|
430 |
+
<p class="wcf-learn-how"><a href="https://cartflows.com/docs/cartflows-step-types/" target="_blank"><?php _e( 'Learn How', 'cartflows' ); ?> <i class="dashicons dashicons-external"></i></a></p>
|
431 |
+
</div>
|
432 |
+
</div>
|
433 |
+
</div>
|
434 |
+
</div>
|
435 |
+
</div>
|
436 |
+
</div>
|
437 |
+
|
438 |
+
<?php
|
439 |
+
}
|
440 |
+
|
441 |
+
/**
|
442 |
+
* Enqueues the needed CSS/JS for the builder's admin settings page.
|
443 |
+
*
|
444 |
+
* @since 1.0.0
|
445 |
+
*/
|
446 |
+
static public function styles_scripts() {
|
447 |
+
|
448 |
+
// Styles.
|
449 |
+
wp_enqueue_style( 'cartflows-admin-settings', CARTFLOWS_URL . 'admin/assets/css/admin-menu-settings.css', array(), CARTFLOWS_VER );
|
450 |
+
wp_style_add_data( 'cartflows-admin-settings', 'rtl', 'replace' );
|
451 |
+
|
452 |
+
// Script.
|
453 |
+
wp_enqueue_script( 'cartflows-admin-settings', CARTFLOWS_URL . 'admin/assets/js/admin-menu-settings.js', array( 'jquery', 'wp-util', 'updates' ), CARTFLOWS_VER );
|
454 |
+
|
455 |
+
$localize = array(
|
456 |
+
'ajax_nonce' => wp_create_nonce( 'cartflows-widget-nonce' ),
|
457 |
+
);
|
458 |
+
|
459 |
+
wp_localize_script( 'cartflows-admin-settings', 'cartflows', apply_filters( 'cartflows_js_localize', $localize ) );
|
460 |
+
|
461 |
+
do_action( 'cartflows_admin_settings_after_enqueue_scripts' );
|
462 |
+
}
|
463 |
+
|
464 |
+
/**
|
465 |
+
* Save All admin settings here
|
466 |
+
*/
|
467 |
+
static public function save_settings() {
|
468 |
+
|
469 |
+
// Only admins can save settings.
|
470 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
471 |
+
return;
|
472 |
+
}
|
473 |
+
|
474 |
+
self::save_common_settings();
|
475 |
+
self::save_debug_settings();
|
476 |
+
|
477 |
+
// Let extensions hook into saving.
|
478 |
+
do_action( 'cartflows_admin_settings_save' );
|
479 |
+
}
|
480 |
+
|
481 |
+
/**
|
482 |
+
* Get and return page URL
|
483 |
+
*
|
484 |
+
* @param string $menu_slug Menu name.
|
485 |
+
* @since 1.0.0
|
486 |
+
* @return string page url
|
487 |
+
*/
|
488 |
+
static public function get_page_url( $menu_slug ) {
|
489 |
+
|
490 |
+
$parent_page = self::$default_menu_position;
|
491 |
+
|
492 |
+
if ( strpos( $parent_page, '?' ) !== false ) {
|
493 |
+
$query_var = '&page=' . self::$plugin_slug;
|
494 |
+
} else {
|
495 |
+
$query_var = '?page=' . self::$plugin_slug;
|
496 |
+
}
|
497 |
+
|
498 |
+
$parent_page_url = admin_url( $parent_page . $query_var );
|
499 |
+
|
500 |
+
$url = $parent_page_url . '&action=' . $menu_slug;
|
501 |
+
|
502 |
+
return esc_url( $url );
|
503 |
+
}
|
504 |
+
|
505 |
+
/**
|
506 |
+
* Admin body classes.
|
507 |
+
*
|
508 |
+
* Body classes to be added to <body> tag in admin page
|
509 |
+
*
|
510 |
+
* @param String $classes body classes returned from the filter.
|
511 |
+
* @return String body classes to be added to <body> tag in admin page
|
512 |
+
*/
|
513 |
+
static public function add_admin_body_class( $classes ) {
|
514 |
+
|
515 |
+
$classes .= ' cartflows-' . CARTFLOWS_VER;
|
516 |
+
|
517 |
+
return $classes;
|
518 |
+
}
|
519 |
+
}
|
520 |
+
|
521 |
+
Cartflows_Admin::init();
|
classes/class-cartflows-compatibility.php
CHANGED
@@ -192,7 +192,7 @@ if ( ! class_exists( 'Cartflows_Compatibility' ) ) {
|
|
192 |
$theme = wp_get_theme();
|
193 |
}
|
194 |
|
195 |
-
if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme ) {
|
196 |
return true;
|
197 |
}
|
198 |
|
@@ -206,7 +206,7 @@ if ( ! class_exists( 'Cartflows_Compatibility' ) ) {
|
|
206 |
*/
|
207 |
function is_divi_theme_installed() {
|
208 |
foreach ( (array) wp_get_themes() as $theme_dir => $theme ) {
|
209 |
-
if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme ) {
|
210 |
return true;
|
211 |
}
|
212 |
}
|
192 |
$theme = wp_get_theme();
|
193 |
}
|
194 |
|
195 |
+
if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme || 'Extra' == $theme->name || 'Extra' == $theme->parent_theme ) {
|
196 |
return true;
|
197 |
}
|
198 |
|
206 |
*/
|
207 |
function is_divi_theme_installed() {
|
208 |
foreach ( (array) wp_get_themes() as $theme_dir => $theme ) {
|
209 |
+
if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme || 'Extra' == $theme->name || 'Extra' == $theme->parent_theme ) {
|
210 |
return true;
|
211 |
}
|
212 |
}
|
classes/class-cartflows-flow-frontend.php
CHANGED
@@ -67,6 +67,7 @@ class Cartflows_Flow_Frontend {
|
|
67 |
*/
|
68 |
function is_flow_testmode( $flow_id = '' ) {
|
69 |
|
|
|
70 |
if ( ! $flow_id ) {
|
71 |
$flow_id = wcf()->utils->get_flow_id();
|
72 |
}
|
67 |
*/
|
68 |
function is_flow_testmode( $flow_id = '' ) {
|
69 |
|
70 |
+
return false;
|
71 |
if ( ! $flow_id ) {
|
72 |
$flow_id = wcf()->utils->get_flow_id();
|
73 |
}
|
classes/class-cartflows-frontend.php
CHANGED
@@ -279,6 +279,10 @@ class Cartflows_Frontend {
|
|
279 |
|
280 |
if ( wcf()->utils->is_step_post_type() ) {
|
281 |
|
|
|
|
|
|
|
|
|
282 |
/* CSS Compatibility for All theme */
|
283 |
add_filter( 'woocommerce_enqueue_styles', array( $this, 'woo_default_css' ), 9999 );
|
284 |
|
@@ -349,7 +353,7 @@ class Cartflows_Frontend {
|
|
349 |
}
|
350 |
|
351 |
$localize = array(
|
352 |
-
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
353 |
'is_pb_preview' => $compatibility->is_page_builder_preview(),
|
354 |
'current_theme' => $compatibility->get_current_theme(),
|
355 |
'current_flow' => $flow,
|
279 |
|
280 |
if ( wcf()->utils->is_step_post_type() ) {
|
281 |
|
282 |
+
if ( ! wcf()->is_woo_active && wcf()->utils->check_is_woo_required_page() ) {
|
283 |
+
wp_die( ' This page requires WooCommerce plugin installed and activated!', 'WooCommerce Required' );
|
284 |
+
}
|
285 |
+
|
286 |
/* CSS Compatibility for All theme */
|
287 |
add_filter( 'woocommerce_enqueue_styles', array( $this, 'woo_default_css' ), 9999 );
|
288 |
|
353 |
}
|
354 |
|
355 |
$localize = array(
|
356 |
+
'ajax_url' => admin_url( 'admin-ajax.php', 'relative' ),
|
357 |
'is_pb_preview' => $compatibility->is_page_builder_preview(),
|
358 |
'current_theme' => $compatibility->get_current_theme(),
|
359 |
'current_flow' => $flow,
|
classes/class-cartflows-functions.php
CHANGED
@@ -386,3 +386,16 @@ function _get_wcf_base_offer_id() {
|
|
386 |
return false;
|
387 |
}
|
388 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
return false;
|
387 |
}
|
388 |
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Define a constant if it is not already defined.
|
392 |
+
*
|
393 |
+
* @since 3.0.0
|
394 |
+
* @param string $name Constant name.
|
395 |
+
* @param mixed $value Value.
|
396 |
+
*/
|
397 |
+
function wcf_maybe_define_constant( $name, $value ) {
|
398 |
+
if ( ! defined( $name ) ) {
|
399 |
+
define( $name, $value );
|
400 |
+
}
|
401 |
+
}
|
classes/class-cartflows-importer.php
CHANGED
@@ -586,10 +586,23 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
586 |
<img src="<?php echo esc_attr( CARTFLOWS_URL ); ?>assets/images/400x400.jpg" />
|
587 |
<# } #>
|
588 |
</div>
|
589 |
-
<a href="<?php echo CARTFLOWS_TEMPLATES_URL . 'preview/?'; ?>flow={{ data.items[ key ].id }}&title={{{ data.items[ key ].title.rendered }}}" class="preview" target="_blank">Preview <i class="dashicons dashicons-external"></i></a>
|
590 |
<# if( data.items[ key ].flow_type && 'pro' === data.items[ key ].flow_type.slug ) { #>
|
591 |
<span class="wcf-flow-type pro"><?php _e( 'Pro', 'cartflows' ); ?></span>
|
592 |
<# } #>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
</span>
|
594 |
<div class="template-id-container">
|
595 |
<h3 class="template-name"> {{{ data.items[ key ].title.rendered }}} </h3>
|
@@ -609,7 +622,11 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
609 |
} #>
|
610 |
|
611 |
<# if( data.items[ key ].licence_status && 'valid' === data.items[ key ].licence_status ) { #>
|
|
|
612 |
<a data-flow-steps="{{ flow_steps }}" data-required-plugin-group="{{required_plugin_group}}" href="#" class="button button-primary cartflows-step-import" data-template-id="{{ data.items[ key ].id }}">{{ import_btn_title }}</a>
|
|
|
|
|
|
|
613 |
<# } else if( CartFlowsImportVars._is_pro_active ) { #>
|
614 |
<a target="_blank" href="<?php echo esc_url( admin_url( 'plugins.php?cartflows-license-popup' ) ); ?>" class="button button-primary"><?php _e( 'Activate License', 'cartflows' ); ?></a>
|
615 |
<# } else { #>
|
@@ -670,7 +687,21 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
670 |
<# } #>
|
671 |
</div>
|
672 |
<div id="wcf_create_notice" class=""><a href="https://cartflows.com/" target="_blank"></a></div>
|
673 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
674 |
<# if( data.items[ key ].flow_type && 'pro' === data.items[ key ].flow_type.slug ) { #>
|
675 |
<span class="wcf-flow-type pro"><?php _e( 'Pro', 'cartflows' ); ?></span>
|
676 |
<# } #>
|
@@ -696,7 +727,13 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
696 |
#>
|
697 |
|
698 |
<# if( data.items[ key ].licence_status && 'valid' === data.items[ key ].licence_status ) { #>
|
|
|
|
|
699 |
<a data-slug="{{step_slug}}" data-title="{{step_title}}" data-flow-steps="{{ flow_steps }}" data-required-plugin-group="{{required_plugin_group}}" href="#" class="button button-primary cartflows-step-import" data-template-id="{{ data.items[ key ].id }}">{{ import_btn_title }}</a>
|
|
|
|
|
|
|
|
|
700 |
<# } else if( CartFlowsImportVars._is_pro_active ) { #>
|
701 |
<a target="_blank" href="<?php echo esc_url( admin_url( 'plugins.php?cartflows-license-popup' ) ); ?>" class="button button-primary"><?php _e( 'Activate License', 'cartflows' ); ?></a>
|
702 |
<# } else { #>
|
@@ -868,8 +905,14 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
868 |
wp_style_add_data( 'cartflows-import', 'rtl', 'replace' );
|
869 |
wp_enqueue_script( 'cartflows-import', CARTFLOWS_URL . 'assets/js/import.js', array( 'jquery', 'wp-util', 'cartflows-rest-api', 'updates' ), CARTFLOWS_VER, true );
|
870 |
|
|
|
|
|
|
|
|
|
871 |
$localize_vars = array(
|
872 |
'_is_pro_active' => _is_cartflows_pro(),
|
|
|
|
|
873 |
|
874 |
// Flow and its rest fields.
|
875 |
'flow' => CARTFLOWS_FLOW_POST_TYPE,
|
@@ -1044,25 +1087,27 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
1044 |
/**
|
1045 |
* Import & Set type.
|
1046 |
*/
|
1047 |
-
$term
|
|
|
1048 |
$term_slug = '';
|
1049 |
if ( $term ) {
|
1050 |
|
1051 |
$taxonomy = CARTFLOWS_TAXONOMY_STEP_TYPE;
|
1052 |
-
$term_exist = term_exists( $term->
|
1053 |
|
1054 |
if ( empty( $term_exist ) ) {
|
1055 |
$terms = array(
|
1056 |
array(
|
1057 |
'name' => $term->name,
|
|
|
1058 |
),
|
1059 |
);
|
1060 |
|
1061 |
Cartflows_Step_Post_Type::get_instance()->add_terms( $taxonomy, $terms );
|
1062 |
-
wcf()->logger->import_log( '(✓) Created new term ' . $term->name );
|
1063 |
}
|
1064 |
|
1065 |
-
$current_term = term_exists( $term->
|
1066 |
|
1067 |
// Set type object.
|
1068 |
$data = get_term( $current_term['term_id'], $taxonomy );
|
@@ -1145,32 +1190,44 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
1145 |
|
1146 |
$flow_steps = array();
|
1147 |
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1153 |
|
1154 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1155 |
|
1156 |
-
|
1157 |
|
1158 |
-
|
1159 |
-
|
1160 |
-
$post_content = '';
|
1161 |
-
break;
|
1162 |
-
case 'thankyou':
|
1163 |
-
$post_content = '';
|
1164 |
-
break;
|
1165 |
-
default:
|
1166 |
-
$post_content = '';
|
1167 |
-
break;
|
1168 |
-
}
|
1169 |
|
1170 |
$step_id = wp_insert_post(
|
1171 |
array(
|
1172 |
'post_type' => CARTFLOWS_STEP_POST_TYPE,
|
1173 |
-
'post_title' => $title,
|
1174 |
'post_content' => $post_content,
|
1175 |
'post_status' => 'publish',
|
1176 |
)
|
@@ -1184,16 +1241,17 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
1184 |
|
1185 |
$flow_steps[] = array(
|
1186 |
'id' => $step_id,
|
1187 |
-
'title' => $title,
|
1188 |
-
'type' => $
|
1189 |
);
|
1190 |
|
1191 |
// insert post meta.
|
1192 |
update_post_meta( $step_id, 'wcf-flow-id', $flow_id );
|
1193 |
-
update_post_meta( $step_id, 'wcf-step-type', $
|
1194 |
|
1195 |
-
wp_set_object_terms( $step_id, $
|
1196 |
wp_set_object_terms( $step_id, 'flow-' . $flow_id, CARTFLOWS_TAXONOMY_STEP_FLOW );
|
|
|
1197 |
}
|
1198 |
}
|
1199 |
|
@@ -1338,20 +1396,21 @@ if ( ! class_exists( 'CartFlows_Importer' ) ) :
|
|
1338 |
update_post_meta( $new_step_id, 'wcf-flow-id', $flow_id );
|
1339 |
|
1340 |
$taxonomy = CARTFLOWS_TAXONOMY_STEP_TYPE;
|
1341 |
-
$term_exist = term_exists( $
|
1342 |
|
1343 |
if ( empty( $term_exist ) ) {
|
1344 |
$terms = array(
|
1345 |
array(
|
1346 |
'name' => $step_type_title,
|
|
|
1347 |
),
|
1348 |
);
|
1349 |
|
1350 |
Cartflows_Step_Post_Type::get_instance()->add_terms( $taxonomy, $terms );
|
1351 |
-
wcf()->logger->import_log( '(✓) Created new term ' . $step_type_title );
|
1352 |
}
|
1353 |
|
1354 |
-
$current_term = term_exists( $
|
1355 |
|
1356 |
// Set type object.
|
1357 |
$data = get_term( $current_term['term_id'], $taxonomy );
|
586 |
<img src="<?php echo esc_attr( CARTFLOWS_URL ); ?>assets/images/400x400.jpg" />
|
587 |
<# } #>
|
588 |
</div>
|
|
|
589 |
<# if( data.items[ key ].flow_type && 'pro' === data.items[ key ].flow_type.slug ) { #>
|
590 |
<span class="wcf-flow-type pro"><?php _e( 'Pro', 'cartflows' ); ?></span>
|
591 |
<# } #>
|
592 |
+
<# if( data.items[ key ].woo_required ) { #>
|
593 |
+
<div class="notice notice-info" style="width: auto;">
|
594 |
+
<p class="wcf-learn-how">
|
595 |
+
Install/Activate WooCommerce to use this template.
|
596 |
+
<a href="https://cartflows.com/docs/cartflows-step-types/" target="_blank">
|
597 |
+
<strong><?php _e( 'Learn How', 'cartflows' ); ?></strong>
|
598 |
+
<i class="dashicons dashicons-external"></i>
|
599 |
+
</a>
|
600 |
+
</p>
|
601 |
+
</div>
|
602 |
+
<# } else { #>
|
603 |
+
<a href="<?php echo CARTFLOWS_TEMPLATES_URL . 'preview/?'; ?>flow={{ data.items[ key ].id }}&title={{{ data.items[ key ].title.rendered }}}" class="preview" target="_blank">Preview <i class="dashicons dashicons-external"></i></a>
|
604 |
+
<# } #>
|
605 |
+
|
606 |
</span>
|
607 |
<div class="template-id-container">
|
608 |
<h3 class="template-name"> {{{ data.items[ key ].title.rendered }}} </h3>
|
622 |
} #>
|
623 |
|
624 |
<# if( data.items[ key ].licence_status && 'valid' === data.items[ key ].licence_status ) { #>
|
625 |
+
<# if( ! data.items[ key ].woo_required ) { #>
|
626 |
<a data-flow-steps="{{ flow_steps }}" data-required-plugin-group="{{required_plugin_group}}" href="#" class="button button-primary cartflows-step-import" data-template-id="{{ data.items[ key ].id }}">{{ import_btn_title }}</a>
|
627 |
+
<# } else { #>
|
628 |
+
<a href='#' class='wcf-activate-wc button-primary'>Install & activate Woo</a>
|
629 |
+
<# } #>
|
630 |
<# } else if( CartFlowsImportVars._is_pro_active ) { #>
|
631 |
<a target="_blank" href="<?php echo esc_url( admin_url( 'plugins.php?cartflows-license-popup' ) ); ?>" class="button button-primary"><?php _e( 'Activate License', 'cartflows' ); ?></a>
|
632 |
<# } else { #>
|
687 |
<# } #>
|
688 |
</div>
|
689 |
<div id="wcf_create_notice" class=""><a href="https://cartflows.com/" target="_blank"></a></div>
|
690 |
+
|
691 |
+
<# if( data.items[ key ].woo_required ) { #>
|
692 |
+
<div class="notice notice-info" style="width: auto;">
|
693 |
+
<p class="wcf-learn-how">
|
694 |
+
Install/Activate WooCommerce to use this template.
|
695 |
+
<a href="https://cartflows.com/docs/cartflows-step-types/" target="_blank">
|
696 |
+
<strong><?php _e( 'Learn How', 'cartflows' ); ?></strong>
|
697 |
+
<i class="dashicons dashicons-external"></i>
|
698 |
+
</a>
|
699 |
+
</p>
|
700 |
+
</div>
|
701 |
+
<# } else { #>
|
702 |
+
<a href="<?php echo CARTFLOWS_TEMPLATES_URL . 'preview/?'; ?>step={{ data.items[ key ].id }}&title={{{ data.items[ key ].title.rendered }}}" class="preview" target="_blank">Preview <i class="dashicons dashicons-external"></i></a>
|
703 |
+
<# } #>
|
704 |
+
|
705 |
<# if( data.items[ key ].flow_type && 'pro' === data.items[ key ].flow_type.slug ) { #>
|
706 |
<span class="wcf-flow-type pro"><?php _e( 'Pro', 'cartflows' ); ?></span>
|
707 |
<# } #>
|
727 |
#>
|
728 |
|
729 |
<# if( data.items[ key ].licence_status && 'valid' === data.items[ key ].licence_status ) { #>
|
730 |
+
|
731 |
+
<# if( ! data.items[ key ].woo_required ) { #>
|
732 |
<a data-slug="{{step_slug}}" data-title="{{step_title}}" data-flow-steps="{{ flow_steps }}" data-required-plugin-group="{{required_plugin_group}}" href="#" class="button button-primary cartflows-step-import" data-template-id="{{ data.items[ key ].id }}">{{ import_btn_title }}</a>
|
733 |
+
<# } else { #>
|
734 |
+
<a href='#' class='wcf-activate-wc button-primary'>Install & activate Woo</a>
|
735 |
+
<# } #>
|
736 |
+
|
737 |
<# } else if( CartFlowsImportVars._is_pro_active ) { #>
|
738 |
<a target="_blank" href="<?php echo esc_url( admin_url( 'plugins.php?cartflows-license-popup' ) ); ?>" class="button button-primary"><?php _e( 'Activate License', 'cartflows' ); ?></a>
|
739 |
<# } else { #>
|
905 |
wp_style_add_data( 'cartflows-import', 'rtl', 'replace' );
|
906 |
wp_enqueue_script( 'cartflows-import', CARTFLOWS_URL . 'assets/js/import.js', array( 'jquery', 'wp-util', 'cartflows-rest-api', 'updates' ), CARTFLOWS_VER, true );
|
907 |
|
908 |
+
$installed_plugins = get_plugins();
|
909 |
+
$is_wc_installed = isset( $installed_plugins['woocommerce/woocommerce.php'] ) ? 'yes' : 'no';
|
910 |
+
$is_wc_activated = wcf()->is_woo_active ? 'yes' : 'no';
|
911 |
+
|
912 |
$localize_vars = array(
|
913 |
'_is_pro_active' => _is_cartflows_pro(),
|
914 |
+
'is_wc_installed' => $is_wc_installed,
|
915 |
+
'is_wc_activated' => $is_wc_activated,
|
916 |
|
917 |
// Flow and its rest fields.
|
918 |
'flow' => CARTFLOWS_FLOW_POST_TYPE,
|
1087 |
/**
|
1088 |
* Import & Set type.
|
1089 |
*/
|
1090 |
+
$term = isset( $response['data']['step_type'] ) ? $response['data']['step_type'] : '';
|
1091 |
+
|
1092 |
$term_slug = '';
|
1093 |
if ( $term ) {
|
1094 |
|
1095 |
$taxonomy = CARTFLOWS_TAXONOMY_STEP_TYPE;
|
1096 |
+
$term_exist = term_exists( $term->slug, $taxonomy );
|
1097 |
|
1098 |
if ( empty( $term_exist ) ) {
|
1099 |
$terms = array(
|
1100 |
array(
|
1101 |
'name' => $term->name,
|
1102 |
+
'slug' => $term->slug,
|
1103 |
),
|
1104 |
);
|
1105 |
|
1106 |
Cartflows_Step_Post_Type::get_instance()->add_terms( $taxonomy, $terms );
|
1107 |
+
wcf()->logger->import_log( '(✓) Created new term name ' . $term->name . ' | term slug ' . $term->slug );
|
1108 |
}
|
1109 |
|
1110 |
+
$current_term = term_exists( $term->slug, $taxonomy );
|
1111 |
|
1112 |
// Set type object.
|
1113 |
$data = get_term( $current_term['term_id'], $taxonomy );
|
1190 |
|
1191 |
$flow_steps = array();
|
1192 |
|
1193 |
+
if ( wcf()->is_woo_active ) {
|
1194 |
+
$steps_data = array(
|
1195 |
+
'sales' => array(
|
1196 |
+
'title' => __( 'Sales Landing', 'cartflows' ),
|
1197 |
+
'type' => 'landing',
|
1198 |
+
),
|
1199 |
+
'order-form' => array(
|
1200 |
+
'title' => __( 'Checkout (Woo)', 'cartflows' ),
|
1201 |
+
'type' => 'checkout',
|
1202 |
+
),
|
1203 |
+
'order-confirmation' => array(
|
1204 |
+
'title' => __( 'Thank You (Woo)', 'cartflows' ),
|
1205 |
+
'type' => 'thankyou',
|
1206 |
+
),
|
1207 |
+
);
|
1208 |
|
1209 |
+
} else {
|
1210 |
+
$steps_data = array(
|
1211 |
+
'landing' => array(
|
1212 |
+
'title' => __( 'Landing', 'cartflows' ),
|
1213 |
+
'type' => 'landing',
|
1214 |
+
),
|
1215 |
+
'thankyou' => array(
|
1216 |
+
'title' => __( 'Thank You', 'cartflows' ),
|
1217 |
+
'type' => 'landing',
|
1218 |
+
),
|
1219 |
+
);
|
1220 |
+
}
|
1221 |
|
1222 |
+
foreach ( $steps_data as $slug => $data ) {
|
1223 |
|
1224 |
+
$post_content = '';
|
1225 |
+
$step_type = trim( $data['type'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1226 |
|
1227 |
$step_id = wp_insert_post(
|
1228 |
array(
|
1229 |
'post_type' => CARTFLOWS_STEP_POST_TYPE,
|
1230 |
+
'post_title' => $data['title'],
|
1231 |
'post_content' => $post_content,
|
1232 |
'post_status' => 'publish',
|
1233 |
)
|
1241 |
|
1242 |
$flow_steps[] = array(
|
1243 |
'id' => $step_id,
|
1244 |
+
'title' => $data['title'],
|
1245 |
+
'type' => $step_type,
|
1246 |
);
|
1247 |
|
1248 |
// insert post meta.
|
1249 |
update_post_meta( $step_id, 'wcf-flow-id', $flow_id );
|
1250 |
+
update_post_meta( $step_id, 'wcf-step-type', $step_type );
|
1251 |
|
1252 |
+
wp_set_object_terms( $step_id, $step_type, CARTFLOWS_TAXONOMY_STEP_TYPE );
|
1253 |
wp_set_object_terms( $step_id, 'flow-' . $flow_id, CARTFLOWS_TAXONOMY_STEP_FLOW );
|
1254 |
+
|
1255 |
}
|
1256 |
}
|
1257 |
|
1396 |
update_post_meta( $new_step_id, 'wcf-flow-id', $flow_id );
|
1397 |
|
1398 |
$taxonomy = CARTFLOWS_TAXONOMY_STEP_TYPE;
|
1399 |
+
$term_exist = term_exists( $step_type_slug, $taxonomy );
|
1400 |
|
1401 |
if ( empty( $term_exist ) ) {
|
1402 |
$terms = array(
|
1403 |
array(
|
1404 |
'name' => $step_type_title,
|
1405 |
+
'slug' => $step_type_slug,
|
1406 |
),
|
1407 |
);
|
1408 |
|
1409 |
Cartflows_Step_Post_Type::get_instance()->add_terms( $taxonomy, $terms );
|
1410 |
+
wcf()->logger->import_log( '(✓) Created new term name ' . $step_type_title . ' | term slug ' . $step_type_slug );
|
1411 |
}
|
1412 |
|
1413 |
+
$current_term = term_exists( $step_type_slug, $taxonomy );
|
1414 |
|
1415 |
// Set type object.
|
1416 |
$data = get_term( $current_term['term_id'], $taxonomy );
|
classes/class-cartflows-loader.php
CHANGED
@@ -1,455 +1,575 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* CartFlows Loader.
|
4 |
-
*
|
5 |
-
* @package CartFlows
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! class_exists( 'Cartflows_Loader' ) ) {
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Class Cartflows_Loader.
|
12 |
-
*/
|
13 |
-
final class Cartflows_Loader {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Member Variable
|
17 |
-
*
|
18 |
-
* @var instance
|
19 |
-
*/
|
20 |
-
private static $instance = null;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Member Variable
|
24 |
-
*
|
25 |
-
* @var utils
|
26 |
-
*/
|
27 |
-
public $utils = null;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Member Variable
|
31 |
-
*
|
32 |
-
* @var logger
|
33 |
-
*/
|
34 |
-
public $logger = null;
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Member Variable
|
38 |
-
*
|
39 |
-
* @var session
|
40 |
-
*/
|
41 |
-
public $session = null;
|
42 |
-
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Member Variable
|
46 |
-
*
|
47 |
-
* @var options
|
48 |
-
*/
|
49 |
-
public $options = null;
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Member Variable
|
53 |
-
*
|
54 |
-
* @var meta
|
55 |
-
*/
|
56 |
-
public $meta = null;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Member Variable
|
60 |
-
*
|
61 |
-
* @var flow
|
62 |
-
*/
|
63 |
-
public $flow = null;
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Member Variable
|
67 |
-
*
|
68 |
-
* @var assets_vars
|
69 |
-
*/
|
70 |
-
public $assets_vars = null;
|
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 |
-
define( '
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
define( '
|
132 |
-
|
133 |
-
define( '
|
134 |
-
define( '
|
135 |
-
|
136 |
-
if ( ! defined( '
|
137 |
-
define( '
|
138 |
-
}
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
}
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
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 |
-
include_once CARTFLOWS_DIR . '
|
270 |
-
|
271 |
-
|
272 |
-
include_once CARTFLOWS_DIR . '
|
273 |
-
|
274 |
-
|
275 |
-
include_once CARTFLOWS_DIR . 'classes/class-cartflows-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
*
|
284 |
-
*
|
285 |
-
*
|
286 |
-
*
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
$this->
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
*
|
297 |
-
*
|
298 |
-
*
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
*
|
355 |
-
*
|
356 |
-
* @
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* CartFlows Loader.
|
4 |
+
*
|
5 |
+
* @package CartFlows
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'Cartflows_Loader' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Class Cartflows_Loader.
|
12 |
+
*/
|
13 |
+
final class Cartflows_Loader {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Member Variable
|
17 |
+
*
|
18 |
+
* @var instance
|
19 |
+
*/
|
20 |
+
private static $instance = null;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Member Variable
|
24 |
+
*
|
25 |
+
* @var utils
|
26 |
+
*/
|
27 |
+
public $utils = null;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Member Variable
|
31 |
+
*
|
32 |
+
* @var logger
|
33 |
+
*/
|
34 |
+
public $logger = null;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Member Variable
|
38 |
+
*
|
39 |
+
* @var session
|
40 |
+
*/
|
41 |
+
public $session = null;
|
42 |
+
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Member Variable
|
46 |
+
*
|
47 |
+
* @var options
|
48 |
+
*/
|
49 |
+
public $options = null;
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Member Variable
|
53 |
+
*
|
54 |
+
* @var meta
|
55 |
+
*/
|
56 |
+
public $meta = null;
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Member Variable
|
60 |
+
*
|
61 |
+
* @var flow
|
62 |
+
*/
|
63 |
+
public $flow = null;
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Member Variable
|
67 |
+
*
|
68 |
+
* @var assets_vars
|
69 |
+
*/
|
70 |
+
public $assets_vars = null;
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Member Variable
|
74 |
+
*
|
75 |
+
* @var assets_vars
|
76 |
+
*/
|
77 |
+
|
78 |
+
public $is_woo_active = true;
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Initiator
|
82 |
+
*/
|
83 |
+
public static function get_instance() {
|
84 |
+
|
85 |
+
if ( is_null( self::$instance ) ) {
|
86 |
+
|
87 |
+
self::$instance = new self;
|
88 |
+
|
89 |
+
/**
|
90 |
+
* CartFlows loaded.
|
91 |
+
*
|
92 |
+
* Fires when Cartflows was fully loaded and instantiated.
|
93 |
+
*
|
94 |
+
* @since 1.0.0
|
95 |
+
*/
|
96 |
+
do_action( 'cartflows_loaded' );
|
97 |
+
}
|
98 |
+
|
99 |
+
return self::$instance;
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Constructor
|
104 |
+
*/
|
105 |
+
public function __construct() {
|
106 |
+
|
107 |
+
$this->define_constants();
|
108 |
+
|
109 |
+
// Activation hook.
|
110 |
+
register_activation_hook( CARTFLOWS_FILE, array( $this, 'activation_reset' ) );
|
111 |
+
|
112 |
+
// deActivation hook.
|
113 |
+
register_deactivation_hook( CARTFLOWS_FILE, array( $this, 'deactivation_reset' ) );
|
114 |
+
|
115 |
+
add_action( 'plugins_loaded', array( $this, 'load_plugin' ), 99 );
|
116 |
+
add_action( 'plugins_loaded', array( $this, 'load_cf_textdomain' ) );
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Defines all constants
|
121 |
+
*
|
122 |
+
* @since 1.0.0
|
123 |
+
*/
|
124 |
+
public function define_constants() {
|
125 |
+
|
126 |
+
define( 'CARTFLOWS_BASE', plugin_basename( CARTFLOWS_FILE ) );
|
127 |
+
define( 'CARTFLOWS_DIR', plugin_dir_path( CARTFLOWS_FILE ) );
|
128 |
+
define( 'CARTFLOWS_URL', plugins_url( '/', CARTFLOWS_FILE ) );
|
129 |
+
define( 'CARTFLOWS_VER', '1.1.20' );
|
130 |
+
define( 'CARTFLOWS_SLUG', 'cartflows' );
|
131 |
+
define( 'CARTFLOWS_SETTINGS', 'cartflows_settings' );
|
132 |
+
|
133 |
+
define( 'CARTFLOWS_FLOW_POST_TYPE', 'cartflows_flow' );
|
134 |
+
define( 'CARTFLOWS_STEP_POST_TYPE', 'cartflows_step' );
|
135 |
+
|
136 |
+
if ( ! defined( 'CARTFLOWS_SERVER_URL' ) ) {
|
137 |
+
define( 'CARTFLOWS_SERVER_URL', 'https://my.cartflows.com/' );
|
138 |
+
}
|
139 |
+
define( 'CARTFLOWS_DOMAIN_URL', 'https://cartflows.com/' );
|
140 |
+
define( 'CARTFLOWS_TEMPLATES_URL', 'https://templates.cartflows.com/' );
|
141 |
+
define( 'CARTFLOWS_TAXONOMY_STEP_TYPE', 'cartflows_step_type' );
|
142 |
+
define( 'CARTFLOWS_TAXONOMY_STEP_FLOW', 'cartflows_step_flow' );
|
143 |
+
|
144 |
+
if ( ! defined( 'CARTFLOWS_TAXONOMY_STEP_PAGE_BUILDER' ) ) {
|
145 |
+
define( 'CARTFLOWS_TAXONOMY_STEP_PAGE_BUILDER', 'cartflows_step_page_builder' );
|
146 |
+
}
|
147 |
+
if ( ! defined( 'CARTFLOWS_TAXONOMY_FLOW_PAGE_BUILDER' ) ) {
|
148 |
+
define( 'CARTFLOWS_TAXONOMY_FLOW_PAGE_BUILDER', 'cartflows_flow_page_builder' );
|
149 |
+
}
|
150 |
+
if ( ! defined( 'CARTFLOWS_TAXONOMY_FLOW_CATEGORY' ) ) {
|
151 |
+
define( 'CARTFLOWS_TAXONOMY_FLOW_CATEGORY', 'cartflows_flow_category' );
|
152 |
+
}
|
153 |
+
|
154 |
+
if ( ! defined( 'CARTFLOWS_LOG_DIR' ) ) {
|
155 |
+
|
156 |
+
$upload_dir = wp_upload_dir( null, false );
|
157 |
+
|
158 |
+
define( 'CARTFLOWS_LOG_DIR', $upload_dir['basedir'] . '/cartflows-logs/' );
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Loads plugin files.
|
164 |
+
*
|
165 |
+
* @since 1.0.0
|
166 |
+
*
|
167 |
+
* @return void
|
168 |
+
*/
|
169 |
+
function load_plugin() {
|
170 |
+
|
171 |
+
// if ( ! function_exists( 'WC' ) ) {.
|
172 |
+
// add_action( 'admin_notices', array( $this, 'fails_to_load' ) );.
|
173 |
+
// return;.
|
174 |
+
// }.
|
175 |
+
$this->load_helper_files_components();
|
176 |
+
$this->load_core_files();
|
177 |
+
$this->load_core_components();
|
178 |
+
|
179 |
+
add_action( 'wp_loaded', array( $this, 'initialize' ) );
|
180 |
+
add_action( 'cartflows_pro_init', array( $this, 'after_cartflows_pro_init' ) );
|
181 |
+
|
182 |
+
if ( ! $this->is_woo_active ) {
|
183 |
+
add_action( 'admin_notices', array( $this, 'fails_to_load' ) );
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* CartFlows Init.
|
188 |
+
*
|
189 |
+
* Fires when Cartflows is instantiated.
|
190 |
+
*
|
191 |
+
* @since 1.0.0
|
192 |
+
*/
|
193 |
+
do_action( 'cartflows_init' );
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* After CartFlows Pro init.
|
198 |
+
*
|
199 |
+
* @since 1.1.19
|
200 |
+
*
|
201 |
+
* @return void
|
202 |
+
*/
|
203 |
+
function after_cartflows_pro_init() {
|
204 |
+
|
205 |
+
if ( ! is_admin() ) {
|
206 |
+
return;
|
207 |
+
}
|
208 |
+
|
209 |
+
if ( version_compare( CARTFLOWS_PRO_VER, '1.1.19', '<' ) ) {
|
210 |
+
add_action( 'admin_notices', array( $this, 'required_cartflows_pro_notice' ) );
|
211 |
+
}
|
212 |
+
|
213 |
+
$this->licence_setup();
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Required CartFlows Pro Notice.
|
218 |
+
*
|
219 |
+
* @since 1.1.19
|
220 |
+
*
|
221 |
+
* @return void
|
222 |
+
*/
|
223 |
+
function required_cartflows_pro_notice() {
|
224 |
+
|
225 |
+
$required_pro_version = '1.1.19';
|
226 |
+
|
227 |
+
$class = 'notice notice-warning';
|
228 |
+
/* translators: %s: html tags */
|
229 |
+
$message = sprintf( __( 'You are using older version of %1$sCartFlows Pro%2$s. Please update %1$sCartFlows Pro%2$s plugin to version %1$s%3$s%2$s or higher.', 'cartflows' ), '<strong>', '</strong>', $required_pro_version );
|
230 |
+
|
231 |
+
printf( '<div class="%1$s"><p>%2$s</p></div>', $class, $message );
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* Licence Setup Fallback.
|
236 |
+
*
|
237 |
+
* @since 1.1.16
|
238 |
+
*
|
239 |
+
* @return void
|
240 |
+
*/
|
241 |
+
function licence_setup() {
|
242 |
+
|
243 |
+
if ( version_compare( CARTFLOWS_PRO_VER, '1.1.13', '<' ) ) {
|
244 |
+
|
245 |
+
if ( method_exists( 'Cartflows_Pro_Loader', 'licence_setup' ) ) {
|
246 |
+
wcf_pro()->licence_setup();
|
247 |
+
}
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* Load Helper Files and Components.
|
253 |
+
*
|
254 |
+
* @since 1.0.0
|
255 |
+
*
|
256 |
+
* @return void
|
257 |
+
*/
|
258 |
+
function load_helper_files_components() {
|
259 |
+
|
260 |
+
$this->is_woo_active = function_exists( 'WC' );
|
261 |
+
|
262 |
+
/* Public Utils */
|
263 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-utils.php';
|
264 |
+
|
265 |
+
/* Public Session */
|
266 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-session.php';
|
267 |
+
|
268 |
+
/* Public Global namespace functions */
|
269 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-functions.php';
|
270 |
+
|
271 |
+
/* Admin Helper */
|
272 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-helper.php';
|
273 |
+
|
274 |
+
/* Meta Default Values */
|
275 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-default-meta.php';
|
276 |
+
|
277 |
+
$this->utils = Cartflows_Utils::get_instance();
|
278 |
+
$this->session = Cartflows_Session::get_instance();
|
279 |
+
$this->options = Cartflows_Default_Meta::get_instance();
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
* Init hooked function.
|
284 |
+
*
|
285 |
+
* @since 1.0.0
|
286 |
+
*
|
287 |
+
* @return void
|
288 |
+
*/
|
289 |
+
function initialize() {
|
290 |
+
$this->assets_vars = $this->utils->get_assets_path();
|
291 |
+
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* Load Core Files.
|
295 |
+
*
|
296 |
+
* @since 1.0.0
|
297 |
+
*
|
298 |
+
* @return void
|
299 |
+
*/
|
300 |
+
function load_core_files() {
|
301 |
+
|
302 |
+
/* Update compatibility. */
|
303 |
+
require_once CARTFLOWS_DIR . 'classes/class-cartflows-update.php';
|
304 |
+
|
305 |
+
/* Page builder compatibilty class */
|
306 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-compatibility.php';
|
307 |
+
|
308 |
+
/* Admin Meta Fields*/
|
309 |
+
include_once CARTFLOWS_DIR . 'classes/fields/typography/class-cartflows-font-families.php';
|
310 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-meta-fields.php';
|
311 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-meta.php';
|
312 |
+
|
313 |
+
/* Cloning */
|
314 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-cloning.php';
|
315 |
+
|
316 |
+
/* Admin Settings */
|
317 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-admin.php';
|
318 |
+
|
319 |
+
/* Logger */
|
320 |
+
include_once CARTFLOWS_DIR . 'classes/logger/class-cartflows-log-handler-interface.php';
|
321 |
+
include_once CARTFLOWS_DIR . 'classes/logger/class-cartflows-log-handler.php';
|
322 |
+
include_once CARTFLOWS_DIR . 'classes/logger/class-cartflows-log-handler-file.php';
|
323 |
+
include_once CARTFLOWS_DIR . 'classes/logger/class-cartflows-log-levels.php';
|
324 |
+
include_once CARTFLOWS_DIR . 'classes/logger/class-cartflows-logger-interface.php';
|
325 |
+
include_once CARTFLOWS_DIR . 'classes/logger/class-cartflows-wc-logger.php';
|
326 |
+
|
327 |
+
/* Core Modules */
|
328 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-logger.php';
|
329 |
+
|
330 |
+
/* Frontend Global */
|
331 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-frontend.php';
|
332 |
+
require_once CARTFLOWS_DIR . 'classes/class-cartflows-flow-frontend.php';
|
333 |
+
|
334 |
+
/* Modules */
|
335 |
+
include_once CARTFLOWS_DIR . 'modules/flow/class-cartflows-flow.php';
|
336 |
+
include_once CARTFLOWS_DIR . 'modules/landing/class-cartflows-landing.php';
|
337 |
+
|
338 |
+
if ( $this->is_woo_active ) {
|
339 |
+
include_once CARTFLOWS_DIR . 'modules/checkout/class-cartflows-checkout.php';
|
340 |
+
include_once CARTFLOWS_DIR . 'modules/thankyou/class-cartflows-thankyou.php';
|
341 |
+
}
|
342 |
+
|
343 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-api.php';
|
344 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-importer-core.php';
|
345 |
+
|
346 |
+
include_once CARTFLOWS_DIR . 'classes/batch-process/class-cartflows-batch-process.php';
|
347 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-importer.php';
|
348 |
+
|
349 |
+
include_once CARTFLOWS_DIR . 'classes/class-cartflows-wizard.php';
|
350 |
+
|
351 |
+
}
|
352 |
+
|
353 |
+
/**
|
354 |
+
* Load Core Components.
|
355 |
+
*
|
356 |
+
* @since 1.0.0
|
357 |
+
*
|
358 |
+
* @return void
|
359 |
+
*/
|
360 |
+
function load_core_components() {
|
361 |
+
|
362 |
+
$this->meta = Cartflows_Meta_Fields::get_instance();
|
363 |
+
$this->logger = Cartflows_Logger::get_instance();
|
364 |
+
$this->flow = Cartflows_Flow_Frontend::get_instance();
|
365 |
+
}
|
366 |
+
|
367 |
+
/**
|
368 |
+
* Create files/directories.
|
369 |
+
*/
|
370 |
+
function create_files() {
|
371 |
+
|
372 |
+
// Install files and folders for uploading files and prevent hotlinking.
|
373 |
+
$upload_dir = wp_upload_dir();
|
374 |
+
|
375 |
+
$files = array(
|
376 |
+
array(
|
377 |
+
'base' => CARTFLOWS_LOG_DIR,
|
378 |
+
'file' => '.htaccess',
|
379 |
+
'content' => 'deny from all',
|
380 |
+
),
|
381 |
+
array(
|
382 |
+
'base' => CARTFLOWS_LOG_DIR,
|
383 |
+
'file' => 'index.html',
|
384 |
+
'content' => '',
|
385 |
+
),
|
386 |
+
);
|
387 |
+
|
388 |
+
foreach ( $files as $file ) {
|
389 |
+
if ( wp_mkdir_p( $file['base'] ) && ! file_exists( trailingslashit( $file['base'] ) . $file['file'] ) ) {
|
390 |
+
$file_handle = @fopen( trailingslashit( $file['base'] ) . $file['file'], 'w' ); // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged, WordPress.WP.AlternativeFunctions.file_system_read_fopen
|
391 |
+
if ( $file_handle ) {
|
392 |
+
fwrite( $file_handle, $file['content'] ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_fwrite
|
393 |
+
fclose( $file_handle ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_fclose
|
394 |
+
}
|
395 |
+
}
|
396 |
+
}
|
397 |
+
}
|
398 |
+
/**
|
399 |
+
* Load CartFlows Pro Text Domain.
|
400 |
+
* This will load the translation textdomain depending on the file priorities.
|
401 |
+
* 1. Global Languages /wp-content/languages/cartflows/ folder
|
402 |
+
* 2. Local dorectory /wp-content/plugins/cartflows/languages/ folder
|
403 |
+
*
|
404 |
+
* @since 1.0.3
|
405 |
+
* @return void
|
406 |
+
*/
|
407 |
+
public function load_cf_textdomain() {
|
408 |
+
|
409 |
+
// Default languages directory for CartFlows Pro.
|
410 |
+
$lang_dir = CARTFLOWS_DIR . 'languages/';
|
411 |
+
|
412 |
+
/**
|
413 |
+
* Filters the languages directory path to use for CartFlows Pro.
|
414 |
+
*
|
415 |
+
* @param string $lang_dir The languages directory path.
|
416 |
+
*/
|
417 |
+
$lang_dir = apply_filters( 'cartflows_languages_directory', $lang_dir );
|
418 |
+
|
419 |
+
// Traditional WordPress plugin locale filter.
|
420 |
+
global $wp_version;
|
421 |
+
|
422 |
+
$get_locale = get_locale();
|
423 |
+
|
424 |
+
if ( $wp_version >= 4.7 ) {
|
425 |
+
$get_locale = get_user_locale();
|
426 |
+
}
|
427 |
+
|
428 |
+
/**
|
429 |
+
* Language Locale for CartFlows Pro
|
430 |
+
*
|
431 |
+
* @var $get_locale The locale to use.
|
432 |
+
* Uses get_user_locale()` in WordPress 4.7 or greater,
|
433 |
+
* otherwise uses `get_locale()`.
|
434 |
+
*/
|
435 |
+
$locale = apply_filters( 'plugin_locale', $get_locale, 'cartflows' );
|
436 |
+
$mofile = sprintf( '%1$s-%2$s.mo', 'cartflows', $locale );
|
437 |
+
|
438 |
+
// Setup paths to current locale file.
|
439 |
+
$mofile_local = $lang_dir . $mofile;
|
440 |
+
$mofile_global = WP_LANG_DIR . '/plugins/' . $mofile;
|
441 |
+
|
442 |
+
if ( file_exists( $mofile_global ) ) {
|
443 |
+
// Look in global /wp-content/languages/cartflows/ folder.
|
444 |
+
load_textdomain( 'cartflows', $mofile_global );
|
445 |
+
} elseif ( file_exists( $mofile_local ) ) {
|
446 |
+
// Look in local /wp-content/plugins/cartflows/languages/ folder.
|
447 |
+
load_textdomain( 'cartflows', $mofile_local );
|
448 |
+
} else {
|
449 |
+
// Load the default language files.
|
450 |
+
load_plugin_textdomain( 'cartflows', false, $lang_dir );
|
451 |
+
}
|
452 |
+
}
|
453 |
+
|
454 |
+
/**
|
455 |
+
* Fires admin notice when Elementor is not installed and activated.
|
456 |
+
*
|
457 |
+
* @since 1.0.0
|
458 |
+
*
|
459 |
+
* @return void
|
460 |
+
*/
|
461 |
+
public function fails_to_load() {
|
462 |
+
|
463 |
+
$screen = get_current_screen();
|
464 |
+
|
465 |
+
if ( ! wcf()->utils->is_step_post_type() ) {
|
466 |
+
return;
|
467 |
+
}
|
468 |
+
|
469 |
+
if ( ! wcf()->utils->check_is_woo_required_page() ) {
|
470 |
+
return;
|
471 |
+
}
|
472 |
+
|
473 |
+
$skip_notice = false;
|
474 |
+
|
475 |
+
wp_localize_script( 'wcf-global-admin', 'cartflows_woo', array( 'show_update_post' => $skip_notice ) );
|
476 |
+
|
477 |
+
$class = 'notice notice-warning';
|
478 |
+
/* translators: %s: html tags */
|
479 |
+
$message = sprintf( __( 'This %1$sCartFlows%2$s page requires %1$sWooCommerce%2$s plugin installed & activated.', 'cartflows' ), '<strong>', '</strong>' );
|
480 |
+
|
481 |
+
$plugin = 'woocommerce/woocommerce.php';
|
482 |
+
|
483 |
+
if ( _is_woo_installed() ) {
|
484 |
+
if ( ! current_user_can( 'activate_plugins' ) ) {
|
485 |
+
return;
|
486 |
+
}
|
487 |
+
|
488 |
+
$action_url = wp_nonce_url( 'plugins.php?action=activate&plugin=' . $plugin . '&plugin_status=all&paged=1&s', 'activate-plugin_' . $plugin );
|
489 |
+
$button_label = __( 'Activate WooCommerce', 'cartflows' );
|
490 |
+
|
491 |
+
} else {
|
492 |
+
if ( ! current_user_can( 'install_plugins' ) ) {
|
493 |
+
return;
|
494 |
+
}
|
495 |
+
|
496 |
+
$action_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=woocommerce' ), 'install-plugin_woocommerce' );
|
497 |
+
$button_label = __( 'Install WooCommerce', 'cartflows' );
|
498 |
+
}
|
499 |
+
|
500 |
+
$button = '<p><a href="' . $action_url . '" class="button-primary">' . $button_label . '</a></p><p></p>';
|
501 |
+
|
502 |
+
printf( '<div class="%1$s"><p>%2$s</p>%3$s</div>', esc_attr( $class ), $message, $button );
|
503 |
+
}
|
504 |
+
|
505 |
+
/**
|
506 |
+
* Activation Reset
|
507 |
+
*/
|
508 |
+
function activation_reset() {
|
509 |
+
|
510 |
+
if ( ! defined( 'CARTFLOWS_LOG_DIR' ) ) {
|
511 |
+
|
512 |
+
$upload_dir = wp_upload_dir( null, false );
|
513 |
+
|
514 |
+
define( 'CARTFLOWS_LOG_DIR', $upload_dir['basedir'] . '/cartflows-logs/' );
|
515 |
+
}
|
516 |
+
|
517 |
+
$this->create_files();
|
518 |
+
|
519 |
+
include_once CARTFLOWS_DIR . 'modules/flow/classes/class-cartflows-flow-post-type.php';
|
520 |
+
include_once CARTFLOWS_DIR . 'modules/flow/classes/class-cartflows-step-post-type.php';
|
521 |
+
|
522 |
+
Cartflows_Flow_Post_Type::get_instance()->flow_post_type();
|
523 |
+
Cartflows_Step_Post_Type::get_instance()->step_post_type();
|
524 |
+
flush_rewrite_rules();
|
525 |
+
}
|
526 |
+
|
527 |
+
/**
|
528 |
+
* Deactivation Reset
|
529 |
+
*/
|
530 |
+
function deactivation_reset() {
|
531 |
+
}
|
532 |
+
|
533 |
+
/**
|
534 |
+
* Logger Class Instance
|
535 |
+
*/
|
536 |
+
function logger() {
|
537 |
+
return Cartflows_Logger::get_instance();
|
538 |
+
}
|
539 |
+
|
540 |
+
|
541 |
+
}
|
542 |
+
|
543 |
+
/**
|
544 |
+
* Prepare if class 'Cartflows_Loader' exist.
|
545 |
+
* Kicking this off by calling 'get_instance()' method
|
546 |
+
*/
|
547 |
+
Cartflows_Loader::get_instance();
|
548 |
+
}
|
549 |
+
|
550 |
+
/**
|
551 |
+
* Get global class.
|
552 |
+
*
|
553 |
+
* @return object
|
554 |
+
*/
|
555 |
+
function wcf() {
|
556 |
+
return Cartflows_Loader::get_instance();
|
557 |
+
}
|
558 |
+
|
559 |
+
if ( ! function_exists( '_is_woo_installed' ) ) {
|
560 |
+
|
561 |
+
/**
|
562 |
+
* Is woocommerce plugin installed.
|
563 |
+
*
|
564 |
+
* @since 1.0.0
|
565 |
+
*
|
566 |
+
* @access public
|
567 |
+
*/
|
568 |
+
function _is_woo_installed() {
|
569 |
+
|
570 |
+
$path = 'woocommerce/woocommerce.php';
|
571 |
+
$plugins = get_plugins();
|
572 |
+
|
573 |
+
return isset( $plugins[ $path ] );
|
574 |
+
}
|
575 |
+
}
|
classes/class-cartflows-logger.php
CHANGED
@@ -44,6 +44,28 @@ class Cartflows_Logger {
|
|
44 |
|
45 |
/* Load WC Logger */
|
46 |
add_action( 'init', array( $this, 'init_wc_logger' ), 99 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
|
49 |
/**
|
@@ -52,7 +74,9 @@ class Cartflows_Logger {
|
|
52 |
* @since 1.0.0
|
53 |
*/
|
54 |
function init_wc_logger() {
|
55 |
-
|
|
|
|
|
56 |
}
|
57 |
|
58 |
/**
|
@@ -67,7 +91,7 @@ class Cartflows_Logger {
|
|
67 |
$enable_log = apply_filters( 'cartflows_enable_log', 'enable' );
|
68 |
|
69 |
if ( 'enable' === $enable_log &&
|
70 |
-
is_a( $this->logger, '
|
71 |
did_action( 'plugins_loaded' )
|
72 |
) {
|
73 |
|
@@ -86,13 +110,71 @@ class Cartflows_Logger {
|
|
86 |
|
87 |
if ( defined( 'WP_DEBUG' ) &&
|
88 |
WP_DEBUG &&
|
89 |
-
is_a( $this->logger, '
|
90 |
did_action( 'plugins_loaded' )
|
91 |
) {
|
92 |
|
93 |
$this->logger->log( $level, $message, array( 'source' => 'cartflows-import' ) );
|
94 |
}
|
95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
|
98 |
/**
|
44 |
|
45 |
/* Load WC Logger */
|
46 |
add_action( 'init', array( $this, 'init_wc_logger' ), 99 );
|
47 |
+
|
48 |
+
$page = filter_input( INPUT_GET, 'page', FILTER_SANITIZE_STRING );
|
49 |
+
|
50 |
+
if ( CARTFLOWS_SETTINGS === $page ) {
|
51 |
+
add_filter( 'admin_footer_text', array( $this, 'add_footer_link' ), 99 );
|
52 |
+
}
|
53 |
+
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Add footer link.
|
58 |
+
*/
|
59 |
+
function add_footer_link() {
|
60 |
+
$settings_url = add_query_arg(
|
61 |
+
array(
|
62 |
+
'page' => CARTFLOWS_SETTINGS,
|
63 |
+
'cartflows-error-log' => 1,
|
64 |
+
),
|
65 |
+
admin_url( '/admin.php' )
|
66 |
+
);
|
67 |
+
|
68 |
+
echo '<span id="footer-thankyou"> Thank you for using <a href="https://cartflows.com/">CartFlows</a></span> | <a href="' . $settings_url . '"> View Logs </a>';
|
69 |
}
|
70 |
|
71 |
/**
|
74 |
* @since 1.0.0
|
75 |
*/
|
76 |
function init_wc_logger() {
|
77 |
+
if ( class_exists( 'CartFlows_WC_Logger' ) ) {
|
78 |
+
$this->logger = new CartFlows_WC_Logger();
|
79 |
+
}
|
80 |
}
|
81 |
|
82 |
/**
|
91 |
$enable_log = apply_filters( 'cartflows_enable_log', 'enable' );
|
92 |
|
93 |
if ( 'enable' === $enable_log &&
|
94 |
+
is_a( $this->logger, 'CartFlows_WC_Logger' ) &&
|
95 |
did_action( 'plugins_loaded' )
|
96 |
) {
|
97 |
|
110 |
|
111 |
if ( defined( 'WP_DEBUG' ) &&
|
112 |
WP_DEBUG &&
|
113 |
+
is_a( $this->logger, 'CartFlows_WC_Logger' ) &&
|
114 |
did_action( 'plugins_loaded' )
|
115 |
) {
|
116 |
|
117 |
$this->logger->log( $level, $message, array( 'source' => 'cartflows-import' ) );
|
118 |
}
|
119 |
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Get all log files in the log directory.
|
123 |
+
*
|
124 |
+
* @return array
|
125 |
+
*/
|
126 |
+
public static function get_log_files() {
|
127 |
+
$files = scandir( CARTFLOWS_LOG_DIR );
|
128 |
+
$result = array();
|
129 |
+
|
130 |
+
if ( ! empty( $files ) ) {
|
131 |
+
foreach ( $files as $key => $value ) {
|
132 |
+
if ( ! in_array( $value, array( '.', '..' ), true ) ) {
|
133 |
+
if ( ! is_dir( $value ) && strstr( $value, '.log' ) ) {
|
134 |
+
$result[ sanitize_title( $value ) ] = $value;
|
135 |
+
}
|
136 |
+
}
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
return $result;
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Return the log file handle.
|
145 |
+
*
|
146 |
+
* @param string $filename Filename to get the handle for.
|
147 |
+
* @return string
|
148 |
+
*/
|
149 |
+
public static function get_log_file_handle( $filename ) {
|
150 |
+
return substr( $filename, 0, strlen( $filename ) > 48 ? strlen( $filename ) - 48 : strlen( $filename ) - 4 );
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Show the log page contents for file log handler.
|
155 |
+
*/
|
156 |
+
public static function status_logs_file() {
|
157 |
+
|
158 |
+
if ( ! empty( $_REQUEST['handle'] ) ) {
|
159 |
+
|
160 |
+
if ( empty( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['_wpnonce'] ), 'remove_log' ) ) {
|
161 |
+
wp_die( esc_html__( 'Action failed. Please refresh the page and retry.', 'cartflows' ) );
|
162 |
+
}
|
163 |
+
wp_delete_file( CARTFLOWS_LOG_DIR . rtrim( $_REQUEST['handle'], '-log' ) . '.log' );
|
164 |
+
echo "<div style='padding: 15px;' class='updated inline'> Log deleted successfully! </div>";
|
165 |
+
}
|
166 |
+
|
167 |
+
$logs = self::get_log_files();
|
168 |
+
if ( ! empty( $_REQUEST['log_file'] ) && isset( $logs[ sanitize_title( wp_unslash( $_REQUEST['log_file'] ) ) ] ) ) {
|
169 |
+
$viewed_log = $logs[ sanitize_title( wp_unslash( $_REQUEST['log_file'] ) ) ];
|
170 |
+
} elseif ( ! empty( $logs ) ) {
|
171 |
+
$viewed_log = current( $logs );
|
172 |
+
}
|
173 |
+
$handle = ! empty( $viewed_log ) ? self::get_log_file_handle( $viewed_log ) : '';
|
174 |
+
|
175 |
+
include_once CARTFLOWS_DIR . 'includes/admin/cartflows-error-log.php';
|
176 |
+
}
|
177 |
+
|
178 |
}
|
179 |
|
180 |
/**
|
classes/class-cartflows-meta-fields.php
CHANGED
@@ -70,7 +70,7 @@ class Cartflows_Meta_Fields {
|
|
70 |
wp_enqueue_script(
|
71 |
'wcf-admin-meta',
|
72 |
CARTFLOWS_URL . 'admin/meta-assets/js/admin-edit.js',
|
73 |
-
array( 'jquery', '
|
74 |
CARTFLOWS_VER,
|
75 |
true
|
76 |
);
|
70 |
wp_enqueue_script(
|
71 |
'wcf-admin-meta',
|
72 |
CARTFLOWS_URL . 'admin/meta-assets/js/admin-edit.js',
|
73 |
+
array( 'jquery', 'wp-color-picker' ),
|
74 |
CARTFLOWS_VER,
|
75 |
true
|
76 |
);
|
classes/class-cartflows-update.php
CHANGED
@@ -36,7 +36,7 @@ if ( ! class_exists( 'Cartflows_Update' ) ) :
|
|
36 |
* Constructor
|
37 |
*/
|
38 |
public function __construct() {
|
39 |
-
add_action( 'admin_init',
|
40 |
}
|
41 |
|
42 |
/**
|
@@ -45,7 +45,7 @@ if ( ! class_exists( 'Cartflows_Update' ) ) :
|
|
45 |
* @since 1.0.0
|
46 |
* @return void
|
47 |
*/
|
48 |
-
|
49 |
|
50 |
do_action( 'cartflows_update_before' );
|
51 |
|
@@ -63,11 +63,31 @@ if ( ! class_exists( 'Cartflows_Update' ) ) :
|
|
63 |
return;
|
64 |
}
|
65 |
|
|
|
|
|
66 |
// Update auto saved version number.
|
67 |
update_option( 'cartflows-version', CARTFLOWS_VER );
|
68 |
|
69 |
do_action( 'cartflows_update_after' );
|
70 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
|
73 |
/**
|
36 |
* Constructor
|
37 |
*/
|
38 |
public function __construct() {
|
39 |
+
add_action( 'admin_init', array( $this, 'init' ) );
|
40 |
}
|
41 |
|
42 |
/**
|
45 |
* @since 1.0.0
|
46 |
* @return void
|
47 |
*/
|
48 |
+
function init() {
|
49 |
|
50 |
do_action( 'cartflows_update_before' );
|
51 |
|
63 |
return;
|
64 |
}
|
65 |
|
66 |
+
$this->logger_files();
|
67 |
+
|
68 |
// Update auto saved version number.
|
69 |
update_option( 'cartflows-version', CARTFLOWS_VER );
|
70 |
|
71 |
do_action( 'cartflows_update_after' );
|
72 |
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Loading logger files.
|
76 |
+
*
|
77 |
+
* @since 1.0.0
|
78 |
+
* @return void
|
79 |
+
*/
|
80 |
+
function logger_files() {
|
81 |
+
|
82 |
+
if ( ! defined( 'CARTFLOWS_LOG_DIR' ) ) {
|
83 |
+
|
84 |
+
$upload_dir = wp_upload_dir( null, false );
|
85 |
+
|
86 |
+
define( 'CARTFLOWS_LOG_DIR', $upload_dir['basedir'] . '/cartflows-logs/' );
|
87 |
+
}
|
88 |
+
|
89 |
+
wcf()->create_files();
|
90 |
+
}
|
91 |
}
|
92 |
|
93 |
/**
|
classes/class-cartflows-utils.php
CHANGED
@@ -287,6 +287,21 @@ class Cartflows_Utils {
|
|
287 |
return false;
|
288 |
}
|
289 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
/**
|
291 |
* Define constant for cache
|
292 |
*
|
@@ -294,9 +309,9 @@ class Cartflows_Utils {
|
|
294 |
*/
|
295 |
function do_not_cache() {
|
296 |
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
|
301 |
nocache_headers();
|
302 |
}
|
287 |
return false;
|
288 |
}
|
289 |
|
290 |
+
/**
|
291 |
+
* Check if loaded page requires woo.
|
292 |
+
*
|
293 |
+
* @return bool
|
294 |
+
*/
|
295 |
+
function check_is_woo_required_page() {
|
296 |
+
|
297 |
+
global $post;
|
298 |
+
$step_id = $post->ID;
|
299 |
+
$woo_not_required_type = array( 'landing' );
|
300 |
+
$step_type = $this->get_step_type( $step_id );
|
301 |
+
|
302 |
+
return ( ! in_array( $step_type, $woo_not_required_type ) );
|
303 |
+
}
|
304 |
+
|
305 |
/**
|
306 |
* Define constant for cache
|
307 |
*
|
309 |
*/
|
310 |
function do_not_cache() {
|
311 |
|
312 |
+
wcf_maybe_define_constant( 'DONOTCACHEPAGE', true );
|
313 |
+
wcf_maybe_define_constant( 'DONOTCACHEOBJECT', true );
|
314 |
+
wcf_maybe_define_constant( 'DONOTCACHEDB', true );
|
315 |
|
316 |
nocache_headers();
|
317 |
}
|
classes/class-cartflows-wizard.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
-
* @package
|
6 |
*/
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -20,14 +20,31 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
20 |
* Hook in tabs.
|
21 |
*/
|
22 |
public function __construct() {
|
|
|
23 |
if ( apply_filters( 'cartflows_enable_setup_wizard', true ) && current_user_can( 'manage_options' ) ) {
|
24 |
add_action( 'admin_menu', array( $this, 'admin_menus' ) );
|
25 |
add_action( 'admin_init', array( $this, 'setup_wizard' ) );
|
26 |
add_action( 'admin_notices', array( $this, 'show_setup_wizard' ) );
|
27 |
add_action( 'wp_ajax_page_builder_step_save', array( $this, 'page_builder_step_save' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
-
|
|
|
30 |
}
|
|
|
|
|
31 |
}
|
32 |
|
33 |
/**
|
@@ -75,7 +92,14 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
75 |
'page-builder' => array(
|
76 |
'name' => __( 'Page Builder', 'cartflows' ),
|
77 |
'view' => array( $this, 'page_builder_step' ),
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
),
|
80 |
'setup-ready' => array(
|
81 |
'name' => __( 'Ready!', 'cartflows' ),
|
@@ -88,8 +112,11 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
88 |
|
89 |
wp_enqueue_style( 'cartflows-setup', CARTFLOWS_URL . 'admin/assets/css/setup-wizard.css', array( 'dashicons' ), CARTFLOWS_VER );
|
90 |
wp_style_add_data( 'cartflows-setup', 'rtl', 'replace' );
|
|
|
91 |
wp_enqueue_script( 'cartflows-setup', CARTFLOWS_URL . 'admin/assets/js/setup-wizard.js', array( 'jquery', 'wp-util', 'updates' ), CARTFLOWS_VER );
|
92 |
|
|
|
|
|
93 |
wp_enqueue_media();
|
94 |
|
95 |
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) {
|
@@ -132,8 +159,10 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
132 |
* Get next step link
|
133 |
*/
|
134 |
public function get_next_step_plain_link() {
|
135 |
-
$keys
|
136 |
-
$
|
|
|
|
|
137 |
return admin_url( 'index.php?page=cartflow-setup&step=' . $step );
|
138 |
}
|
139 |
|
@@ -160,7 +189,7 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
160 |
</head>
|
161 |
<body class="cartflows-setup wp-core-ui cartflows-step-<?php echo esc_attr( $this->get_current_step_slug() ); ?>">
|
162 |
<div id="cartflows-logo">
|
163 |
-
<
|
164 |
</div>
|
165 |
<?php
|
166 |
}
|
@@ -212,6 +241,10 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
212 |
* Output the content for the current step.
|
213 |
*/
|
214 |
public function setup_wizard_content() {
|
|
|
|
|
|
|
|
|
215 |
echo '<div class="cartflows-setup-content">';
|
216 |
call_user_func( $this->steps[ $this->step ]['view'] );
|
217 |
echo '</div>';
|
@@ -222,14 +255,14 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
222 |
*/
|
223 |
public function welcome_step() {
|
224 |
?>
|
225 |
-
<h1><?php _e( '
|
226 |
-
<p
|
227 |
<form method="post">
|
228 |
<div class="cartflows-setup-actions step">
|
229 |
<div class="button-prev-wrap">
|
230 |
</div>
|
231 |
<div class="button-next-wrap">
|
232 |
-
<input type="submit" class="uct-activate button-primary button button-large
|
233 |
</div>
|
234 |
<?php wp_nonce_field( 'cartflow-setup' ); ?>
|
235 |
</div>
|
@@ -256,14 +289,13 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
256 |
public function page_builder_step() {
|
257 |
?>
|
258 |
|
259 |
-
<h1><?php _e( 'Page Builder', 'cartflows' ); ?></h1>
|
260 |
-
<p class="description"><?php _e( '
|
261 |
<form method="post">
|
262 |
<table class="cartflows-table widefat">
|
263 |
<tr class="cartflows-row">
|
264 |
<td class="cartflows-row-heading">
|
265 |
<label><?php esc_html_e( 'Select Page Builder', 'cartflows' ); ?></label>
|
266 |
-
<i class="cartflows-heading-help dashicons dashicons-editor-help" title="<?php echo esc_attr__( 'Add locations for where this Schema should appear.', 'cartflows' ); ?>"></i>
|
267 |
</td>
|
268 |
<td class="cartflows-row-content">
|
269 |
<?php
|
@@ -279,8 +311,39 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
279 |
'install' => isset( $installed_plugins['elementor/elementor.php'] ) ? 'yes' : 'no',
|
280 |
),
|
281 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
);
|
283 |
?>
|
|
|
284 |
<select name="page-builder" class="page-builder-list" data-redirect-link="<?php echo esc_url_raw( $this->get_next_step_plain_link() ); ?>">
|
285 |
<?php
|
286 |
foreach ( $plugins as $key => $plugin ) {
|
@@ -291,14 +354,14 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
291 |
</td>
|
292 |
</tr>
|
293 |
</table>
|
294 |
-
<p><?php _e( '
|
295 |
<div class="cartflows-setup-actions step">
|
296 |
<div class="button-prev-wrap">
|
297 |
<a href="<?php echo esc_url( $this->get_prev_step_link() ); ?>" class="button-primary button button-large button-prev" ><?php _e( '« Previous', 'cartflows' ); ?></a>
|
298 |
</div>
|
299 |
<div class="button-next-wrap">
|
|
|
300 |
<a href="#" class="button button-primary wcf-install-plugins"><?php _e( 'Next »', 'cartflows' ); ?></a>
|
301 |
-
<!-- <input type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( 'Next »', 'cartflows' ); ?>" name="save_step" /> -->
|
302 |
</div>
|
303 |
<?php wp_nonce_field( 'cartflow-setup' ); ?>
|
304 |
</div>
|
@@ -306,6 +369,87 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
306 |
<?php
|
307 |
}
|
308 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
/**
|
310 |
* Save Locale Settings.
|
311 |
*/
|
@@ -313,17 +457,20 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
313 |
|
314 |
check_ajax_referer( 'wcf-page-builder-step-save', 'security' );
|
315 |
|
316 |
-
$
|
317 |
-
$
|
318 |
-
$
|
319 |
|
320 |
-
|
321 |
-
|
|
|
322 |
}
|
323 |
|
324 |
-
|
325 |
|
326 |
-
|
|
|
|
|
327 |
|
328 |
if ( is_wp_error( $activate ) ) {
|
329 |
wp_send_json_error(
|
@@ -334,52 +481,32 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
334 |
);
|
335 |
}
|
336 |
|
337 |
-
wp_send_json_success(
|
|
|
|
|
338 |
}
|
339 |
|
340 |
/**
|
341 |
-
*
|
342 |
-
*
|
343 |
-
* @param array $enabled_on Enabled on rules.
|
344 |
-
* @param array $exclude_from Exlcude on rules.
|
345 |
-
* @return array
|
346 |
*/
|
347 |
-
public
|
348 |
-
$locations = array();
|
349 |
-
$enabled_location = array();
|
350 |
-
$exclude_location = array();
|
351 |
-
|
352 |
-
$args = array(
|
353 |
-
'public' => true,
|
354 |
-
'_builtin' => true,
|
355 |
-
);
|
356 |
-
$post_types = get_post_types( $args );
|
357 |
-
unset( $post_types['attachment'] );
|
358 |
|
359 |
-
$
|
360 |
-
$custom_post_type = get_post_types( $args );
|
361 |
-
$post_types = array_merge( $post_types, $custom_post_type );
|
362 |
|
363 |
-
|
364 |
-
$enabled_location = $enabled_on['rule'];
|
365 |
-
}
|
366 |
-
if ( ! empty( $exclude_from ) && isset( $exclude_from['rule'] ) ) {
|
367 |
-
$exclude_location = $exclude_from['rule'];
|
368 |
-
}
|
369 |
|
370 |
-
if (
|
371 |
-
|
372 |
-
$locations[ $post_type ] = 1;
|
373 |
-
}
|
374 |
-
} else {
|
375 |
-
foreach ( $post_types as $post_type ) {
|
376 |
-
$key = $post_type . '|all';
|
377 |
-
if ( in_array( $key, $enabled_location ) && ! in_array( $key, $exclude_location ) ) {
|
378 |
-
$locations[ $post_type ] = 1;
|
379 |
-
}
|
380 |
-
}
|
381 |
}
|
382 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
}
|
384 |
|
385 |
/**
|
@@ -390,14 +517,14 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
390 |
// Set setup wizard status to complete.
|
391 |
update_option( 'wcf_setup_complete', true );
|
392 |
?>
|
393 |
-
<h1><?php _e( 'Congratulations!', 'cartflows' ); ?></h1>
|
394 |
|
395 |
<div class="cartflows-setup-next-steps">
|
396 |
<div class="cartflows-setup-next-steps-last">
|
397 |
|
398 |
<p class="success">
|
399 |
<?php
|
400 |
-
_e( 'You\'ve successfully completed the setup
|
401 |
?>
|
402 |
</p>
|
403 |
|
@@ -422,15 +549,60 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
422 |
<?php
|
423 |
}
|
424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
/**
|
426 |
* Localize variables in admin
|
427 |
-
*
|
428 |
-
* @param array $vars variables.
|
429 |
*/
|
430 |
-
function localize_vars(
|
|
|
|
|
431 |
|
432 |
$ajax_actions = array(
|
433 |
'wcf_page_builder_step_save',
|
|
|
434 |
);
|
435 |
|
436 |
foreach ( $ajax_actions as $action ) {
|
@@ -440,6 +612,37 @@ if ( ! class_exists( 'CartFlows_Wizard' ) ) :
|
|
440 |
|
441 |
return $vars;
|
442 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
}
|
444 |
|
445 |
new CartFlows_Wizard();
|
1 |
<?php
|
2 |
/**
|
3 |
+
* CartFlows- Onboarding Wizard
|
4 |
*
|
5 |
+
* @package cartflows
|
6 |
*/
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
20 |
* Hook in tabs.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
+
|
24 |
if ( apply_filters( 'cartflows_enable_setup_wizard', true ) && current_user_can( 'manage_options' ) ) {
|
25 |
add_action( 'admin_menu', array( $this, 'admin_menus' ) );
|
26 |
add_action( 'admin_init', array( $this, 'setup_wizard' ) );
|
27 |
add_action( 'admin_notices', array( $this, 'show_setup_wizard' ) );
|
28 |
add_action( 'wp_ajax_page_builder_step_save', array( $this, 'page_builder_step_save' ) );
|
29 |
+
add_action( 'wp_ajax_page_builder_save_option', array( $this, 'save_page_builder_option' ) );
|
30 |
+
add_action( 'admin_head', array( $this, 'add_mautic_form_script' ) );
|
31 |
+
add_action( 'woocommerce_installed', array( $this, 'disable_woo_setup_redirect' ) );
|
32 |
+
|
33 |
+
add_action( 'wp_ajax_wcf_activate_wc_plugins', array( $this, 'activate_wc_plugins' ) );
|
34 |
+
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Disable the woo redirect for new setup.
|
40 |
+
*/
|
41 |
+
function disable_woo_setup_redirect() {
|
42 |
|
43 |
+
if ( empty( $_GET['page'] ) || 'cartflow-setup' !== $_GET['page'] ) {
|
44 |
+
return;
|
45 |
}
|
46 |
+
|
47 |
+
delete_transient( '_wc_activation_redirect' );
|
48 |
}
|
49 |
|
50 |
/**
|
92 |
'page-builder' => array(
|
93 |
'name' => __( 'Page Builder', 'cartflows' ),
|
94 |
'view' => array( $this, 'page_builder_step' ),
|
95 |
+
),
|
96 |
+
'checkout' => array(
|
97 |
+
'name' => __( 'Checkout', 'cartflows' ),
|
98 |
+
'view' => array( $this, 'checkout_step' ),
|
99 |
+
),
|
100 |
+
'training' => array(
|
101 |
+
'name' => __( 'Training', 'cartflows' ),
|
102 |
+
'view' => array( $this, 'training_step' ),
|
103 |
),
|
104 |
'setup-ready' => array(
|
105 |
'name' => __( 'Ready!', 'cartflows' ),
|
112 |
|
113 |
wp_enqueue_style( 'cartflows-setup', CARTFLOWS_URL . 'admin/assets/css/setup-wizard.css', array( 'dashicons' ), CARTFLOWS_VER );
|
114 |
wp_style_add_data( 'cartflows-setup', 'rtl', 'replace' );
|
115 |
+
|
116 |
wp_enqueue_script( 'cartflows-setup', CARTFLOWS_URL . 'admin/assets/js/setup-wizard.js', array( 'jquery', 'wp-util', 'updates' ), CARTFLOWS_VER );
|
117 |
|
118 |
+
wp_localize_script( 'cartflows-setup', 'cartflows_setup_vars', self::localize_vars() );
|
119 |
+
|
120 |
wp_enqueue_media();
|
121 |
|
122 |
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) {
|
159 |
* Get next step link
|
160 |
*/
|
161 |
public function get_next_step_plain_link() {
|
162 |
+
$keys = array_keys( $this->steps );
|
163 |
+
$step_index = array_search( $this->step, $keys );
|
164 |
+
$step_index = ( count( $keys ) == $step_index + 1 ) ? $step_index : $step_index + 1;
|
165 |
+
$step = $keys[ $step_index ];
|
166 |
return admin_url( 'index.php?page=cartflow-setup&step=' . $step );
|
167 |
}
|
168 |
|
189 |
</head>
|
190 |
<body class="cartflows-setup wp-core-ui cartflows-step-<?php echo esc_attr( $this->get_current_step_slug() ); ?>">
|
191 |
<div id="cartflows-logo">
|
192 |
+
<img height="40" class="wcf-logo" src="<?php echo CARTFLOWS_URL . 'assets/images/cartflows-logo.svg'; ?>" />
|
193 |
</div>
|
194 |
<?php
|
195 |
}
|
241 |
* Output the content for the current step.
|
242 |
*/
|
243 |
public function setup_wizard_content() {
|
244 |
+
?>
|
245 |
+
<input type="hidden" class="wcf-redirect-link" data-redirect-link="<?php echo esc_url_raw( $this->get_next_step_plain_link() ); ?>" >
|
246 |
+
<?php
|
247 |
+
|
248 |
echo '<div class="cartflows-setup-content">';
|
249 |
call_user_func( $this->steps[ $this->step ]['view'] );
|
250 |
echo '</div>';
|
255 |
*/
|
256 |
public function welcome_step() {
|
257 |
?>
|
258 |
+
<h1><?php _e( 'Welcome to CartFlows!', 'cartflows' ); ?></h1>
|
259 |
+
<p><?php _e( 'Thank you for choosing CartFlows to get more leads, increase conversions, & maximize profits. This short setup wizard will guide you though configuring CartFlows and creating your first funnel.', 'cartflows' ); ?></p>
|
260 |
<form method="post">
|
261 |
<div class="cartflows-setup-actions step">
|
262 |
<div class="button-prev-wrap">
|
263 |
</div>
|
264 |
<div class="button-next-wrap">
|
265 |
+
<input type="submit" class="uct-activate button-primary button button-large " value="<?php _e( 'Lets Go »', 'cartflows' ); ?>" name="save_step" />
|
266 |
</div>
|
267 |
<?php wp_nonce_field( 'cartflow-setup' ); ?>
|
268 |
</div>
|
289 |
public function page_builder_step() {
|
290 |
?>
|
291 |
|
292 |
+
<h1><?php _e( 'Page Builder Setup', 'cartflows' ); ?></h1>
|
293 |
+
<p class="description"><?php _e( 'Please select a page builder you would like to use with CartFlows.', 'cartflows' ); ?></p>
|
294 |
<form method="post">
|
295 |
<table class="cartflows-table widefat">
|
296 |
<tr class="cartflows-row">
|
297 |
<td class="cartflows-row-heading">
|
298 |
<label><?php esc_html_e( 'Select Page Builder', 'cartflows' ); ?></label>
|
|
|
299 |
</td>
|
300 |
<td class="cartflows-row-content">
|
301 |
<?php
|
311 |
'install' => isset( $installed_plugins['elementor/elementor.php'] ) ? 'yes' : 'no',
|
312 |
),
|
313 |
),
|
314 |
+
array(
|
315 |
+
'title' => __( 'Beaver Builder Plugin (Lite Version)', 'cartflows' ),
|
316 |
+
'value' => 'beaver-builder',
|
317 |
+
'data' => array(
|
318 |
+
'slug' => 'beaver-builder-lite-version',
|
319 |
+
'init' => 'beaver-builder-lite-version/fl-builder.php',
|
320 |
+
'active' => is_plugin_active( 'beaver-builder-lite-version/fl-builder.php' ) ? 'yes' : 'no',
|
321 |
+
'install' => isset( $installed_plugins['beaver-builder-lite-version/fl-builder.php'] ) ? 'yes' : 'no',
|
322 |
+
),
|
323 |
+
),
|
324 |
+
array(
|
325 |
+
'title' => __( 'Divi', 'cartflows' ),
|
326 |
+
'value' => 'divi',
|
327 |
+
'data' => array(
|
328 |
+
'slug' => 'divi',
|
329 |
+
'init' => 'divi',
|
330 |
+
'active' => 'yes',
|
331 |
+
'install' => 'NA',
|
332 |
+
),
|
333 |
+
),
|
334 |
+
array(
|
335 |
+
'title' => __( 'Other', 'cartflows' ),
|
336 |
+
'value' => 'other',
|
337 |
+
'data' => array(
|
338 |
+
'slug' => 'other',
|
339 |
+
'init' => false,
|
340 |
+
'active' => 'yes',
|
341 |
+
'install' => 'NA',
|
342 |
+
),
|
343 |
+
),
|
344 |
);
|
345 |
?>
|
346 |
+
<input type="hidden" name="save-pb-input" id="save-pb-option" value="1" />
|
347 |
<select name="page-builder" class="page-builder-list" data-redirect-link="<?php echo esc_url_raw( $this->get_next_step_plain_link() ); ?>">
|
348 |
<?php
|
349 |
foreach ( $plugins as $key => $plugin ) {
|
354 |
</td>
|
355 |
</tr>
|
356 |
</table>
|
357 |
+
<p><?php _e( 'While CartFlows Should work with most page builders, we offer templates for the above page builders.', 'cartflows' ); ?></p>
|
358 |
<div class="cartflows-setup-actions step">
|
359 |
<div class="button-prev-wrap">
|
360 |
<a href="<?php echo esc_url( $this->get_prev_step_link() ); ?>" class="button-primary button button-large button-prev" ><?php _e( '« Previous', 'cartflows' ); ?></a>
|
361 |
</div>
|
362 |
<div class="button-next-wrap">
|
363 |
+
<a href="<?php echo esc_url_raw( $this->get_next_step_plain_link() ); ?>" class="button button-large button-next" ><?php _e( 'Skip this step', 'cartflows' ); ?></a>
|
364 |
<a href="#" class="button button-primary wcf-install-plugins"><?php _e( 'Next »', 'cartflows' ); ?></a>
|
|
|
365 |
</div>
|
366 |
<?php wp_nonce_field( 'cartflow-setup' ); ?>
|
367 |
</div>
|
369 |
<?php
|
370 |
}
|
371 |
|
372 |
+
/**
|
373 |
+
* Render checkout step.
|
374 |
+
*/
|
375 |
+
public function checkout_step() {
|
376 |
+
|
377 |
+
$installed_plugins = get_plugins();
|
378 |
+
$is_wc_installed = isset( $installed_plugins['woocommerce/woocommerce.php'] ) ? 'yes' : 'no';
|
379 |
+
$is_wcf_ca_installed = isset( $installed_plugins['woo-cart-abandonment-recovery/woo-cart-abandonment-recovery.php'] ) ? 'yes' : 'no';
|
380 |
+
$is_active = class_exists( 'WooCommerce' ) ? 'yes' : 'no';
|
381 |
+
$is_wcf_ca_active = class_exists( 'CARTFLOWS_CA_Loader' ) ? 'yes' : 'no';
|
382 |
+
?>
|
383 |
+
<h1><?php _e( 'Choose a checkout', 'cartflows' ); ?></h1>
|
384 |
+
<div class="cartflows-setup-message">
|
385 |
+
<p>
|
386 |
+
<?php _e( 'While CartFlows is designed to use WooCommerce sell digital and physical products, not all funnels need a checkout system.', 'cartflows' ); ?>
|
387 |
+
</p>
|
388 |
+
<h4 class="cartflows-setup-message-title"><?php _e( 'Would you like to install WooCommerce to sell digital and physical products in your funnels?', 'cartflows' ); ?></h4>
|
389 |
+
<span><input data-wcf-ca-active="<?php echo esc_attr( $is_wcf_ca_active ); ?>" data-wcf-ca-install="<?php echo esc_attr( $is_wcf_ca_installed ); ?>" data-woo-active="<?php echo esc_attr( $is_active ); ?>" data-woo-install="<?php echo esc_attr( $is_wc_installed ); ?>" type="hidden" class="wcf-install-wc-input" name="installl-woocommerce" value="" checked></span>
|
390 |
+
</div>
|
391 |
+
|
392 |
+
<div class="cartflows-setup-extra-notice">
|
393 |
+
|
394 |
+
<span>
|
395 |
+
<?php _e( 'The following plugin will be installed and activated for you:', 'cartflows' ); ?>
|
396 |
+
<a target="_blank" href="https://wordpress.org/plugins/woo-cart-abandonment-recovery/"> <?php _e( 'WooCommerce', 'cartflows' ); ?></a>,
|
397 |
+
<a target="_blank" href="https://wordpress.org/plugins/woo-cart-abandonment-recovery/"> <?php _e( 'WooCommerce Cart Abandonment Recovery', 'cartflows' ); ?></a>
|
398 |
+
|
399 |
+
</span>
|
400 |
+
|
401 |
+
</div>
|
402 |
+
|
403 |
+
<div class="cartflows-setup-actions step">
|
404 |
+
<div class="button-prev-wrap">
|
405 |
+
<a href="<?php echo esc_url( $this->get_prev_step_link() ); ?>" class="button-primary button button-large button-prev" ><?php _e( '« Previous', 'cartflows' ); ?></a>
|
406 |
+
</div>
|
407 |
+
<div class="button-next-wrap">
|
408 |
+
<a href="<?php echo esc_url_raw( $this->get_next_step_plain_link() ); ?>" class="button button-large button-next"><?php _e( 'No thanks', 'cartflows' ); ?></a>
|
409 |
+
<a class="wcf-install-wc button-primary button button-large" name="save_step" > <?php _e( 'Yes', 'cartflows' ); ?> </a>
|
410 |
+
</div>
|
411 |
+
</div>
|
412 |
+
|
413 |
+
<?php
|
414 |
+
}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Save Locale Settings.
|
418 |
+
*/
|
419 |
+
function activate_wc_plugins() {
|
420 |
+
|
421 |
+
check_ajax_referer( 'wcf-wc-plugins-activate', 'security' );
|
422 |
+
|
423 |
+
$plugin_slug_arr = array(
|
424 |
+
'woocommerce/woocommerce.php' => true,
|
425 |
+
'woo-cart-abandonment-recovery/woo-cart-abandonment-recovery.php' => false,
|
426 |
+
);
|
427 |
+
|
428 |
+
$activate = array(
|
429 |
+
'woocommerce/woocommerce.php' => false,
|
430 |
+
'woo-cart-abandonment-recovery/woo-cart-abandonment-recovery.php' => false,
|
431 |
+
);
|
432 |
+
|
433 |
+
foreach ( $plugin_slug_arr as $slug => $do_silently ) {
|
434 |
+
|
435 |
+
$activate[ $slug ] = activate_plugin( $slug, '', false, $do_silently );
|
436 |
+
}
|
437 |
+
|
438 |
+
foreach ( $activate as $slug => $data ) {
|
439 |
+
|
440 |
+
if ( is_wp_error( $data ) ) {
|
441 |
+
wp_send_json_error(
|
442 |
+
array(
|
443 |
+
'success' => false,
|
444 |
+
'message' => $data->get_error_message(),
|
445 |
+
)
|
446 |
+
);
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
+
wp_send_json_success();
|
451 |
+
}
|
452 |
+
|
453 |
/**
|
454 |
* Save Locale Settings.
|
455 |
*/
|
457 |
|
458 |
check_ajax_referer( 'wcf-page-builder-step-save', 'security' );
|
459 |
|
460 |
+
$plugin_init = isset( $_POST['plugin_init'] ) ? sanitize_text_field( $_POST['plugin_init'] ) : '';
|
461 |
+
$save_option = ( isset( $_POST['save_builder_option'] ) && 'true' == $_POST['save_builder_option'] ) ? true : false;
|
462 |
+
$plugin_slug = filter_input( INPUT_POST, 'page_builder', FILTER_SANITIZE_STRING );
|
463 |
|
464 |
+
$do_sliently = true;
|
465 |
+
if ( 'woo-cart-abandonment-recovery' === $plugin_slug ) {
|
466 |
+
$do_sliently = false;
|
467 |
}
|
468 |
|
469 |
+
$activate = activate_plugin( $plugin_init, '', false, $do_sliently );
|
470 |
|
471 |
+
if ( $save_option ) {
|
472 |
+
$this->save_page_builder_option();
|
473 |
+
}
|
474 |
|
475 |
if ( is_wp_error( $activate ) ) {
|
476 |
wp_send_json_error(
|
481 |
);
|
482 |
}
|
483 |
|
484 |
+
wp_send_json_success(
|
485 |
+
array( 'plugin' => $plugin_slug )
|
486 |
+
);
|
487 |
}
|
488 |
|
489 |
/**
|
490 |
+
* Save selected page builder in options database.
|
|
|
|
|
|
|
|
|
491 |
*/
|
492 |
+
public function save_page_builder_option() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
493 |
|
494 |
+
$page_builder = isset( $_POST['page_builder'] ) ? sanitize_text_field( $_POST['page_builder'] ) : '';
|
|
|
|
|
495 |
|
496 |
+
$wcf_settings = get_option( '_cartflows_common', array() );
|
|
|
|
|
|
|
|
|
|
|
497 |
|
498 |
+
if ( false !== strpos( $page_builder, 'beaver-builder' ) ) {
|
499 |
+
$page_builder = 'beaver-builder';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
500 |
}
|
501 |
+
|
502 |
+
$wcf_settings['default_page_builder'] = $page_builder;
|
503 |
+
|
504 |
+
update_option( '_cartflows_common', $wcf_settings );
|
505 |
+
|
506 |
+
wp_send_json_success(
|
507 |
+
array( 'plugin' => $page_builder )
|
508 |
+
);
|
509 |
+
|
510 |
}
|
511 |
|
512 |
/**
|
517 |
// Set setup wizard status to complete.
|
518 |
update_option( 'wcf_setup_complete', true );
|
519 |
?>
|
520 |
+
<h1><?php _e( 'Congratulations, You Did It!', 'cartflows' ); ?></h1>
|
521 |
|
522 |
<div class="cartflows-setup-next-steps">
|
523 |
<div class="cartflows-setup-next-steps-last">
|
524 |
|
525 |
<p class="success">
|
526 |
<?php
|
527 |
+
_e( 'CartFlows is ready to use on your website. You\'ve successfully completed the setup process and all that is left for you to do is create your first flow.', 'cartflows' )
|
528 |
?>
|
529 |
</p>
|
530 |
|
549 |
<?php
|
550 |
}
|
551 |
|
552 |
+
/**
|
553 |
+
* Training course step.
|
554 |
+
*/
|
555 |
+
public function training_step() {
|
556 |
+
$current_user = wp_get_current_user();
|
557 |
+
?>
|
558 |
+
<h1><?php _e( 'Exclusive CartFlows Training Course Offer', 'cartflows' ); ?></h1>
|
559 |
+
|
560 |
+
<div id="mauticform_wrapper_cartflowsonboarding" class="mauticform_wrapper">
|
561 |
+
<form autocomplete="false" role="form" method="post" action="https://go.cartflows.com/form/submit?formId=2" id="mauticform_cartflowsonboarding" data-mautic-form="cartflowsonboarding" enctype="multipart/form-data">
|
562 |
+
<div class="mauticform-error" id="mauticform_cartflowsonboarding_error"></div>
|
563 |
+
<div class="mauticform-message" id="mauticform_cartflowsonboarding_message"></div>
|
564 |
+
<div class="mauticform-innerform">
|
565 |
+
<div class="mauticform-page-wrapper mauticform-page-1" data-mautic-form-page="1">
|
566 |
+
<div id="mauticform_cartflowsonboarding_enter_your_email" class="mauticform-row mauticform-email mauticform-field-1">
|
567 |
+
<div class="cartflows-setup-message">
|
568 |
+
<p>
|
569 |
+
<?php _e( 'We want you to get off to a great start using CartFlows, so we would like to give access to our exclusive training course.', 'cartflows' ); ?>
|
570 |
+
<?php _e( 'Get access to this couse, for free, by entering your email below.', 'cartflows' ); ?>
|
571 |
+
</p>
|
572 |
+
<input id="mauticform_input_cartflowsonboarding_enter_your_email" name="mauticform[enter_your_email]" placeholder="<?php _e( 'Enter Email address', 'cartflows' ); ?>" value="<?php echo $current_user->user_email; ?>" class="mauticform-input" type="email">
|
573 |
+
</div>
|
574 |
+
<span class="mauticform-errormsg" style="display: none;"></span>
|
575 |
+
</div>
|
576 |
+
</div>
|
577 |
+
</div>
|
578 |
+
|
579 |
+
<input type="hidden" name="mauticform[formId]" id="mauticform_cartflowsonboarding_id" value="2">
|
580 |
+
<input type="hidden" name="mauticform[return]" id="mauticform_cartflowsonboarding_return" value="">
|
581 |
+
<input type="hidden" name="mauticform[formName]" id="mauticform_cartflowsonboarding_name" value="cartflowsonboarding">
|
582 |
+
<div class="cartflows-setup-actions step">
|
583 |
+
<div class="button-prev-wrap">
|
584 |
+
<a href="<?php echo esc_url( $this->get_prev_step_link() ); ?>" class="button-primary button button-large button-prev" ><?php _e( '« Previous', 'cartflows' ); ?></a>
|
585 |
+
</div>
|
586 |
+
<div class="button-next-wrap">
|
587 |
+
<a href="<?php echo esc_url_raw( $this->get_next_step_plain_link() ); ?>" class="button button-large button-next"><?php _e( 'No thanks', 'cartflows' ); ?></a>
|
588 |
+
<button type="submit" name="mauticform[submit]" id="mauticform_input_cartflowsonboarding_submit" value="<?php _e( 'Allow', 'cartflows' ); ?>" class="mautic-form-submit btn btn-default button-primary button button-large button-next" name="save_step"><?php _e( 'Allow', 'cartflows' ); ?></button>
|
589 |
+
</div>
|
590 |
+
</div>
|
591 |
+
</form>
|
592 |
+
</div>
|
593 |
+
<?php
|
594 |
+
}
|
595 |
+
|
596 |
/**
|
597 |
* Localize variables in admin
|
|
|
|
|
598 |
*/
|
599 |
+
function localize_vars() {
|
600 |
+
|
601 |
+
$vars = array();
|
602 |
|
603 |
$ajax_actions = array(
|
604 |
'wcf_page_builder_step_save',
|
605 |
+
'wcf_wc_plugins_activate',
|
606 |
);
|
607 |
|
608 |
foreach ( $ajax_actions as $action ) {
|
612 |
|
613 |
return $vars;
|
614 |
}
|
615 |
+
|
616 |
+
/**
|
617 |
+
* Add JS script for mautic form
|
618 |
+
*/
|
619 |
+
function add_mautic_form_script() {
|
620 |
+
|
621 |
+
if ( ! isset( $_REQUEST['page'] ) || ( isset( $_REQUEST['page'] ) && 'cartflow-setup' != $_REQUEST['page'] ) ) {
|
622 |
+
return;
|
623 |
+
}
|
624 |
+
?>
|
625 |
+
|
626 |
+
<script type="text/javascript">
|
627 |
+
/** This section is only needed once per page if manually copying **/
|
628 |
+
if (typeof MauticSDKLoaded == 'undefined') {
|
629 |
+
var MauticSDKLoaded = true;
|
630 |
+
var head = document.getElementsByTagName('head')[0];
|
631 |
+
var script = document.createElement('script');
|
632 |
+
script.type = 'text/javascript';
|
633 |
+
script.src = 'https://go.cartflows.com/media/js/mautic-form.js';
|
634 |
+
script.onload = function() {
|
635 |
+
MauticSDK.onLoad();
|
636 |
+
};
|
637 |
+
head.appendChild(script);
|
638 |
+
var MauticDomain = 'https://go.cartflows.com';
|
639 |
+
var MauticLang = {
|
640 |
+
'submittingMessage': "Please wait..."
|
641 |
+
};
|
642 |
+
}
|
643 |
+
</script>
|
644 |
+
<?php
|
645 |
+
}
|
646 |
}
|
647 |
|
648 |
new CartFlows_Wizard();
|
classes/logger/class-cartflows-log-handler-file.php
CHANGED
@@ -1,442 +1,442 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Class Cartflows_Log_Handler_File file.
|
4 |
-
*
|
5 |
-
* @package WooCommerce\Log Handlers
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
-
exit; // Exit if accessed directly.
|
10 |
-
}
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Handles log entries by writing to a file.
|
14 |
-
*
|
15 |
-
* @class Cartflows_Log_Handler_File
|
16 |
-
* @version 1.0.0
|
17 |
-
* @package WooCommerce/Classes/Log_Handlers
|
18 |
-
*/
|
19 |
-
class Cartflows_Log_Handler_File extends Cartflows_Log_Handler {
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Stores open file handles.
|
23 |
-
*
|
24 |
-
* @var array
|
25 |
-
*/
|
26 |
-
protected $handles = array();
|
27 |
-
|
28 |
-
/**
|
29 |
-
* File size limit for log files in bytes.
|
30 |
-
*
|
31 |
-
* @var int
|
32 |
-
*/
|
33 |
-
protected $log_size_limit;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Cache logs that could not be written.
|
37 |
-
*
|
38 |
-
* If a log is written too early in the request, pluggable functions may be unavailable. These
|
39 |
-
* logs will be cached and written on 'plugins_loaded' action.
|
40 |
-
*
|
41 |
-
* @var array
|
42 |
-
*/
|
43 |
-
protected $cached_logs = array();
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Constructor for the logger.
|
47 |
-
*
|
48 |
-
* @param int $log_size_limit Optional. Size limit for log files. Default 5mb.
|
49 |
-
*/
|
50 |
-
public function __construct( $log_size_limit = null ) {
|
51 |
-
if ( null === $log_size_limit ) {
|
52 |
-
$log_size_limit = 5 * 1024 * 1024;
|
53 |
-
}
|
54 |
-
|
55 |
-
$this->log_size_limit = apply_filters( 'cartflows_log_file_size_limit', $log_size_limit );
|
56 |
-
|
57 |
-
add_action( 'plugins_loaded', array( $this, 'write_cached_logs' ) );
|
58 |
-
}
|
59 |
-
|
60 |
-
/**
|
61 |
-
* Destructor.
|
62 |
-
*
|
63 |
-
* Cleans up open file handles.
|
64 |
-
*/
|
65 |
-
public function __destruct() {
|
66 |
-
foreach ( $this->handles as $handle ) {
|
67 |
-
if ( is_resource( $handle ) ) {
|
68 |
-
fclose( $handle ); // @codingStandardsIgnoreLine.
|
69 |
-
}
|
70 |
-
}
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* Handle a log entry.
|
75 |
-
*
|
76 |
-
* @param int $timestamp Log timestamp.
|
77 |
-
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
78 |
-
* @param string $message Log message.
|
79 |
-
* @param array $context {
|
80 |
-
* Additional information for log handlers.
|
81 |
-
*
|
82 |
-
* @type string $source Optional. Determines log file to write to. Default 'log'.
|
83 |
-
* @type bool $_legacy Optional. Default false. True to use outdated log format
|
84 |
-
* originally used in deprecated Cartflows_WC_Logger::add calls.
|
85 |
-
* }
|
86 |
-
*
|
87 |
-
* @return bool False if value was not handled and true if value was handled.
|
88 |
-
*/
|
89 |
-
public function handle( $timestamp, $level, $message, $context ) {
|
90 |
-
|
91 |
-
if ( isset( $context['source'] ) && $context['source'] ) {
|
92 |
-
$handle = $context['source'];
|
93 |
-
} else {
|
94 |
-
$handle = 'log';
|
95 |
-
}
|
96 |
-
|
97 |
-
$entry = self::format_entry( $timestamp, $level, $message, $context );
|
98 |
-
|
99 |
-
return $this->add( $entry, $handle );
|
100 |
-
}
|
101 |
-
|
102 |
-
/**
|
103 |
-
* Builds a log entry text from timestamp, level and message.
|
104 |
-
*
|
105 |
-
* @param int $timestamp Log timestamp.
|
106 |
-
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
107 |
-
* @param string $message Log message.
|
108 |
-
* @param array $context Additional information for log handlers.
|
109 |
-
*
|
110 |
-
* @return string Formatted log entry.
|
111 |
-
*/
|
112 |
-
protected static function format_entry( $timestamp, $level, $message, $context ) {
|
113 |
-
|
114 |
-
if ( isset( $context['_legacy'] ) && true === $context['_legacy'] ) {
|
115 |
-
if ( isset( $context['source'] ) && $context['source'] ) {
|
116 |
-
$handle = $context['source'];
|
117 |
-
} else {
|
118 |
-
$handle = 'log';
|
119 |
-
}
|
120 |
-
$message = apply_filters( 'cartflows_logger_add_message', $message, $handle );
|
121 |
-
$time = date_i18n( 'm-d-Y @ H:i:s' );
|
122 |
-
$entry = "{$time} - {$message}";
|
123 |
-
} else {
|
124 |
-
$entry = parent::format_entry( $timestamp, $level, $message, $context );
|
125 |
-
}
|
126 |
-
|
127 |
-
return $entry;
|
128 |
-
}
|
129 |
-
|
130 |
-
/**
|
131 |
-
* Open log file for writing.
|
132 |
-
*
|
133 |
-
* @param string $handle Log handle.
|
134 |
-
* @param string $mode Optional. File mode. Default 'a'.
|
135 |
-
* @return bool Success.
|
136 |
-
*/
|
137 |
-
protected function open( $handle, $mode = 'a' ) {
|
138 |
-
if ( $this->is_open( $handle ) ) {
|
139 |
-
return true;
|
140 |
-
}
|
141 |
-
|
142 |
-
$file = self::get_log_file_path( $handle );
|
143 |
-
|
144 |
-
if ( $file ) {
|
145 |
-
if ( ! file_exists( $file ) ) {
|
146 |
-
$temphandle = @fopen( $file, 'w+' ); // @codingStandardsIgnoreLine.
|
147 |
-
@fclose( $temphandle ); // @codingStandardsIgnoreLine.
|
148 |
-
|
149 |
-
if ( defined( 'FS_CHMOD_FILE' ) ) {
|
150 |
-
@chmod( $file, FS_CHMOD_FILE ); // @codingStandardsIgnoreLine.
|
151 |
-
}
|
152 |
-
}
|
153 |
-
|
154 |
-
$resource = @fopen( $file, $mode ); // @codingStandardsIgnoreLine.
|
155 |
-
|
156 |
-
if ( $resource ) {
|
157 |
-
$this->handles[ $handle ] = $resource;
|
158 |
-
return true;
|
159 |
-
}
|
160 |
-
}
|
161 |
-
|
162 |
-
return false;
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* Check if a handle is open.
|
167 |
-
*
|
168 |
-
* @param string $handle Log handle.
|
169 |
-
* @return bool True if $handle is open.
|
170 |
-
*/
|
171 |
-
protected function is_open( $handle ) {
|
172 |
-
return array_key_exists( $handle, $this->handles ) && is_resource( $this->handles[ $handle ] );
|
173 |
-
}
|
174 |
-
|
175 |
-
/**
|
176 |
-
* Close a handle.
|
177 |
-
*
|
178 |
-
* @param string $handle Log handle.
|
179 |
-
* @return bool success
|
180 |
-
*/
|
181 |
-
protected function close( $handle ) {
|
182 |
-
$result = false;
|
183 |
-
|
184 |
-
if ( $this->is_open( $handle ) ) {
|
185 |
-
$result = fclose( $this->handles[ $handle ] ); // @codingStandardsIgnoreLine.
|
186 |
-
unset( $this->handles[ $handle ] );
|
187 |
-
}
|
188 |
-
|
189 |
-
return $result;
|
190 |
-
}
|
191 |
-
|
192 |
-
/**
|
193 |
-
* Add a log entry to chosen file.
|
194 |
-
*
|
195 |
-
* @param string $entry Log entry text.
|
196 |
-
* @param string $handle Log entry handle.
|
197 |
-
*
|
198 |
-
* @return bool True if write was successful.
|
199 |
-
*/
|
200 |
-
protected function add( $entry, $handle ) {
|
201 |
-
$result = false;
|
202 |
-
|
203 |
-
if ( $this->should_rotate( $handle ) ) {
|
204 |
-
$this->log_rotate( $handle );
|
205 |
-
}
|
206 |
-
|
207 |
-
if ( $this->open( $handle ) && is_resource( $this->handles[ $handle ] ) ) {
|
208 |
-
$result = fwrite( $this->handles[ $handle ], $entry . PHP_EOL ); // @codingStandardsIgnoreLine.
|
209 |
-
} else {
|
210 |
-
$this->cache_log( $entry, $handle );
|
211 |
-
}
|
212 |
-
|
213 |
-
return false !== $result;
|
214 |
-
}
|
215 |
-
|
216 |
-
/**
|
217 |
-
* Clear entries from chosen file.
|
218 |
-
*
|
219 |
-
* @param string $handle Log handle.
|
220 |
-
*
|
221 |
-
* @return bool
|
222 |
-
*/
|
223 |
-
public function clear( $handle ) {
|
224 |
-
$result = false;
|
225 |
-
|
226 |
-
// Close the file if it's already open.
|
227 |
-
$this->close( $handle );
|
228 |
-
|
229 |
-
/**
|
230 |
-
* $this->open( $handle, 'w' ) == Open the file for writing only. Place the file pointer at
|
231 |
-
* the beginning of the file, and truncate the file to zero length.
|
232 |
-
*/
|
233 |
-
if ( $this->open( $handle, 'w' ) && is_resource( $this->handles[ $handle ] ) ) {
|
234 |
-
$result = true;
|
235 |
-
}
|
236 |
-
|
237 |
-
do_action( 'cartflows_log_clear', $handle );
|
238 |
-
|
239 |
-
return $result;
|
240 |
-
}
|
241 |
-
|
242 |
-
/**
|
243 |
-
* Remove/delete the chosen file.
|
244 |
-
*
|
245 |
-
* @param string $handle Log handle.
|
246 |
-
*
|
247 |
-
* @return bool
|
248 |
-
*/
|
249 |
-
public function remove( $handle ) {
|
250 |
-
$removed = false;
|
251 |
-
$logs = $this->get_log_files();
|
252 |
-
$handle = sanitize_title( $handle );
|
253 |
-
|
254 |
-
if ( isset( $logs[ $handle ] ) && $logs[ $handle ] ) {
|
255 |
-
$file = realpath( trailingslashit( CARTFLOWS_LOG_DIR ) . $logs[ $handle ] );
|
256 |
-
if ( 0 === stripos( $file, realpath( trailingslashit( CARTFLOWS_LOG_DIR ) ) ) && is_file( $file ) && is_writable( $file ) ) { // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable
|
257 |
-
$this->close( $file ); // Close first to be certain no processes keep it alive after it is unlinked.
|
258 |
-
$removed = unlink( $file ); // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_unlink
|
259 |
-
}
|
260 |
-
do_action( 'cartflows_log_remove', $handle, $removed );
|
261 |
-
}
|
262 |
-
return $removed;
|
263 |
-
}
|
264 |
-
|
265 |
-
/**
|
266 |
-
* Check if log file should be rotated.
|
267 |
-
*
|
268 |
-
* Compares the size of the log file to determine whether it is over the size limit.
|
269 |
-
*
|
270 |
-
* @param string $handle Log handle.
|
271 |
-
* @return bool True if if should be rotated.
|
272 |
-
*/
|
273 |
-
protected function should_rotate( $handle ) {
|
274 |
-
$file = self::get_log_file_path( $handle );
|
275 |
-
if ( $file ) {
|
276 |
-
if ( $this->is_open( $handle ) ) {
|
277 |
-
$file_stat = fstat( $this->handles[ $handle ] );
|
278 |
-
return $file_stat['size'] > $this->log_size_limit;
|
279 |
-
} elseif ( file_exists( $file ) ) {
|
280 |
-
return filesize( $file ) > $this->log_size_limit;
|
281 |
-
} else {
|
282 |
-
return false;
|
283 |
-
}
|
284 |
-
} else {
|
285 |
-
return false;
|
286 |
-
}
|
287 |
-
}
|
288 |
-
|
289 |
-
/**
|
290 |
-
* Rotate log files.
|
291 |
-
*
|
292 |
-
* Logs are rotated by prepending '.x' to the '.log' suffix.
|
293 |
-
* The current log plus 10 historical logs are maintained.
|
294 |
-
* For example:
|
295 |
-
* base.9.log -> [ REMOVED ]
|
296 |
-
* base.8.log -> base.9.log
|
297 |
-
* ...
|
298 |
-
* base.0.log -> base.1.log
|
299 |
-
* base.log -> base.0.log
|
300 |
-
*
|
301 |
-
* @param string $handle Log handle.
|
302 |
-
*/
|
303 |
-
protected function log_rotate( $handle ) {
|
304 |
-
for ( $i = 8; $i >= 0; $i-- ) {
|
305 |
-
$this->increment_log_infix( $handle, $i );
|
306 |
-
}
|
307 |
-
$this->increment_log_infix( $handle );
|
308 |
-
}
|
309 |
-
|
310 |
-
/**
|
311 |
-
* Increment a log file suffix.
|
312 |
-
*
|
313 |
-
* @param string $handle Log handle.
|
314 |
-
* @param null|int $number Optional. Default null. Log suffix number to be incremented.
|
315 |
-
* @return bool True if increment was successful, otherwise false.
|
316 |
-
*/
|
317 |
-
protected function increment_log_infix( $handle, $number = null ) {
|
318 |
-
if ( null === $number ) {
|
319 |
-
$suffix = '';
|
320 |
-
$next_suffix = '.0';
|
321 |
-
} else {
|
322 |
-
$suffix = '.' . $number;
|
323 |
-
$next_suffix = '.' . ( $number + 1 );
|
324 |
-
}
|
325 |
-
|
326 |
-
$rename_from = self::get_log_file_path( "{$handle}{$suffix}" );
|
327 |
-
$rename_to = self::get_log_file_path( "{$handle}{$next_suffix}" );
|
328 |
-
|
329 |
-
if ( $this->is_open( $rename_from ) ) {
|
330 |
-
$this->close( $rename_from );
|
331 |
-
}
|
332 |
-
|
333 |
-
if ( is_writable( $rename_from ) ) { // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable
|
334 |
-
return rename( $rename_from, $rename_to ); // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_rename
|
335 |
-
} else {
|
336 |
-
return false;
|
337 |
-
}
|
338 |
-
|
339 |
-
}
|
340 |
-
|
341 |
-
/**
|
342 |
-
* Get a log file path.
|
343 |
-
*
|
344 |
-
* @param string $handle Log name.
|
345 |
-
* @return bool|string The log file path or false if path cannot be determined.
|
346 |
-
*/
|
347 |
-
public static function get_log_file_path( $handle ) {
|
348 |
-
if ( function_exists( 'wp_hash' ) ) {
|
349 |
-
return trailingslashit( CARTFLOWS_LOG_DIR ) . self::get_log_file_name( $handle );
|
350 |
-
} else {
|
351 |
-
wc_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'cartflows' ), '3.0' );
|
352 |
-
return false;
|
353 |
-
}
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* Get a log file name.
|
358 |
-
*
|
359 |
-
* File names consist of the handle, followed by the date, followed by a hash, .log.
|
360 |
-
*
|
361 |
-
* @since 3.3
|
362 |
-
* @param string $handle Log name.
|
363 |
-
* @return bool|string The log file name or false if cannot be determined.
|
364 |
-
*/
|
365 |
-
public static function get_log_file_name( $handle ) {
|
366 |
-
if ( function_exists( 'wp_hash' ) ) {
|
367 |
-
$date_suffix = date( 'Y-m-d', current_time( 'timestamp', true ) );
|
368 |
-
$hash_suffix = wp_hash( $handle );
|
369 |
-
return sanitize_file_name( implode( '-', array( $handle, $date_suffix, $hash_suffix ) ) . '.log' );
|
370 |
-
} else {
|
371 |
-
wc_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'cartflows' ), '3.3' );
|
372 |
-
return false;
|
373 |
-
}
|
374 |
-
}
|
375 |
-
|
376 |
-
/**
|
377 |
-
* Cache log to write later.
|
378 |
-
*
|
379 |
-
* @param string $entry Log entry text.
|
380 |
-
* @param string $handle Log entry handle.
|
381 |
-
*/
|
382 |
-
protected function cache_log( $entry, $handle ) {
|
383 |
-
$this->cached_logs[] = array(
|
384 |
-
'entry' => $entry,
|
385 |
-
'handle' => $handle,
|
386 |
-
);
|
387 |
-
}
|
388 |
-
|
389 |
-
/**
|
390 |
-
* Write cached logs.
|
391 |
-
*/
|
392 |
-
public function write_cached_logs() {
|
393 |
-
foreach ( $this->cached_logs as $log ) {
|
394 |
-
$this->add( $log['entry'], $log['handle'] );
|
395 |
-
}
|
396 |
-
}
|
397 |
-
|
398 |
-
/**
|
399 |
-
* Delete all logs older than a defined timestamp.
|
400 |
-
*
|
401 |
-
* @since 3.4.0
|
402 |
-
* @param integer $timestamp Timestamp to delete logs before.
|
403 |
-
*/
|
404 |
-
public static function delete_logs_before_timestamp( $timestamp = 0 ) {
|
405 |
-
if ( ! $timestamp ) {
|
406 |
-
return;
|
407 |
-
}
|
408 |
-
|
409 |
-
$log_files = self::get_log_files();
|
410 |
-
|
411 |
-
foreach ( $log_files as $log_file ) {
|
412 |
-
$last_modified = filemtime( trailingslashit( CARTFLOWS_LOG_DIR ) . $log_file );
|
413 |
-
|
414 |
-
if ( $last_modified < $timestamp ) {
|
415 |
-
@unlink( trailingslashit( CARTFLOWS_LOG_DIR ) . $log_file ); // @codingStandardsIgnoreLine.
|
416 |
-
}
|
417 |
-
}
|
418 |
-
}
|
419 |
-
|
420 |
-
/**
|
421 |
-
* Get all log files in the log directory.
|
422 |
-
*
|
423 |
-
* @since 3.4.0
|
424 |
-
* @return array
|
425 |
-
*/
|
426 |
-
public static function get_log_files() {
|
427 |
-
$files = @scandir( CARTFLOWS_LOG_DIR ); // @codingStandardsIgnoreLine.
|
428 |
-
$result = array();
|
429 |
-
|
430 |
-
if ( ! empty( $files ) ) {
|
431 |
-
foreach ( $files as $key => $value ) {
|
432 |
-
if ( ! in_array( $value, array( '.', '..' ), true ) ) {
|
433 |
-
if ( ! is_dir( $value ) && strstr( $value, '.log' ) ) {
|
434 |
-
$result[ sanitize_title( $value ) ] = $value;
|
435 |
-
}
|
436 |
-
}
|
437 |
-
}
|
438 |
-
}
|
439 |
-
|
440 |
-
return $result;
|
441 |
-
}
|
442 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class Cartflows_Log_Handler_File file.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\Log Handlers
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
+
exit; // Exit if accessed directly.
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Handles log entries by writing to a file.
|
14 |
+
*
|
15 |
+
* @class Cartflows_Log_Handler_File
|
16 |
+
* @version 1.0.0
|
17 |
+
* @package WooCommerce/Classes/Log_Handlers
|
18 |
+
*/
|
19 |
+
class Cartflows_Log_Handler_File extends Cartflows_Log_Handler {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Stores open file handles.
|
23 |
+
*
|
24 |
+
* @var array
|
25 |
+
*/
|
26 |
+
protected $handles = array();
|
27 |
+
|
28 |
+
/**
|
29 |
+
* File size limit for log files in bytes.
|
30 |
+
*
|
31 |
+
* @var int
|
32 |
+
*/
|
33 |
+
protected $log_size_limit;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Cache logs that could not be written.
|
37 |
+
*
|
38 |
+
* If a log is written too early in the request, pluggable functions may be unavailable. These
|
39 |
+
* logs will be cached and written on 'plugins_loaded' action.
|
40 |
+
*
|
41 |
+
* @var array
|
42 |
+
*/
|
43 |
+
protected $cached_logs = array();
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Constructor for the logger.
|
47 |
+
*
|
48 |
+
* @param int $log_size_limit Optional. Size limit for log files. Default 5mb.
|
49 |
+
*/
|
50 |
+
public function __construct( $log_size_limit = null ) {
|
51 |
+
if ( null === $log_size_limit ) {
|
52 |
+
$log_size_limit = 5 * 1024 * 1024;
|
53 |
+
}
|
54 |
+
|
55 |
+
$this->log_size_limit = apply_filters( 'cartflows_log_file_size_limit', $log_size_limit );
|
56 |
+
|
57 |
+
add_action( 'plugins_loaded', array( $this, 'write_cached_logs' ) );
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Destructor.
|
62 |
+
*
|
63 |
+
* Cleans up open file handles.
|
64 |
+
*/
|
65 |
+
public function __destruct() {
|
66 |
+
foreach ( $this->handles as $handle ) {
|
67 |
+
if ( is_resource( $handle ) ) {
|
68 |
+
fclose( $handle ); // @codingStandardsIgnoreLine.
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Handle a log entry.
|
75 |
+
*
|
76 |
+
* @param int $timestamp Log timestamp.
|
77 |
+
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
78 |
+
* @param string $message Log message.
|
79 |
+
* @param array $context {
|
80 |
+
* Additional information for log handlers.
|
81 |
+
*
|
82 |
+
* @type string $source Optional. Determines log file to write to. Default 'log'.
|
83 |
+
* @type bool $_legacy Optional. Default false. True to use outdated log format
|
84 |
+
* originally used in deprecated Cartflows_WC_Logger::add calls.
|
85 |
+
* }
|
86 |
+
*
|
87 |
+
* @return bool False if value was not handled and true if value was handled.
|
88 |
+
*/
|
89 |
+
public function handle( $timestamp, $level, $message, $context ) {
|
90 |
+
|
91 |
+
if ( isset( $context['source'] ) && $context['source'] ) {
|
92 |
+
$handle = $context['source'];
|
93 |
+
} else {
|
94 |
+
$handle = 'log';
|
95 |
+
}
|
96 |
+
|
97 |
+
$entry = self::format_entry( $timestamp, $level, $message, $context );
|
98 |
+
|
99 |
+
return $this->add( $entry, $handle );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Builds a log entry text from timestamp, level and message.
|
104 |
+
*
|
105 |
+
* @param int $timestamp Log timestamp.
|
106 |
+
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
107 |
+
* @param string $message Log message.
|
108 |
+
* @param array $context Additional information for log handlers.
|
109 |
+
*
|
110 |
+
* @return string Formatted log entry.
|
111 |
+
*/
|
112 |
+
protected static function format_entry( $timestamp, $level, $message, $context ) {
|
113 |
+
|
114 |
+
if ( isset( $context['_legacy'] ) && true === $context['_legacy'] ) {
|
115 |
+
if ( isset( $context['source'] ) && $context['source'] ) {
|
116 |
+
$handle = $context['source'];
|
117 |
+
} else {
|
118 |
+
$handle = 'log';
|
119 |
+
}
|
120 |
+
$message = apply_filters( 'cartflows_logger_add_message', $message, $handle );
|
121 |
+
$time = date_i18n( 'm-d-Y @ H:i:s' );
|
122 |
+
$entry = "{$time} - {$message}";
|
123 |
+
} else {
|
124 |
+
$entry = parent::format_entry( $timestamp, $level, $message, $context );
|
125 |
+
}
|
126 |
+
|
127 |
+
return $entry;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Open log file for writing.
|
132 |
+
*
|
133 |
+
* @param string $handle Log handle.
|
134 |
+
* @param string $mode Optional. File mode. Default 'a'.
|
135 |
+
* @return bool Success.
|
136 |
+
*/
|
137 |
+
protected function open( $handle, $mode = 'a' ) {
|
138 |
+
if ( $this->is_open( $handle ) ) {
|
139 |
+
return true;
|
140 |
+
}
|
141 |
+
|
142 |
+
$file = self::get_log_file_path( $handle );
|
143 |
+
|
144 |
+
if ( $file ) {
|
145 |
+
if ( ! file_exists( $file ) ) {
|
146 |
+
$temphandle = @fopen( $file, 'w+' ); // @codingStandardsIgnoreLine.
|
147 |
+
@fclose( $temphandle ); // @codingStandardsIgnoreLine.
|
148 |
+
|
149 |
+
if ( defined( 'FS_CHMOD_FILE' ) ) {
|
150 |
+
@chmod( $file, FS_CHMOD_FILE ); // @codingStandardsIgnoreLine.
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
$resource = @fopen( $file, $mode ); // @codingStandardsIgnoreLine.
|
155 |
+
|
156 |
+
if ( $resource ) {
|
157 |
+
$this->handles[ $handle ] = $resource;
|
158 |
+
return true;
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
return false;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Check if a handle is open.
|
167 |
+
*
|
168 |
+
* @param string $handle Log handle.
|
169 |
+
* @return bool True if $handle is open.
|
170 |
+
*/
|
171 |
+
protected function is_open( $handle ) {
|
172 |
+
return array_key_exists( $handle, $this->handles ) && is_resource( $this->handles[ $handle ] );
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
* Close a handle.
|
177 |
+
*
|
178 |
+
* @param string $handle Log handle.
|
179 |
+
* @return bool success
|
180 |
+
*/
|
181 |
+
protected function close( $handle ) {
|
182 |
+
$result = false;
|
183 |
+
|
184 |
+
if ( $this->is_open( $handle ) ) {
|
185 |
+
$result = fclose( $this->handles[ $handle ] ); // @codingStandardsIgnoreLine.
|
186 |
+
unset( $this->handles[ $handle ] );
|
187 |
+
}
|
188 |
+
|
189 |
+
return $result;
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Add a log entry to chosen file.
|
194 |
+
*
|
195 |
+
* @param string $entry Log entry text.
|
196 |
+
* @param string $handle Log entry handle.
|
197 |
+
*
|
198 |
+
* @return bool True if write was successful.
|
199 |
+
*/
|
200 |
+
protected function add( $entry, $handle ) {
|
201 |
+
$result = false;
|
202 |
+
|
203 |
+
if ( $this->should_rotate( $handle ) ) {
|
204 |
+
$this->log_rotate( $handle );
|
205 |
+
}
|
206 |
+
|
207 |
+
if ( $this->open( $handle ) && is_resource( $this->handles[ $handle ] ) ) {
|
208 |
+
$result = fwrite( $this->handles[ $handle ], $entry . PHP_EOL ); // @codingStandardsIgnoreLine.
|
209 |
+
} else {
|
210 |
+
$this->cache_log( $entry, $handle );
|
211 |
+
}
|
212 |
+
|
213 |
+
return false !== $result;
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Clear entries from chosen file.
|
218 |
+
*
|
219 |
+
* @param string $handle Log handle.
|
220 |
+
*
|
221 |
+
* @return bool
|
222 |
+
*/
|
223 |
+
public function clear( $handle ) {
|
224 |
+
$result = false;
|
225 |
+
|
226 |
+
// Close the file if it's already open.
|
227 |
+
$this->close( $handle );
|
228 |
+
|
229 |
+
/**
|
230 |
+
* $this->open( $handle, 'w' ) == Open the file for writing only. Place the file pointer at
|
231 |
+
* the beginning of the file, and truncate the file to zero length.
|
232 |
+
*/
|
233 |
+
if ( $this->open( $handle, 'w' ) && is_resource( $this->handles[ $handle ] ) ) {
|
234 |
+
$result = true;
|
235 |
+
}
|
236 |
+
|
237 |
+
do_action( 'cartflows_log_clear', $handle );
|
238 |
+
|
239 |
+
return $result;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Remove/delete the chosen file.
|
244 |
+
*
|
245 |
+
* @param string $handle Log handle.
|
246 |
+
*
|
247 |
+
* @return bool
|
248 |
+
*/
|
249 |
+
public function remove( $handle ) {
|
250 |
+
$removed = false;
|
251 |
+
$logs = $this->get_log_files();
|
252 |
+
$handle = sanitize_title( $handle );
|
253 |
+
|
254 |
+
if ( isset( $logs[ $handle ] ) && $logs[ $handle ] ) {
|
255 |
+
$file = realpath( trailingslashit( CARTFLOWS_LOG_DIR ) . $logs[ $handle ] );
|
256 |
+
if ( 0 === stripos( $file, realpath( trailingslashit( CARTFLOWS_LOG_DIR ) ) ) && is_file( $file ) && is_writable( $file ) ) { // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable
|
257 |
+
$this->close( $file ); // Close first to be certain no processes keep it alive after it is unlinked.
|
258 |
+
$removed = unlink( $file ); // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_unlink
|
259 |
+
}
|
260 |
+
do_action( 'cartflows_log_remove', $handle, $removed );
|
261 |
+
}
|
262 |
+
return $removed;
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Check if log file should be rotated.
|
267 |
+
*
|
268 |
+
* Compares the size of the log file to determine whether it is over the size limit.
|
269 |
+
*
|
270 |
+
* @param string $handle Log handle.
|
271 |
+
* @return bool True if if should be rotated.
|
272 |
+
*/
|
273 |
+
protected function should_rotate( $handle ) {
|
274 |
+
$file = self::get_log_file_path( $handle );
|
275 |
+
if ( $file ) {
|
276 |
+
if ( $this->is_open( $handle ) ) {
|
277 |
+
$file_stat = fstat( $this->handles[ $handle ] );
|
278 |
+
return $file_stat['size'] > $this->log_size_limit;
|
279 |
+
} elseif ( file_exists( $file ) ) {
|
280 |
+
return filesize( $file ) > $this->log_size_limit;
|
281 |
+
} else {
|
282 |
+
return false;
|
283 |
+
}
|
284 |
+
} else {
|
285 |
+
return false;
|
286 |
+
}
|
287 |
+
}
|
288 |
+
|
289 |
+
/**
|
290 |
+
* Rotate log files.
|
291 |
+
*
|
292 |
+
* Logs are rotated by prepending '.x' to the '.log' suffix.
|
293 |
+
* The current log plus 10 historical logs are maintained.
|
294 |
+
* For example:
|
295 |
+
* base.9.log -> [ REMOVED ]
|
296 |
+
* base.8.log -> base.9.log
|
297 |
+
* ...
|
298 |
+
* base.0.log -> base.1.log
|
299 |
+
* base.log -> base.0.log
|
300 |
+
*
|
301 |
+
* @param string $handle Log handle.
|
302 |
+
*/
|
303 |
+
protected function log_rotate( $handle ) {
|
304 |
+
for ( $i = 8; $i >= 0; $i-- ) {
|
305 |
+
$this->increment_log_infix( $handle, $i );
|
306 |
+
}
|
307 |
+
$this->increment_log_infix( $handle );
|
308 |
+
}
|
309 |
+
|
310 |
+
/**
|
311 |
+
* Increment a log file suffix.
|
312 |
+
*
|
313 |
+
* @param string $handle Log handle.
|
314 |
+
* @param null|int $number Optional. Default null. Log suffix number to be incremented.
|
315 |
+
* @return bool True if increment was successful, otherwise false.
|
316 |
+
*/
|
317 |
+
protected function increment_log_infix( $handle, $number = null ) {
|
318 |
+
if ( null === $number ) {
|
319 |
+
$suffix = '';
|
320 |
+
$next_suffix = '.0';
|
321 |
+
} else {
|
322 |
+
$suffix = '.' . $number;
|
323 |
+
$next_suffix = '.' . ( $number + 1 );
|
324 |
+
}
|
325 |
+
|
326 |
+
$rename_from = self::get_log_file_path( "{$handle}{$suffix}" );
|
327 |
+
$rename_to = self::get_log_file_path( "{$handle}{$next_suffix}" );
|
328 |
+
|
329 |
+
if ( $this->is_open( $rename_from ) ) {
|
330 |
+
$this->close( $rename_from );
|
331 |
+
}
|
332 |
+
|
333 |
+
if ( is_writable( $rename_from ) ) { // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable
|
334 |
+
return rename( $rename_from, $rename_to ); // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_rename
|
335 |
+
} else {
|
336 |
+
return false;
|
337 |
+
}
|
338 |
+
|
339 |
+
}
|
340 |
+
|
341 |
+
/**
|
342 |
+
* Get a log file path.
|
343 |
+
*
|
344 |
+
* @param string $handle Log name.
|
345 |
+
* @return bool|string The log file path or false if path cannot be determined.
|
346 |
+
*/
|
347 |
+
public static function get_log_file_path( $handle ) {
|
348 |
+
if ( function_exists( 'wp_hash' ) ) {
|
349 |
+
return trailingslashit( CARTFLOWS_LOG_DIR ) . self::get_log_file_name( $handle );
|
350 |
+
} else {
|
351 |
+
wc_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'cartflows' ), '3.0' );
|
352 |
+
return false;
|
353 |
+
}
|
354 |
+
}
|
355 |
+
|
356 |
+
/**
|
357 |
+
* Get a log file name.
|
358 |
+
*
|
359 |
+
* File names consist of the handle, followed by the date, followed by a hash, .log.
|
360 |
+
*
|
361 |
+
* @since 3.3
|
362 |
+
* @param string $handle Log name.
|
363 |
+
* @return bool|string The log file name or false if cannot be determined.
|
364 |
+
*/
|
365 |
+
public static function get_log_file_name( $handle ) {
|
366 |
+
if ( function_exists( 'wp_hash' ) ) {
|
367 |
+
$date_suffix = date( 'Y-m-d', current_time( 'timestamp', true ) );
|
368 |
+
$hash_suffix = wp_hash( $handle );
|
369 |
+
return sanitize_file_name( implode( '-', array( $handle, $date_suffix, $hash_suffix ) ) . '.log' );
|
370 |
+
} else {
|
371 |
+
wc_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'cartflows' ), '3.3' );
|
372 |
+
return false;
|
373 |
+
}
|
374 |
+
}
|
375 |
+
|
376 |
+
/**
|
377 |
+
* Cache log to write later.
|
378 |
+
*
|
379 |
+
* @param string $entry Log entry text.
|
380 |
+
* @param string $handle Log entry handle.
|
381 |
+
*/
|
382 |
+
protected function cache_log( $entry, $handle ) {
|
383 |
+
$this->cached_logs[] = array(
|
384 |
+
'entry' => $entry,
|
385 |
+
'handle' => $handle,
|
386 |
+
);
|
387 |
+
}
|
388 |
+
|
389 |
+
/**
|
390 |
+
* Write cached logs.
|
391 |
+
*/
|
392 |
+
public function write_cached_logs() {
|
393 |
+
foreach ( $this->cached_logs as $log ) {
|
394 |
+
$this->add( $log['entry'], $log['handle'] );
|
395 |
+
}
|
396 |
+
}
|
397 |
+
|
398 |
+
/**
|
399 |
+
* Delete all logs older than a defined timestamp.
|
400 |
+
*
|
401 |
+
* @since 3.4.0
|
402 |
+
* @param integer $timestamp Timestamp to delete logs before.
|
403 |
+
*/
|
404 |
+
public static function delete_logs_before_timestamp( $timestamp = 0 ) {
|
405 |
+
if ( ! $timestamp ) {
|
406 |
+
return;
|
407 |
+
}
|
408 |
+
|
409 |
+
$log_files = self::get_log_files();
|
410 |
+
|
411 |
+
foreach ( $log_files as $log_file ) {
|
412 |
+
$last_modified = filemtime( trailingslashit( CARTFLOWS_LOG_DIR ) . $log_file );
|
413 |
+
|
414 |
+
if ( $last_modified < $timestamp ) {
|
415 |
+
@unlink( trailingslashit( CARTFLOWS_LOG_DIR ) . $log_file ); // @codingStandardsIgnoreLine.
|
416 |
+
}
|
417 |
+
}
|
418 |
+
}
|
419 |
+
|
420 |
+
/**
|
421 |
+
* Get all log files in the log directory.
|
422 |
+
*
|
423 |
+
* @since 3.4.0
|
424 |
+
* @return array
|
425 |
+
*/
|
426 |
+
public static function get_log_files() {
|
427 |
+
$files = @scandir( CARTFLOWS_LOG_DIR ); // @codingStandardsIgnoreLine.
|
428 |
+
$result = array();
|
429 |
+
|
430 |
+
if ( ! empty( $files ) ) {
|
431 |
+
foreach ( $files as $key => $value ) {
|
432 |
+
if ( ! in_array( $value, array( '.', '..' ), true ) ) {
|
433 |
+
if ( ! is_dir( $value ) && strstr( $value, '.log' ) ) {
|
434 |
+
$result[ sanitize_title( $value ) ] = $value;
|
435 |
+
}
|
436 |
+
}
|
437 |
+
}
|
438 |
+
}
|
439 |
+
|
440 |
+
return $result;
|
441 |
+
}
|
442 |
+
}
|
classes/logger/class-cartflows-log-handler-interface.php
CHANGED
@@ -1,33 +1,33 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Log Handler Interface
|
4 |
-
*
|
5 |
-
* @version 3.3.0
|
6 |
-
* @package WooCommerce/Interface
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit; // Exit if accessed directly.
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* WC Log Handler Interface
|
15 |
-
*
|
16 |
-
* Functions that must be defined to correctly fulfill log handler API.
|
17 |
-
*
|
18 |
-
* @version 3.3.0
|
19 |
-
*/
|
20 |
-
interface Cartflows_Log_Handler_Interface {
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Handle a log entry.
|
24 |
-
*
|
25 |
-
* @param int $timestamp Log timestamp.
|
26 |
-
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
27 |
-
* @param string $message Log message.
|
28 |
-
* @param array $context Additional information for log handlers.
|
29 |
-
*
|
30 |
-
* @return bool False if value was not handled and true if value was handled.
|
31 |
-
*/
|
32 |
-
public function handle( $timestamp, $level, $message, $context );
|
33 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Log Handler Interface
|
4 |
+
*
|
5 |
+
* @version 3.3.0
|
6 |
+
* @package WooCommerce/Interface
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit; // Exit if accessed directly.
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* WC Log Handler Interface
|
15 |
+
*
|
16 |
+
* Functions that must be defined to correctly fulfill log handler API.
|
17 |
+
*
|
18 |
+
* @version 3.3.0
|
19 |
+
*/
|
20 |
+
interface Cartflows_Log_Handler_Interface {
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Handle a log entry.
|
24 |
+
*
|
25 |
+
* @param int $timestamp Log timestamp.
|
26 |
+
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
27 |
+
* @param string $message Log message.
|
28 |
+
* @param array $context Additional information for log handlers.
|
29 |
+
*
|
30 |
+
* @return bool False if value was not handled and true if value was handled.
|
31 |
+
*/
|
32 |
+
public function handle( $timestamp, $level, $message, $context );
|
33 |
+
}
|
classes/logger/class-cartflows-log-handler.php
CHANGED
@@ -1,57 +1,57 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Log handling functionality.
|
4 |
-
*
|
5 |
-
* @class Cartflows_Log_Handler
|
6 |
-
* @package WooCommerce/Abstracts
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit; // Exit if accessed directly.
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Abstract WC Log Handler Class
|
15 |
-
*
|
16 |
-
* @version 1.0.0
|
17 |
-
* @package WooCommerce/Abstracts
|
18 |
-
*/
|
19 |
-
abstract class Cartflows_Log_Handler implements Cartflows_Log_Handler_Interface {
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Formats a timestamp for use in log messages.
|
23 |
-
*
|
24 |
-
* @param int $timestamp Log timestamp.
|
25 |
-
* @return string Formatted time for use in log entry.
|
26 |
-
*/
|
27 |
-
protected static function format_time( $timestamp ) {
|
28 |
-
return date( 'c', $timestamp );
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Builds a log entry text from level, timestamp and message.
|
33 |
-
*
|
34 |
-
* @param int $timestamp Log timestamp.
|
35 |
-
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
36 |
-
* @param string $message Log message.
|
37 |
-
* @param array $context Additional information for log handlers.
|
38 |
-
*
|
39 |
-
* @return string Formatted log entry.
|
40 |
-
*/
|
41 |
-
protected static function format_entry( $timestamp, $level, $message, $context ) {
|
42 |
-
$time_string = self::format_time( $timestamp );
|
43 |
-
$level_string = strtoupper( $level );
|
44 |
-
$entry = "{$time_string} {$level_string} {$message}";
|
45 |
-
|
46 |
-
return apply_filters(
|
47 |
-
'cartflows_format_log_entry',
|
48 |
-
$entry,
|
49 |
-
array(
|
50 |
-
'timestamp' => $timestamp,
|
51 |
-
'level' => $level,
|
52 |
-
'message' => $message,
|
53 |
-
'context' => $context,
|
54 |
-
)
|
55 |
-
);
|
56 |
-
}
|
57 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Log handling functionality.
|
4 |
+
*
|
5 |
+
* @class Cartflows_Log_Handler
|
6 |
+
* @package WooCommerce/Abstracts
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit; // Exit if accessed directly.
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Abstract WC Log Handler Class
|
15 |
+
*
|
16 |
+
* @version 1.0.0
|
17 |
+
* @package WooCommerce/Abstracts
|
18 |
+
*/
|
19 |
+
abstract class Cartflows_Log_Handler implements Cartflows_Log_Handler_Interface {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Formats a timestamp for use in log messages.
|
23 |
+
*
|
24 |
+
* @param int $timestamp Log timestamp.
|
25 |
+
* @return string Formatted time for use in log entry.
|
26 |
+
*/
|
27 |
+
protected static function format_time( $timestamp ) {
|
28 |
+
return date( 'c', $timestamp );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Builds a log entry text from level, timestamp and message.
|
33 |
+
*
|
34 |
+
* @param int $timestamp Log timestamp.
|
35 |
+
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
36 |
+
* @param string $message Log message.
|
37 |
+
* @param array $context Additional information for log handlers.
|
38 |
+
*
|
39 |
+
* @return string Formatted log entry.
|
40 |
+
*/
|
41 |
+
protected static function format_entry( $timestamp, $level, $message, $context ) {
|
42 |
+
$time_string = self::format_time( $timestamp );
|
43 |
+
$level_string = strtoupper( $level );
|
44 |
+
$entry = "{$time_string} {$level_string} {$message}";
|
45 |
+
|
46 |
+
return apply_filters(
|
47 |
+
'cartflows_format_log_entry',
|
48 |
+
$entry,
|
49 |
+
array(
|
50 |
+
'timestamp' => $timestamp,
|
51 |
+
'level' => $level,
|
52 |
+
'message' => $message,
|
53 |
+
'context' => $context,
|
54 |
+
)
|
55 |
+
);
|
56 |
+
}
|
57 |
+
}
|
classes/logger/class-cartflows-log-levels.php
CHANGED
@@ -1,108 +1,108 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Standard log levels
|
4 |
-
*
|
5 |
-
* @version 3.2.0
|
6 |
-
* @package WooCommerce/Classes
|
7 |
-
*/
|
8 |
-
|
9 |
-
defined( 'ABSPATH' ) || exit;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Log levels class.
|
13 |
-
*/
|
14 |
-
abstract class Cartflows_Log_Levels {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Log Levels
|
18 |
-
*
|
19 |
-
* Description of levels:
|
20 |
-
* 'emergency': System is unusable.
|
21 |
-
* 'alert': Action must be taken immediately.
|
22 |
-
* 'critical': Critical conditions.
|
23 |
-
* 'error': Error conditions.
|
24 |
-
* 'warning': Warning conditions.
|
25 |
-
* 'notice': Normal but significant condition.
|
26 |
-
* 'info': Informational messages.
|
27 |
-
* 'debug': Debug-level messages.
|
28 |
-
*
|
29 |
-
* @see @link {https://tools.ietf.org/html/rfc5424}
|
30 |
-
*/
|
31 |
-
const EMERGENCY = 'emergency';
|
32 |
-
const ALERT = 'alert';
|
33 |
-
const CRITICAL = 'critical';
|
34 |
-
const ERROR = 'error';
|
35 |
-
const WARNING = 'warning';
|
36 |
-
const NOTICE = 'notice';
|
37 |
-
const INFO = 'info';
|
38 |
-
const DEBUG = 'debug';
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Level strings mapped to integer severity.
|
42 |
-
*
|
43 |
-
* @var array
|
44 |
-
*/
|
45 |
-
protected static $level_to_severity = array(
|
46 |
-
self::EMERGENCY => 800,
|
47 |
-
self::ALERT => 700,
|
48 |
-
self::CRITICAL => 600,
|
49 |
-
self::ERROR => 500,
|
50 |
-
self::WARNING => 400,
|
51 |
-
self::NOTICE => 300,
|
52 |
-
self::INFO => 200,
|
53 |
-
self::DEBUG => 100,
|
54 |
-
);
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Severity integers mapped to level strings.
|
58 |
-
*
|
59 |
-
* This is the inverse of $level_severity.
|
60 |
-
*
|
61 |
-
* @var array
|
62 |
-
*/
|
63 |
-
protected static $severity_to_level = array(
|
64 |
-
800 => self::EMERGENCY,
|
65 |
-
700 => self::ALERT,
|
66 |
-
600 => self::CRITICAL,
|
67 |
-
500 => self::ERROR,
|
68 |
-
400 => self::WARNING,
|
69 |
-
300 => self::NOTICE,
|
70 |
-
200 => self::INFO,
|
71 |
-
100 => self::DEBUG,
|
72 |
-
);
|
73 |
-
|
74 |
-
|
75 |
-
/**
|
76 |
-
* Validate a level string.
|
77 |
-
*
|
78 |
-
* @param string $level Log level.
|
79 |
-
* @return bool True if $level is a valid level.
|
80 |
-
*/
|
81 |
-
public static function is_valid_level( $level ) {
|
82 |
-
return array_key_exists( strtolower( $level ), self::$level_to_severity );
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Translate level string to integer.
|
87 |
-
*
|
88 |
-
* @param string $level Log level, options: emergency|alert|critical|error|warning|notice|info|debug.
|
89 |
-
* @return int 100 (debug) - 800 (emergency) or 0 if not recognized
|
90 |
-
*/
|
91 |
-
public static function get_level_severity( $level ) {
|
92 |
-
return self::is_valid_level( $level ) ? self::$level_to_severity[ strtolower( $level ) ] : 0;
|
93 |
-
}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* Translate severity integer to level string.
|
97 |
-
*
|
98 |
-
* @param int $severity Serevity level.
|
99 |
-
* @return bool|string False if not recognized. Otherwise string representation of level.
|
100 |
-
*/
|
101 |
-
public static function get_severity_level( $severity ) {
|
102 |
-
if ( ! array_key_exists( $severity, self::$severity_to_level ) ) {
|
103 |
-
return false;
|
104 |
-
}
|
105 |
-
return self::$severity_to_level[ $severity ];
|
106 |
-
}
|
107 |
-
|
108 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Standard log levels
|
4 |
+
*
|
5 |
+
* @version 3.2.0
|
6 |
+
* @package WooCommerce/Classes
|
7 |
+
*/
|
8 |
+
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Log levels class.
|
13 |
+
*/
|
14 |
+
abstract class Cartflows_Log_Levels {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Log Levels
|
18 |
+
*
|
19 |
+
* Description of levels:
|
20 |
+
* 'emergency': System is unusable.
|
21 |
+
* 'alert': Action must be taken immediately.
|
22 |
+
* 'critical': Critical conditions.
|
23 |
+
* 'error': Error conditions.
|
24 |
+
* 'warning': Warning conditions.
|
25 |
+
* 'notice': Normal but significant condition.
|
26 |
+
* 'info': Informational messages.
|
27 |
+
* 'debug': Debug-level messages.
|
28 |
+
*
|
29 |
+
* @see @link {https://tools.ietf.org/html/rfc5424}
|
30 |
+
*/
|
31 |
+
const EMERGENCY = 'emergency';
|
32 |
+
const ALERT = 'alert';
|
33 |
+
const CRITICAL = 'critical';
|
34 |
+
const ERROR = 'error';
|
35 |
+
const WARNING = 'warning';
|
36 |
+
const NOTICE = 'notice';
|
37 |
+
const INFO = 'info';
|
38 |
+
const DEBUG = 'debug';
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Level strings mapped to integer severity.
|
42 |
+
*
|
43 |
+
* @var array
|
44 |
+
*/
|
45 |
+
protected static $level_to_severity = array(
|
46 |
+
self::EMERGENCY => 800,
|
47 |
+
self::ALERT => 700,
|
48 |
+
self::CRITICAL => 600,
|
49 |
+
self::ERROR => 500,
|
50 |
+
self::WARNING => 400,
|
51 |
+
self::NOTICE => 300,
|
52 |
+
self::INFO => 200,
|
53 |
+
self::DEBUG => 100,
|
54 |
+
);
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Severity integers mapped to level strings.
|
58 |
+
*
|
59 |
+
* This is the inverse of $level_severity.
|
60 |
+
*
|
61 |
+
* @var array
|
62 |
+
*/
|
63 |
+
protected static $severity_to_level = array(
|
64 |
+
800 => self::EMERGENCY,
|
65 |
+
700 => self::ALERT,
|
66 |
+
600 => self::CRITICAL,
|
67 |
+
500 => self::ERROR,
|
68 |
+
400 => self::WARNING,
|
69 |
+
300 => self::NOTICE,
|
70 |
+
200 => self::INFO,
|
71 |
+
100 => self::DEBUG,
|
72 |
+
);
|
73 |
+
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Validate a level string.
|
77 |
+
*
|
78 |
+
* @param string $level Log level.
|
79 |
+
* @return bool True if $level is a valid level.
|
80 |
+
*/
|
81 |
+
public static function is_valid_level( $level ) {
|
82 |
+
return array_key_exists( strtolower( $level ), self::$level_to_severity );
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Translate level string to integer.
|
87 |
+
*
|
88 |
+
* @param string $level Log level, options: emergency|alert|critical|error|warning|notice|info|debug.
|
89 |
+
* @return int 100 (debug) - 800 (emergency) or 0 if not recognized
|
90 |
+
*/
|
91 |
+
public static function get_level_severity( $level ) {
|
92 |
+
return self::is_valid_level( $level ) ? self::$level_to_severity[ strtolower( $level ) ] : 0;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Translate severity integer to level string.
|
97 |
+
*
|
98 |
+
* @param int $severity Serevity level.
|
99 |
+
* @return bool|string False if not recognized. Otherwise string representation of level.
|
100 |
+
*/
|
101 |
+
public static function get_severity_level( $severity ) {
|
102 |
+
if ( ! array_key_exists( $severity, self::$severity_to_level ) ) {
|
103 |
+
return false;
|
104 |
+
}
|
105 |
+
return self::$severity_to_level[ $severity ];
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
classes/logger/class-cartflows-logger-interface.php
CHANGED
@@ -1,139 +1,139 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Logger Interface
|
4 |
-
*
|
5 |
-
* @version 3.0.0
|
6 |
-
* @package WooCommerce/Interface
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit; // Exit if accessed directly.
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* WC Logger Interface
|
15 |
-
*
|
16 |
-
* Functions that must be defined to correctly fulfill logger API.
|
17 |
-
*
|
18 |
-
* @version 3.0.0
|
19 |
-
*/
|
20 |
-
interface Cartflows_WC_Logger_Interface {
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Add a log entry.
|
24 |
-
*
|
25 |
-
* This is not the preferred method for adding log messages. Please use log() or any one of
|
26 |
-
* the level methods (debug(), info(), etc.). This method may be deprecated in the future.
|
27 |
-
*
|
28 |
-
* @param string $handle File handle.
|
29 |
-
* @param string $message Log message.
|
30 |
-
* @param string $level Log level.
|
31 |
-
*
|
32 |
-
* @return bool True if log was added, otherwise false.
|
33 |
-
*/
|
34 |
-
public function add( $handle, $message, $level = Cartflows_Log_Levels::NOTICE );
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Add a log entry.
|
38 |
-
*
|
39 |
-
* @param string $level One of the following:
|
40 |
-
* 'emergency': System is unusable.
|
41 |
-
* 'alert': Action must be taken immediately.
|
42 |
-
* 'critical': Critical conditions.
|
43 |
-
* 'error': Error conditions.
|
44 |
-
* 'warning': Warning conditions.
|
45 |
-
* 'notice': Normal but significant condition.
|
46 |
-
* 'info': Informational messages.
|
47 |
-
* 'debug': Debug-level messages.
|
48 |
-
* @param string $message Log message.
|
49 |
-
* @param array $context Optional. Additional information for log handlers.
|
50 |
-
*/
|
51 |
-
public function log( $level, $message, $context = array() );
|
52 |
-
|
53 |
-
/**
|
54 |
-
* Adds an emergency level message.
|
55 |
-
*
|
56 |
-
* System is unusable.
|
57 |
-
*
|
58 |
-
* @param string $message Log message.
|
59 |
-
* @param array $context Optional. Additional information for log handlers.
|
60 |
-
*/
|
61 |
-
public function emergency( $message, $context = array() );
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Adds an alert level message.
|
65 |
-
*
|
66 |
-
* Action must be taken immediately.
|
67 |
-
* Example: Entire website down, database unavailable, etc.
|
68 |
-
*
|
69 |
-
* @param string $message Log message.
|
70 |
-
* @param array $context Optional. Additional information for log handlers.
|
71 |
-
*/
|
72 |
-
public function alert( $message, $context = array() );
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Adds a critical level message.
|
76 |
-
*
|
77 |
-
* Critical conditions.
|
78 |
-
* Example: Application component unavailable, unexpected exception.
|
79 |
-
*
|
80 |
-
* @param string $message Log message.
|
81 |
-
* @param array $context Optional. Additional information for log handlers.
|
82 |
-
*/
|
83 |
-
public function critical( $message, $context = array() );
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Adds an error level message.
|
87 |
-
*
|
88 |
-
* Runtime errors that do not require immediate action but should typically be logged
|
89 |
-
* and monitored.
|
90 |
-
*
|
91 |
-
* @param string $message Log message.
|
92 |
-
* @param array $context Optional. Additional information for log handlers.
|
93 |
-
*/
|
94 |
-
public function error( $message, $context = array() );
|
95 |
-
|
96 |
-
/**
|
97 |
-
* Adds a warning level message.
|
98 |
-
*
|
99 |
-
* Exceptional occurrences that are not errors.
|
100 |
-
*
|
101 |
-
* Example: Use of deprecated APIs, poor use of an API, undesirable things that are not
|
102 |
-
* necessarily wrong.
|
103 |
-
*
|
104 |
-
* @param string $message Log message.
|
105 |
-
* @param array $context Optional. Additional information for log handlers.
|
106 |
-
*/
|
107 |
-
public function warning( $message, $context = array() );
|
108 |
-
|
109 |
-
/**
|
110 |
-
* Adds a notice level message.
|
111 |
-
*
|
112 |
-
* Normal but significant events.
|
113 |
-
*
|
114 |
-
* @param string $message Log message.
|
115 |
-
* @param array $context Optional. Additional information for log handlers.
|
116 |
-
*/
|
117 |
-
public function notice( $message, $context = array() );
|
118 |
-
|
119 |
-
/**
|
120 |
-
* Adds a info level message.
|
121 |
-
*
|
122 |
-
* Interesting events.
|
123 |
-
* Example: User logs in, SQL logs.
|
124 |
-
*
|
125 |
-
* @param string $message Log message.
|
126 |
-
* @param array $context Optional. Additional information for log handlers.
|
127 |
-
*/
|
128 |
-
public function info( $message, $context = array() );
|
129 |
-
|
130 |
-
/**
|
131 |
-
* Adds a debug level message.
|
132 |
-
*
|
133 |
-
* Detailed debug information.
|
134 |
-
*
|
135 |
-
* @param string $message Log message.
|
136 |
-
* @param array $context Optional. Additional information for log handlers.
|
137 |
-
*/
|
138 |
-
public function debug( $message, $context = array() );
|
139 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Logger Interface
|
4 |
+
*
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package WooCommerce/Interface
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit; // Exit if accessed directly.
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* WC Logger Interface
|
15 |
+
*
|
16 |
+
* Functions that must be defined to correctly fulfill logger API.
|
17 |
+
*
|
18 |
+
* @version 3.0.0
|
19 |
+
*/
|
20 |
+
interface Cartflows_WC_Logger_Interface {
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Add a log entry.
|
24 |
+
*
|
25 |
+
* This is not the preferred method for adding log messages. Please use log() or any one of
|
26 |
+
* the level methods (debug(), info(), etc.). This method may be deprecated in the future.
|
27 |
+
*
|
28 |
+
* @param string $handle File handle.
|
29 |
+
* @param string $message Log message.
|
30 |
+
* @param string $level Log level.
|
31 |
+
*
|
32 |
+
* @return bool True if log was added, otherwise false.
|
33 |
+
*/
|
34 |
+
public function add( $handle, $message, $level = Cartflows_Log_Levels::NOTICE );
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Add a log entry.
|
38 |
+
*
|
39 |
+
* @param string $level One of the following:
|
40 |
+
* 'emergency': System is unusable.
|
41 |
+
* 'alert': Action must be taken immediately.
|
42 |
+
* 'critical': Critical conditions.
|
43 |
+
* 'error': Error conditions.
|
44 |
+
* 'warning': Warning conditions.
|
45 |
+
* 'notice': Normal but significant condition.
|
46 |
+
* 'info': Informational messages.
|
47 |
+
* 'debug': Debug-level messages.
|
48 |
+
* @param string $message Log message.
|
49 |
+
* @param array $context Optional. Additional information for log handlers.
|
50 |
+
*/
|
51 |
+
public function log( $level, $message, $context = array() );
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Adds an emergency level message.
|
55 |
+
*
|
56 |
+
* System is unusable.
|
57 |
+
*
|
58 |
+
* @param string $message Log message.
|
59 |
+
* @param array $context Optional. Additional information for log handlers.
|
60 |
+
*/
|
61 |
+
public function emergency( $message, $context = array() );
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Adds an alert level message.
|
65 |
+
*
|
66 |
+
* Action must be taken immediately.
|
67 |
+
* Example: Entire website down, database unavailable, etc.
|
68 |
+
*
|
69 |
+
* @param string $message Log message.
|
70 |
+
* @param array $context Optional. Additional information for log handlers.
|
71 |
+
*/
|
72 |
+
public function alert( $message, $context = array() );
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Adds a critical level message.
|
76 |
+
*
|
77 |
+
* Critical conditions.
|
78 |
+
* Example: Application component unavailable, unexpected exception.
|
79 |
+
*
|
80 |
+
* @param string $message Log message.
|
81 |
+
* @param array $context Optional. Additional information for log handlers.
|
82 |
+
*/
|
83 |
+
public function critical( $message, $context = array() );
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Adds an error level message.
|
87 |
+
*
|
88 |
+
* Runtime errors that do not require immediate action but should typically be logged
|
89 |
+
* and monitored.
|
90 |
+
*
|
91 |
+
* @param string $message Log message.
|
92 |
+
* @param array $context Optional. Additional information for log handlers.
|
93 |
+
*/
|
94 |
+
public function error( $message, $context = array() );
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Adds a warning level message.
|
98 |
+
*
|
99 |
+
* Exceptional occurrences that are not errors.
|
100 |
+
*
|
101 |
+
* Example: Use of deprecated APIs, poor use of an API, undesirable things that are not
|
102 |
+
* necessarily wrong.
|
103 |
+
*
|
104 |
+
* @param string $message Log message.
|
105 |
+
* @param array $context Optional. Additional information for log handlers.
|
106 |
+
*/
|
107 |
+
public function warning( $message, $context = array() );
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Adds a notice level message.
|
111 |
+
*
|
112 |
+
* Normal but significant events.
|
113 |
+
*
|
114 |
+
* @param string $message Log message.
|
115 |
+
* @param array $context Optional. Additional information for log handlers.
|
116 |
+
*/
|
117 |
+
public function notice( $message, $context = array() );
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Adds a info level message.
|
121 |
+
*
|
122 |
+
* Interesting events.
|
123 |
+
* Example: User logs in, SQL logs.
|
124 |
+
*
|
125 |
+
* @param string $message Log message.
|
126 |
+
* @param array $context Optional. Additional information for log handlers.
|
127 |
+
*/
|
128 |
+
public function info( $message, $context = array() );
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Adds a debug level message.
|
132 |
+
*
|
133 |
+
* Detailed debug information.
|
134 |
+
*
|
135 |
+
* @param string $message Log message.
|
136 |
+
* @param array $context Optional. Additional information for log handlers.
|
137 |
+
*/
|
138 |
+
public function debug( $message, $context = array() );
|
139 |
+
}
|
classes/logger/class-cartflows-wc-logger.php
CHANGED
@@ -1,301 +1,301 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Provides logging capabilities for debugging purposes.
|
4 |
-
*
|
5 |
-
* @class Cartflows_WC_Logger
|
6 |
-
* @version 2.0.0
|
7 |
-
* @package WooCommerce/Classes
|
8 |
-
*/
|
9 |
-
|
10 |
-
defined( 'ABSPATH' ) || exit;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Cartflows_WC_Logger class.
|
14 |
-
*/
|
15 |
-
class Cartflows_WC_Logger implements Cartflows_WC_Logger_Interface {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Stores registered log handlers.
|
19 |
-
*
|
20 |
-
* @var array
|
21 |
-
*/
|
22 |
-
protected $handlers;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Minimum log level this handler will process.
|
26 |
-
*
|
27 |
-
* @var int Integer representation of minimum log level to handle.
|
28 |
-
*/
|
29 |
-
protected $threshold;
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Constructor for the logger.
|
33 |
-
*
|
34 |
-
* @param array $handlers Optional. Array of log handlers. If $handlers is not provided, the filter 'woocommerce_register_log_handlers' will be used to define the handlers. If $handlers is provided, the filter will not be applied and the handlers will be used directly.
|
35 |
-
* @param string $threshold Optional. Define an explicit threshold. May be configured via WC_LOG_THRESHOLD. By default, all logs will be processed.
|
36 |
-
*/
|
37 |
-
public function __construct( $handlers = null, $threshold = null ) {
|
38 |
-
if ( null === $handlers ) {
|
39 |
-
$handlers = apply_filters( 'cartflows_register_log_handlers', array() );
|
40 |
-
|
41 |
-
$default_handler = new Cartflows_Log_Handler_File();
|
42 |
-
|
43 |
-
array_push( $handlers, $default_handler );
|
44 |
-
}
|
45 |
-
|
46 |
-
$register_handlers = array();
|
47 |
-
|
48 |
-
if ( ! empty( $handlers ) && is_array( $handlers ) ) {
|
49 |
-
foreach ( $handlers as $handler ) {
|
50 |
-
$implements = class_implements( $handler );
|
51 |
-
if ( is_object( $handler ) && is_array( $implements ) && in_array( 'Cartflows_Log_Handler_Interface', $implements, true ) ) {
|
52 |
-
$register_handlers[] = $handler;
|
53 |
-
} else {
|
54 |
-
wc_doing_it_wrong(
|
55 |
-
__METHOD__,
|
56 |
-
sprintf(
|
57 |
-
/* translators: 1: class name 2: Cartflows_Log_Handler_Interface */
|
58 |
-
__( 'The provided handler %1$s does not implement %2$s.', 'cartflows' ),
|
59 |
-
'<code>' . esc_html( is_object( $handler ) ? get_class( $handler ) : $handler ) . '</code>',
|
60 |
-
'<code>Cartflows_Log_Handler_Interface</code>'
|
61 |
-
),
|
62 |
-
'3.0'
|
63 |
-
);
|
64 |
-
}
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
if ( null !== $threshold ) {
|
69 |
-
$threshold = Cartflows_Log_Levels::get_level_severity( $threshold );
|
70 |
-
} elseif ( defined( 'WC_LOG_THRESHOLD' ) && Cartflows_Log_Levels::is_valid_level( WC_LOG_THRESHOLD ) ) {
|
71 |
-
$threshold = Cartflows_Log_Levels::get_level_severity( WC_LOG_THRESHOLD );
|
72 |
-
} else {
|
73 |
-
$threshold = null;
|
74 |
-
}
|
75 |
-
|
76 |
-
$this->handlers = $register_handlers;
|
77 |
-
$this->threshold = $threshold;
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Determine whether to handle or ignore log.
|
82 |
-
*
|
83 |
-
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
84 |
-
* @return bool True if the log should be handled.
|
85 |
-
*/
|
86 |
-
protected function should_handle( $level ) {
|
87 |
-
if ( null === $this->threshold ) {
|
88 |
-
return true;
|
89 |
-
}
|
90 |
-
return $this->threshold <= Cartflows_Log_Levels::get_level_severity( $level );
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* Add a log entry.
|
95 |
-
*
|
96 |
-
* This is not the preferred method for adding log messages. Please use log() or any one of
|
97 |
-
* the level methods (debug(), info(), etc.). This method may be deprecated in the future.
|
98 |
-
*
|
99 |
-
* @param string $handle File handle.
|
100 |
-
* @param string $message Message to log.
|
101 |
-
* @param string $level Logging level.
|
102 |
-
* @return bool
|
103 |
-
*/
|
104 |
-
public function add( $handle, $message, $level = Cartflows_Log_Levels::NOTICE ) {
|
105 |
-
$message = apply_filters( 'cartflows_logger_add_message', $message, $handle );
|
106 |
-
$this->log(
|
107 |
-
$level,
|
108 |
-
$message,
|
109 |
-
array(
|
110 |
-
'source' => $handle,
|
111 |
-
'_legacy' => true,
|
112 |
-
)
|
113 |
-
);
|
114 |
-
wc_do_deprecated_action( 'cartflows_log_add', array( $handle, $message ), '3.0', 'This action has been deprecated with no alternative.' );
|
115 |
-
return true;
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Add a log entry.
|
120 |
-
*
|
121 |
-
* @param string $level One of the following:
|
122 |
-
* 'emergency': System is unusable.
|
123 |
-
* 'alert': Action must be taken immediately.
|
124 |
-
* 'critical': Critical conditions.
|
125 |
-
* 'error': Error conditions.
|
126 |
-
* 'warning': Warning conditions.
|
127 |
-
* 'notice': Normal but significant condition.
|
128 |
-
* 'info': Informational messages.
|
129 |
-
* 'debug': Debug-level messages.
|
130 |
-
* @param string $message Log message.
|
131 |
-
* @param array $context Optional. Additional information for log handlers.
|
132 |
-
*/
|
133 |
-
public function log( $level, $message, $context = array() ) {
|
134 |
-
if ( ! Cartflows_Log_Levels::is_valid_level( $level ) ) {
|
135 |
-
/* translators: 1: Cartflows_WC_Logger::log 2: level */
|
136 |
-
wc_doing_it_wrong( __METHOD__, sprintf( __( '%1$s was called with an invalid level "%2$s".', 'cartflows' ), '<code>Cartflows_WC_Logger::log</code>', $level ), '3.0' );
|
137 |
-
}
|
138 |
-
|
139 |
-
if ( $this->should_handle( $level ) ) {
|
140 |
-
$timestamp = current_time( 'timestamp', 1 );
|
141 |
-
$message = apply_filters( 'cartflows_logger_log_message', $message, $level, $context );
|
142 |
-
|
143 |
-
foreach ( $this->handlers as $handler ) {
|
144 |
-
$handler->handle( $timestamp, $level, $message, $context );
|
145 |
-
}
|
146 |
-
}
|
147 |
-
}
|
148 |
-
|
149 |
-
/**
|
150 |
-
* Adds an emergency level message.
|
151 |
-
*
|
152 |
-
* System is unusable.
|
153 |
-
*
|
154 |
-
* @see Cartflows_WC_Logger::log
|
155 |
-
*
|
156 |
-
* @param string $message Message to log.
|
157 |
-
* @param array $context Log context.
|
158 |
-
*/
|
159 |
-
public function emergency( $message, $context = array() ) {
|
160 |
-
$this->log( Cartflows_Log_Levels::EMERGENCY, $message, $context );
|
161 |
-
}
|
162 |
-
|
163 |
-
/**
|
164 |
-
* Adds an alert level message.
|
165 |
-
*
|
166 |
-
* Action must be taken immediately.
|
167 |
-
* Example: Entire website down, database unavailable, etc.
|
168 |
-
*
|
169 |
-
* @see Cartflows_WC_Logger::log
|
170 |
-
*
|
171 |
-
* @param string $message Message to log.
|
172 |
-
* @param array $context Log context.
|
173 |
-
*/
|
174 |
-
public function alert( $message, $context = array() ) {
|
175 |
-
$this->log( Cartflows_Log_Levels::ALERT, $message, $context );
|
176 |
-
}
|
177 |
-
|
178 |
-
/**
|
179 |
-
* Adds a critical level message.
|
180 |
-
*
|
181 |
-
* Critical conditions.
|
182 |
-
* Example: Application component unavailable, unexpected exception.
|
183 |
-
*
|
184 |
-
* @see Cartflows_WC_Logger::log
|
185 |
-
*
|
186 |
-
* @param string $message Message to log.
|
187 |
-
* @param array $context Log context.
|
188 |
-
*/
|
189 |
-
public function critical( $message, $context = array() ) {
|
190 |
-
$this->log( Cartflows_Log_Levels::CRITICAL, $message, $context );
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* Adds an error level message.
|
195 |
-
*
|
196 |
-
* Runtime errors that do not require immediate action but should typically be logged
|
197 |
-
* and monitored.
|
198 |
-
*
|
199 |
-
* @see Cartflows_WC_Logger::log
|
200 |
-
*
|
201 |
-
* @param string $message Message to log.
|
202 |
-
* @param array $context Log context.
|
203 |
-
*/
|
204 |
-
public function error( $message, $context = array() ) {
|
205 |
-
$this->log( Cartflows_Log_Levels::ERROR, $message, $context );
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* Adds a warning level message.
|
210 |
-
*
|
211 |
-
* Exceptional occurrences that are not errors.
|
212 |
-
*
|
213 |
-
* Example: Use of deprecated APIs, poor use of an API, undesirable things that are not
|
214 |
-
* necessarily wrong.
|
215 |
-
*
|
216 |
-
* @see Cartflows_WC_Logger::log
|
217 |
-
*
|
218 |
-
* @param string $message Message to log.
|
219 |
-
* @param array $context Log context.
|
220 |
-
*/
|
221 |
-
public function warning( $message, $context = array() ) {
|
222 |
-
$this->log( Cartflows_Log_Levels::WARNING, $message, $context );
|
223 |
-
}
|
224 |
-
|
225 |
-
/**
|
226 |
-
* Adds a notice level message.
|
227 |
-
*
|
228 |
-
* Normal but significant events.
|
229 |
-
*
|
230 |
-
* @see Cartflows_WC_Logger::log
|
231 |
-
*
|
232 |
-
* @param string $message Message to log.
|
233 |
-
* @param array $context Log context.
|
234 |
-
*/
|
235 |
-
public function notice( $message, $context = array() ) {
|
236 |
-
$this->log( Cartflows_Log_Levels::NOTICE, $message, $context );
|
237 |
-
}
|
238 |
-
|
239 |
-
/**
|
240 |
-
* Adds a info level message.
|
241 |
-
*
|
242 |
-
* Interesting events.
|
243 |
-
* Example: User logs in, SQL logs.
|
244 |
-
*
|
245 |
-
* @see Cartflows_WC_Logger::log
|
246 |
-
*
|
247 |
-
* @param string $message Message to log.
|
248 |
-
* @param array $context Log context.
|
249 |
-
*/
|
250 |
-
public function info( $message, $context = array() ) {
|
251 |
-
$this->log( Cartflows_Log_Levels::INFO, $message, $context );
|
252 |
-
}
|
253 |
-
|
254 |
-
/**
|
255 |
-
* Adds a debug level message.
|
256 |
-
*
|
257 |
-
* Detailed debug information.
|
258 |
-
*
|
259 |
-
* @see Cartflows_WC_Logger::log
|
260 |
-
*
|
261 |
-
* @param string $message Message to log.
|
262 |
-
* @param array $context Log context.
|
263 |
-
*/
|
264 |
-
public function debug( $message, $context = array() ) {
|
265 |
-
$this->log( Cartflows_Log_Levels::DEBUG, $message, $context );
|
266 |
-
}
|
267 |
-
|
268 |
-
/**
|
269 |
-
* Clear entries for a chosen file/source.
|
270 |
-
*
|
271 |
-
* @param string $source Source/handle to clear.
|
272 |
-
* @return bool
|
273 |
-
*/
|
274 |
-
public function clear( $source = '' ) {
|
275 |
-
if ( ! $source ) {
|
276 |
-
return false;
|
277 |
-
}
|
278 |
-
foreach ( $this->handlers as $handler ) {
|
279 |
-
if ( is_callable( array( $handler, 'clear' ) ) ) {
|
280 |
-
$handler->clear( $source );
|
281 |
-
}
|
282 |
-
}
|
283 |
-
return true;
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* Clear all logs older than a defined number of days. Defaults to 30 days.
|
288 |
-
*
|
289 |
-
* @since 3.4.0
|
290 |
-
*/
|
291 |
-
public function clear_expired_logs() {
|
292 |
-
$days = absint( apply_filters( 'cartflows_logger_days_to_retain_logs', 30 ) );
|
293 |
-
$timestamp = strtotime( "-{$days} days" );
|
294 |
-
|
295 |
-
foreach ( $this->handlers as $handler ) {
|
296 |
-
if ( is_callable( array( $handler, 'delete_logs_before_timestamp' ) ) ) {
|
297 |
-
$handler->delete_logs_before_timestamp( $timestamp );
|
298 |
-
}
|
299 |
-
}
|
300 |
-
}
|
301 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Provides logging capabilities for debugging purposes.
|
4 |
+
*
|
5 |
+
* @class Cartflows_WC_Logger
|
6 |
+
* @version 2.0.0
|
7 |
+
* @package WooCommerce/Classes
|
8 |
+
*/
|
9 |
+
|
10 |
+
defined( 'ABSPATH' ) || exit;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Cartflows_WC_Logger class.
|
14 |
+
*/
|
15 |
+
class Cartflows_WC_Logger implements Cartflows_WC_Logger_Interface {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Stores registered log handlers.
|
19 |
+
*
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
protected $handlers;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Minimum log level this handler will process.
|
26 |
+
*
|
27 |
+
* @var int Integer representation of minimum log level to handle.
|
28 |
+
*/
|
29 |
+
protected $threshold;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Constructor for the logger.
|
33 |
+
*
|
34 |
+
* @param array $handlers Optional. Array of log handlers. If $handlers is not provided, the filter 'woocommerce_register_log_handlers' will be used to define the handlers. If $handlers is provided, the filter will not be applied and the handlers will be used directly.
|
35 |
+
* @param string $threshold Optional. Define an explicit threshold. May be configured via WC_LOG_THRESHOLD. By default, all logs will be processed.
|
36 |
+
*/
|
37 |
+
public function __construct( $handlers = null, $threshold = null ) {
|
38 |
+
if ( null === $handlers ) {
|
39 |
+
$handlers = apply_filters( 'cartflows_register_log_handlers', array() );
|
40 |
+
|
41 |
+
$default_handler = new Cartflows_Log_Handler_File();
|
42 |
+
|
43 |
+
array_push( $handlers, $default_handler );
|
44 |
+
}
|
45 |
+
|
46 |
+
$register_handlers = array();
|
47 |
+
|
48 |
+
if ( ! empty( $handlers ) && is_array( $handlers ) ) {
|
49 |
+
foreach ( $handlers as $handler ) {
|
50 |
+
$implements = class_implements( $handler );
|
51 |
+
if ( is_object( $handler ) && is_array( $implements ) && in_array( 'Cartflows_Log_Handler_Interface', $implements, true ) ) {
|
52 |
+
$register_handlers[] = $handler;
|
53 |
+
} else {
|
54 |
+
wc_doing_it_wrong(
|
55 |
+
__METHOD__,
|
56 |
+
sprintf(
|
57 |
+
/* translators: 1: class name 2: Cartflows_Log_Handler_Interface */
|
58 |
+
__( 'The provided handler %1$s does not implement %2$s.', 'cartflows' ),
|
59 |
+
'<code>' . esc_html( is_object( $handler ) ? get_class( $handler ) : $handler ) . '</code>',
|
60 |
+
'<code>Cartflows_Log_Handler_Interface</code>'
|
61 |
+
),
|
62 |
+
'3.0'
|
63 |
+
);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
if ( null !== $threshold ) {
|
69 |
+
$threshold = Cartflows_Log_Levels::get_level_severity( $threshold );
|
70 |
+
} elseif ( defined( 'WC_LOG_THRESHOLD' ) && Cartflows_Log_Levels::is_valid_level( WC_LOG_THRESHOLD ) ) {
|
71 |
+
$threshold = Cartflows_Log_Levels::get_level_severity( WC_LOG_THRESHOLD );
|
72 |
+
} else {
|
73 |
+
$threshold = null;
|
74 |
+
}
|
75 |
+
|
76 |
+
$this->handlers = $register_handlers;
|
77 |
+
$this->threshold = $threshold;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Determine whether to handle or ignore log.
|
82 |
+
*
|
83 |
+
* @param string $level emergency|alert|critical|error|warning|notice|info|debug.
|
84 |
+
* @return bool True if the log should be handled.
|
85 |
+
*/
|
86 |
+
protected function should_handle( $level ) {
|
87 |
+
if ( null === $this->threshold ) {
|
88 |
+
return true;
|
89 |
+
}
|
90 |
+
return $this->threshold <= Cartflows_Log_Levels::get_level_severity( $level );
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Add a log entry.
|
95 |
+
*
|
96 |
+
* This is not the preferred method for adding log messages. Please use log() or any one of
|
97 |
+
* the level methods (debug(), info(), etc.). This method may be deprecated in the future.
|
98 |
+
*
|
99 |
+
* @param string $handle File handle.
|
100 |
+
* @param string $message Message to log.
|
101 |
+
* @param string $level Logging level.
|
102 |
+
* @return bool
|
103 |
+
*/
|
104 |
+
public function add( $handle, $message, $level = Cartflows_Log_Levels::NOTICE ) {
|
105 |
+
$message = apply_filters( 'cartflows_logger_add_message', $message, $handle );
|
106 |
+
$this->log(
|
107 |
+
$level,
|
108 |
+
$message,
|
109 |
+
array(
|
110 |
+
'source' => $handle,
|
111 |
+
'_legacy' => true,
|
112 |
+
)
|
113 |
+
);
|
114 |
+
wc_do_deprecated_action( 'cartflows_log_add', array( $handle, $message ), '3.0', 'This action has been deprecated with no alternative.' );
|
115 |
+
return true;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Add a log entry.
|
120 |
+
*
|
121 |
+
* @param string $level One of the following:
|
122 |
+
* 'emergency': System is unusable.
|
123 |
+
* 'alert': Action must be taken immediately.
|
124 |
+
* 'critical': Critical conditions.
|
125 |
+
* 'error': Error conditions.
|
126 |
+
* 'warning': Warning conditions.
|
127 |
+
* 'notice': Normal but significant condition.
|
128 |
+
* 'info': Informational messages.
|
129 |
+
* 'debug': Debug-level messages.
|
130 |
+
* @param string $message Log message.
|
131 |
+
* @param array $context Optional. Additional information for log handlers.
|
132 |
+
*/
|
133 |
+
public function log( $level, $message, $context = array() ) {
|
134 |
+
if ( ! Cartflows_Log_Levels::is_valid_level( $level ) ) {
|
135 |
+
/* translators: 1: Cartflows_WC_Logger::log 2: level */
|
136 |
+
wc_doing_it_wrong( __METHOD__, sprintf( __( '%1$s was called with an invalid level "%2$s".', 'cartflows' ), '<code>Cartflows_WC_Logger::log</code>', $level ), '3.0' );
|
137 |
+
}
|
138 |
+
|
139 |
+
if ( $this->should_handle( $level ) ) {
|
140 |
+
$timestamp = current_time( 'timestamp', 1 );
|
141 |
+
$message = apply_filters( 'cartflows_logger_log_message', $message, $level, $context );
|
142 |
+
|
143 |
+
foreach ( $this->handlers as $handler ) {
|
144 |
+
$handler->handle( $timestamp, $level, $message, $context );
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Adds an emergency level message.
|
151 |
+
*
|
152 |
+
* System is unusable.
|
153 |
+
*
|
154 |
+
* @see Cartflows_WC_Logger::log
|
155 |
+
*
|
156 |
+
* @param string $message Message to log.
|
157 |
+
* @param array $context Log context.
|
158 |
+
*/
|
159 |
+
public function emergency( $message, $context = array() ) {
|
160 |
+
$this->log( Cartflows_Log_Levels::EMERGENCY, $message, $context );
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Adds an alert level message.
|
165 |
+
*
|
166 |
+
* Action must be taken immediately.
|
167 |
+
* Example: Entire website down, database unavailable, etc.
|
168 |
+
*
|
169 |
+
* @see Cartflows_WC_Logger::log
|
170 |
+
*
|
171 |
+
* @param string $message Message to log.
|
172 |
+
* @param array $context Log context.
|
173 |
+
*/
|
174 |
+
public function alert( $message, $context = array() ) {
|
175 |
+
$this->log( Cartflows_Log_Levels::ALERT, $message, $context );
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Adds a critical level message.
|
180 |
+
*
|
181 |
+
* Critical conditions.
|
182 |
+
* Example: Application component unavailable, unexpected exception.
|
183 |
+
*
|
184 |
+
* @see Cartflows_WC_Logger::log
|
185 |
+
*
|
186 |
+
* @param string $message Message to log.
|
187 |
+
* @param array $context Log context.
|
188 |
+
*/
|
189 |
+
public function critical( $message, $context = array() ) {
|
190 |
+
$this->log( Cartflows_Log_Levels::CRITICAL, $message, $context );
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Adds an error level message.
|
195 |
+
*
|
196 |
+
* Runtime errors that do not require immediate action but should typically be logged
|
197 |
+
* and monitored.
|
198 |
+
*
|
199 |
+
* @see Cartflows_WC_Logger::log
|
200 |
+
*
|
201 |
+
* @param string $message Message to log.
|
202 |
+
* @param array $context Log context.
|
203 |
+
*/
|
204 |
+
public function error( $message, $context = array() ) {
|
205 |
+
$this->log( Cartflows_Log_Levels::ERROR, $message, $context );
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Adds a warning level message.
|
210 |
+
*
|
211 |
+
* Exceptional occurrences that are not errors.
|
212 |
+
*
|
213 |
+
* Example: Use of deprecated APIs, poor use of an API, undesirable things that are not
|
214 |
+
* necessarily wrong.
|
215 |
+
*
|
216 |
+
* @see Cartflows_WC_Logger::log
|
217 |
+
*
|
218 |
+
* @param string $message Message to log.
|
219 |
+
* @param array $context Log context.
|
220 |
+
*/
|
221 |
+
public function warning( $message, $context = array() ) {
|
222 |
+
$this->log( Cartflows_Log_Levels::WARNING, $message, $context );
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Adds a notice level message.
|
227 |
+
*
|
228 |
+
* Normal but significant events.
|
229 |
+
*
|
230 |
+
* @see Cartflows_WC_Logger::log
|
231 |
+
*
|
232 |
+
* @param string $message Message to log.
|
233 |
+
* @param array $context Log context.
|
234 |
+
*/
|
235 |
+
public function notice( $message, $context = array() ) {
|
236 |
+
$this->log( Cartflows_Log_Levels::NOTICE, $message, $context );
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* Adds a info level message.
|
241 |
+
*
|
242 |
+
* Interesting events.
|
243 |
+
* Example: User logs in, SQL logs.
|
244 |
+
*
|
245 |
+
* @see Cartflows_WC_Logger::log
|
246 |
+
*
|
247 |
+
* @param string $message Message to log.
|
248 |
+
* @param array $context Log context.
|
249 |
+
*/
|
250 |
+
public function info( $message, $context = array() ) {
|
251 |
+
$this->log( Cartflows_Log_Levels::INFO, $message, $context );
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* Adds a debug level message.
|
256 |
+
*
|
257 |
+
* Detailed debug information.
|
258 |
+
*
|
259 |
+
* @see Cartflows_WC_Logger::log
|
260 |
+
*
|
261 |
+
* @param string $message Message to log.
|
262 |
+
* @param array $context Log context.
|
263 |
+
*/
|
264 |
+
public function debug( $message, $context = array() ) {
|
265 |
+
$this->log( Cartflows_Log_Levels::DEBUG, $message, $context );
|
266 |
+
}
|
267 |
+
|
268 |
+
/**
|
269 |
+
* Clear entries for a chosen file/source.
|
270 |
+
*
|
271 |
+
* @param string $source Source/handle to clear.
|
272 |
+
* @return bool
|
273 |
+
*/
|
274 |
+
public function clear( $source = '' ) {
|
275 |
+
if ( ! $source ) {
|
276 |
+
return false;
|
277 |
+
}
|
278 |
+
foreach ( $this->handlers as $handler ) {
|
279 |
+
if ( is_callable( array( $handler, 'clear' ) ) ) {
|
280 |
+
$handler->clear( $source );
|
281 |
+
}
|
282 |
+
}
|
283 |
+
return true;
|
284 |
+
}
|
285 |
+
|
286 |
+
/**
|
287 |
+
* Clear all logs older than a defined number of days. Defaults to 30 days.
|
288 |
+
*
|
289 |
+
* @since 3.4.0
|
290 |
+
*/
|
291 |
+
public function clear_expired_logs() {
|
292 |
+
$days = absint( apply_filters( 'cartflows_logger_days_to_retain_logs', 30 ) );
|
293 |
+
$timestamp = strtotime( "-{$days} days" );
|
294 |
+
|
295 |
+
foreach ( $this->handlers as $handler ) {
|
296 |
+
if ( is_callable( array( $handler, 'delete_logs_before_timestamp' ) ) ) {
|
297 |
+
$handler->delete_logs_before_timestamp( $timestamp );
|
298 |
+
}
|
299 |
+
}
|
300 |
+
}
|
301 |
+
}
|
includes/admin/cartflows-error-log.php
CHANGED
@@ -1,71 +1,71 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Admin View: Page - Status Logs
|
4 |
-
*
|
5 |
-
* @package WooCommerce/Admin/Logs
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
-
exit;
|
10 |
-
}
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
?>
|
15 |
-
<?php if ( $logs ) : ?>
|
16 |
-
<div id="log-viewer-select">
|
17 |
-
<div class="alignright">
|
18 |
-
<form action="
|
19 |
-
<?php
|
20 |
-
echo esc_url(
|
21 |
-
add_query_arg(
|
22 |
-
array(
|
23 |
-
'page' => 'cartflows_settings',
|
24 |
-
'cartflows-error-log' => 1,
|
25 |
-
'tab' => 'logs',
|
26 |
-
),
|
27 |
-
admin_url( '/admin.php' )
|
28 |
-
)
|
29 |
-
);
|
30 |
-
?>
|
31 |
-
" method="post">
|
32 |
-
<select name="log_file">
|
33 |
-
<?php foreach ( $logs as $log_key => $log_file ) : ?>
|
34 |
-
<?php
|
35 |
-
$timestamp = filemtime( CARTFLOWS_LOG_DIR . $log_file );
|
36 |
-
$date = sprintf( __( '%1$s at %2$s', 'cartflows' ), date_i18n( 'F j, Y', $timestamp ), date_i18n( 'g:i a', $timestamp ) ); // phpcs:ignore
|
37 |
-
?>
|
38 |
-
<option value="<?php echo esc_attr( $log_key ); ?>" <?php selected( sanitize_title( $viewed_log ), $log_key ); ?>><?php echo esc_html( $log_file ); ?> (<?php echo esc_html( $date ); ?>)</option>
|
39 |
-
<?php endforeach; ?>
|
40 |
-
</select>
|
41 |
-
<button type="submit" class="button" value="<?php esc_attr_e( 'View', 'cartflows' ); ?>"><?php esc_html_e( 'View', 'cartflows' ); ?></button>
|
42 |
-
</form>
|
43 |
-
</div>
|
44 |
-
<div class="clear"></div>
|
45 |
-
</div>
|
46 |
-
<div id="log-viewer">
|
47 |
-
<div class="wcf-log-container">
|
48 |
-
<pre><?php echo esc_html( file_get_contents( CARTFLOWS_LOG_DIR . $viewed_log ) ); ?></pre>
|
49 |
-
</div>
|
50 |
-
<?php if ( ! empty( $viewed_log ) ) : ?>
|
51 |
-
<a onclick="return confirm('Are you sure to delete this log?');" style="float: right" href="
|
52 |
-
<?php
|
53 |
-
echo esc_url(
|
54 |
-
wp_nonce_url(
|
55 |
-
add_query_arg(
|
56 |
-
array(
|
57 |
-
'handle' => sanitize_title( $viewed_log ),
|
58 |
-
'tab' => 'logs',
|
59 |
-
)
|
60 |
-
),
|
61 |
-
'remove_log'
|
62 |
-
)
|
63 |
-
);
|
64 |
-
?>
|
65 |
-
"><?php esc_html_e( 'Delete log', 'cartflows' ); ?></a>
|
66 |
-
<?php endif; ?>
|
67 |
-
|
68 |
-
</div>
|
69 |
-
<?php else : ?>
|
70 |
-
<div class="updated woocommerce-message inline"><p><?php esc_html_e( 'There are currently no logs to view.', 'cartflows' ); ?></p></div>
|
71 |
-
<?php endif; ?>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin View: Page - Status Logs
|
4 |
+
*
|
5 |
+
* @package WooCommerce/Admin/Logs
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
+
exit;
|
10 |
+
}
|
11 |
+
|
12 |
+
|
13 |
+
|
14 |
+
?>
|
15 |
+
<?php if ( $logs ) : ?>
|
16 |
+
<div id="log-viewer-select">
|
17 |
+
<div class="alignright">
|
18 |
+
<form action="
|
19 |
+
<?php
|
20 |
+
echo esc_url(
|
21 |
+
add_query_arg(
|
22 |
+
array(
|
23 |
+
'page' => 'cartflows_settings',
|
24 |
+
'cartflows-error-log' => 1,
|
25 |
+
'tab' => 'logs',
|
26 |
+
),
|
27 |
+
admin_url( '/admin.php' )
|
28 |
+
)
|
29 |
+
);
|
30 |
+
?>
|
31 |
+
" method="post">
|
32 |
+
<select name="log_file">
|
33 |
+
<?php foreach ( $logs as $log_key => $log_file ) : ?>
|
34 |
+
<?php
|
35 |
+
$timestamp = filemtime( CARTFLOWS_LOG_DIR . $log_file );
|
36 |
+
$date = sprintf( __( '%1$s at %2$s', 'cartflows' ), date_i18n( 'F j, Y', $timestamp ), date_i18n( 'g:i a', $timestamp ) ); // phpcs:ignore
|
37 |
+
?>
|
38 |
+
<option value="<?php echo esc_attr( $log_key ); ?>" <?php selected( sanitize_title( $viewed_log ), $log_key ); ?>><?php echo esc_html( $log_file ); ?> (<?php echo esc_html( $date ); ?>)</option>
|
39 |
+
<?php endforeach; ?>
|
40 |
+
</select>
|
41 |
+
<button type="submit" class="button" value="<?php esc_attr_e( 'View', 'cartflows' ); ?>"><?php esc_html_e( 'View', 'cartflows' ); ?></button>
|
42 |
+
</form>
|
43 |
+
</div>
|
44 |
+
<div class="clear"></div>
|
45 |
+
</div>
|
46 |
+
<div id="log-viewer">
|
47 |
+
<div class="wcf-log-container">
|
48 |
+
<pre><?php echo esc_html( file_get_contents( CARTFLOWS_LOG_DIR . $viewed_log ) ); ?></pre>
|
49 |
+
</div>
|
50 |
+
<?php if ( ! empty( $viewed_log ) ) : ?>
|
51 |
+
<a onclick="return confirm('Are you sure to delete this log?');" style="float: right" href="
|
52 |
+
<?php
|
53 |
+
echo esc_url(
|
54 |
+
wp_nonce_url(
|
55 |
+
add_query_arg(
|
56 |
+
array(
|
57 |
+
'handle' => sanitize_title( $viewed_log ),
|
58 |
+
'tab' => 'logs',
|
59 |
+
)
|
60 |
+
),
|
61 |
+
'remove_log'
|
62 |
+
)
|
63 |
+
);
|
64 |
+
?>
|
65 |
+
"><?php esc_html_e( 'Delete log', 'cartflows' ); ?></a>
|
66 |
+
<?php endif; ?>
|
67 |
+
|
68 |
+
</div>
|
69 |
+
<?php else : ?>
|
70 |
+
<div class="updated woocommerce-message inline"><p><?php esc_html_e( 'There are currently no logs to view.', 'cartflows' ); ?></p></div>
|
71 |
+
<?php endif; ?>
|
includes/admin/cartflows-general.php
CHANGED
@@ -10,9 +10,16 @@ $settings = Cartflows_Helper::get_common_settings();
|
|
10 |
$debug_data = Cartflows_Helper::get_debug_settings();
|
11 |
|
12 |
$debug_on = ( isset( $_GET['debug'] ) ) ? sanitize_text_field( $_GET['debug'] ) : 'false';
|
|
|
|
|
13 |
?>
|
14 |
|
15 |
|
|
|
|
|
|
|
|
|
|
|
16 |
<div class="wrap wcf-addon-wrap wcf-clear wcf-container">
|
17 |
<input type="hidden" name="action" value="wcf_save_common_settings">
|
18 |
<h1 class="screen-reader-text"><?php _e( 'General Settings', 'cartflows' ); ?></h1>
|
@@ -56,15 +63,16 @@ $debug_on = ( isset( $_GET['debug'] ) ) ? sanitize_text_field( $_GET['debug'] )
|
|
56 |
)
|
57 |
);
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
|
|
68 |
echo Cartflows_Admin_Fields::select_field(
|
69 |
array(
|
70 |
'id' => 'wcf_default_page_builder',
|
@@ -176,6 +184,7 @@ $debug_on = ( isset( $_GET['debug'] ) ) ? sanitize_text_field( $_GET['debug'] )
|
|
176 |
<br class="clear">
|
177 |
</div>
|
178 |
</div>
|
|
|
179 |
|
180 |
<?php
|
181 |
/**
|
10 |
$debug_data = Cartflows_Helper::get_debug_settings();
|
11 |
|
12 |
$debug_on = ( isset( $_GET['debug'] ) ) ? sanitize_text_field( $_GET['debug'] ) : 'false';
|
13 |
+
|
14 |
+
$error_log = filter_input( INPUT_GET, 'cartflows-error-log', FILTER_VALIDATE_BOOLEAN );
|
15 |
?>
|
16 |
|
17 |
|
18 |
+
<?php if ( $error_log ) : ?>
|
19 |
+
<div class="wrap wcf-addon-wrap wcf-clear wcf-container">
|
20 |
+
<?php Cartflows_Logger::status_logs_file(); ?>
|
21 |
+
</div>
|
22 |
+
<?php else : ?>
|
23 |
<div class="wrap wcf-addon-wrap wcf-clear wcf-container">
|
24 |
<input type="hidden" name="action" value="wcf_save_common_settings">
|
25 |
<h1 class="screen-reader-text"><?php _e( 'General Settings', 'cartflows' ); ?></h1>
|
63 |
)
|
64 |
);
|
65 |
|
66 |
+
if ( wcf()->is_woo_active ) {
|
67 |
+
echo Cartflows_Admin_Fields::flow_checkout_selection_field(
|
68 |
+
array(
|
69 |
+
'id' => 'wcf_global_checkout',
|
70 |
+
'name' => '_cartflows_common[global_checkout]',
|
71 |
+
'title' => __( 'Global Checkout', 'cartflows' ),
|
72 |
+
'value' => $settings['global_checkout'],
|
73 |
+
)
|
74 |
+
);
|
75 |
+
}
|
76 |
echo Cartflows_Admin_Fields::select_field(
|
77 |
array(
|
78 |
'id' => 'wcf_default_page_builder',
|
184 |
<br class="clear">
|
185 |
</div>
|
186 |
</div>
|
187 |
+
<?php endif; ?>
|
188 |
|
189 |
<?php
|
190 |
/**
|
languages/cartflows.pot
CHANGED
@@ -1,1443 +1,1588 @@
|
|
1 |
-
# Copyright (C) 2019 CartFlows Inc
|
2 |
-
# This file is distributed under the same license as the CartFlows package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: CartFlows 1.1.
|
6 |
-
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cartflows\n"
|
7 |
-
"POT-Creation-Date: 2019-
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
12 |
-
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
-
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
-
"Language: en\n"
|
15 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
-
"X-Poedit-Country: United States\n"
|
17 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
-
"X-Poedit-KeywordsList: "
|
19 |
-
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
20 |
-
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
21 |
-
"X-Poedit-Basepath: ../\n"
|
22 |
-
"X-Poedit-SearchPath-0: .\n"
|
23 |
-
"X-Poedit-Bookmarks: \n"
|
24 |
-
"X-Textdomain-Support: yes\n"
|
25 |
-
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
26 |
-
|
27 |
-
#: classes/batch-process/class-cartflows-importer-elementor.php:44
|
28 |
-
msgid "Invalid content."
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: classes/batch-process/class-cartflows-importer-elementor.php:52
|
32 |
-
msgid "Invalid content. Expected an array."
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: classes/batch-process/helpers/class-wp-background-process.php:435
|
36 |
-
msgid "Every %d Minutes"
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#: classes/class-cartflows-admin-fields.php:162
|
40 |
-
msgid "Select"
|
41 |
-
msgstr ""
|
42 |
-
|
43 |
-
#: classes/class-cartflows-admin-fields.php:165
|
44 |
-
msgid "No Checkout Steps"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: classes/class-cartflows-admin-fields.php:191
|
48 |
-
#. translators: %s: link
|
49 |
-
msgid ""
|
50 |
-
"Be sure not to add any product in above selected Global Checkout step. "
|
51 |
-
"Please read information about how to set up Global Checkout %1$shere%2$s."
|
52 |
-
msgstr ""
|
53 |
-
|
54 |
-
#: classes/class-cartflows-admin.php:
|
55 |
-
#: includes/admin/cartflows-general-bck.php:34
|
56 |
-
msgid "Settings"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#: classes/class-cartflows-admin.php:
|
60 |
-
msgid "
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: classes/class-cartflows-admin.php:
|
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 |
-
#: classes/class-cartflows-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
"
|
108 |
-
msgstr ""
|
109 |
-
|
110 |
-
#: classes/class-cartflows-
|
111 |
-
msgid "
|
112 |
-
msgstr ""
|
113 |
-
|
114 |
-
#: classes/class-cartflows-
|
115 |
-
msgid "
|
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 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
#: classes/class-cartflows-importer.php:
|
169 |
-
msgid "
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#: classes/class-cartflows-importer.php:
|
173 |
-
#: classes/class-cartflows-importer.php:
|
174 |
-
msgid "
|
175 |
-
msgstr ""
|
176 |
-
|
177 |
-
#: classes/class-cartflows-importer.php:
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
#: classes/class-cartflows-importer.php:
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
#: classes/class-cartflows-importer.php:
|
188 |
-
msgid "
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: classes/class-cartflows-importer.php:
|
192 |
-
#: classes/class-cartflows-importer.php:
|
193 |
-
msgid "
|
194 |
-
msgstr ""
|
195 |
-
|
196 |
-
#: classes/class-cartflows-importer.php:
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
msgstr ""
|
209 |
-
|
210 |
-
#: classes/class-cartflows-importer.php:
|
211 |
-
msgid ""
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
msgid "
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
#:
|
243 |
-
msgid "
|
244 |
-
msgstr ""
|
245 |
-
|
246 |
-
#: classes/class-cartflows-importer.php:
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
#: classes/class-cartflows-
|
252 |
-
|
253 |
-
msgid "
|
254 |
-
msgstr ""
|
255 |
-
|
256 |
-
#: classes/class-cartflows-importer.php:
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
"
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
msgid "
|
280 |
-
msgstr ""
|
281 |
-
|
282 |
-
#: classes/class-cartflows-
|
283 |
-
msgid "
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#: classes/class-cartflows-
|
307 |
-
msgid "
|
308 |
-
msgstr ""
|
309 |
-
|
310 |
-
#: classes/class-cartflows-
|
311 |
-
msgid "
|
312 |
-
msgstr ""
|
313 |
-
|
314 |
-
#: classes/class-cartflows-
|
315 |
-
msgid "
|
316 |
-
msgstr ""
|
317 |
-
|
318 |
-
#: classes/class-cartflows-meta-fields.php:
|
319 |
-
msgid "
|
320 |
-
msgstr ""
|
321 |
-
|
322 |
-
#: classes/class-cartflows-meta-fields.php:
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
#:
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
#:
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
"
|
421 |
-
msgstr ""
|
422 |
-
|
423 |
-
#: classes/class-cartflows-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
#: classes/class-cartflows-
|
429 |
-
msgid "
|
430 |
-
msgstr ""
|
431 |
-
|
432 |
-
#: classes/class-cartflows-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
#:
|
457 |
-
msgid "
|
458 |
-
msgstr ""
|
459 |
-
|
460 |
-
#: classes/class-cartflows-wizard.php:
|
461 |
-
msgid "
|
462 |
-
msgstr ""
|
463 |
-
|
464 |
-
#: classes/class-cartflows-wizard.php:
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
#: includes/admin/cartflows-general.php:
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
"
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
"
|
604 |
-
"
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
#:
|
626 |
-
msgid "
|
627 |
-
msgstr ""
|
628 |
-
|
629 |
-
#:
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
"
|
642 |
-
msgstr ""
|
643 |
-
|
644 |
-
#:
|
645 |
-
msgid "
|
646 |
-
msgstr ""
|
647 |
-
|
648 |
-
#:
|
649 |
-
msgid "
|
650 |
-
msgstr ""
|
651 |
-
|
652 |
-
#:
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
#:
|
658 |
-
msgid "
|
659 |
-
msgstr ""
|
660 |
-
|
661 |
-
#:
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
#:
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
#:
|
764 |
-
msgid "
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
-
#:
|
768 |
-
msgid "
|
769 |
-
msgstr ""
|
770 |
-
|
771 |
-
#:
|
772 |
-
msgid "
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
#: modules/checkout/classes/class-cartflows-checkout-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
#: modules/checkout/classes/class-cartflows-checkout-
|
805 |
-
msgid "
|
806 |
-
msgstr ""
|
807 |
-
|
808 |
-
#: modules/checkout/classes/class-cartflows-checkout-
|
809 |
-
#: modules/checkout/classes/class-cartflows-checkout-
|
810 |
-
msgid "
|
811 |
-
msgstr ""
|
812 |
-
|
813 |
-
#: modules/checkout/classes/class-cartflows-checkout-
|
814 |
-
#: modules/checkout/classes/class-cartflows-checkout-
|
815 |
-
msgid "
|
816 |
-
msgstr ""
|
817 |
-
|
818 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
#: modules/
|
824 |
-
#: modules/
|
825 |
-
msgid "
|
826 |
-
msgstr ""
|
827 |
-
|
828 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
829 |
-
msgid "
|
830 |
-
msgstr ""
|
831 |
-
|
832 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
msgid "
|
860 |
-
msgstr ""
|
861 |
-
|
862 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
863 |
-
msgid "
|
864 |
-
msgstr ""
|
865 |
-
|
866 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
867 |
-
msgid "
|
868 |
-
msgstr ""
|
869 |
-
|
870 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
871 |
-
msgid "
|
872 |
-
msgstr ""
|
873 |
-
|
874 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
875 |
-
msgid "
|
876 |
-
msgstr ""
|
877 |
-
|
878 |
-
#: modules/checkout/classes/class-cartflows-checkout-meta.php:
|
879 |
-
msgid "
|
880 |
-
msgstr ""
|
881 |
-
|
882 |
-
#: modules/checkout/
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
#: modules/checkout/
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
#: modules/
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
#: modules/
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
#: modules/
|
957 |
-
msgid "
|
958 |
-
msgstr ""
|
959 |
-
|
960 |
-
#: modules/
|
961 |
-
#: modules/
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
#: modules/
|
972 |
-
msgid "
|
973 |
-
msgstr ""
|
974 |
-
|
975 |
-
#: modules/
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
#: modules/
|
985 |
-
#: modules/
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
#: modules/
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
msgid "
|
1008 |
-
msgstr ""
|
1009 |
-
|
1010 |
-
#: modules/
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
msgid "
|
1020 |
-
msgstr ""
|
1021 |
-
|
1022 |
-
#: modules/
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
msgid "
|
1032 |
-
msgstr ""
|
1033 |
-
|
1034 |
-
#: modules/
|
1035 |
-
#: modules/
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
msgid "Step
|
1077 |
-
msgstr ""
|
1078 |
-
|
1079 |
-
#: modules/flow/classes/class-cartflows-
|
1080 |
-
|
1081 |
-
msgid "
|
1082 |
-
msgstr ""
|
1083 |
-
|
1084 |
-
#: modules/flow/classes/class-cartflows-
|
1085 |
-
|
1086 |
-
msgid "
|
1087 |
-
msgstr ""
|
1088 |
-
|
1089 |
-
#: modules/flow/classes/class-cartflows-
|
1090 |
-
|
1091 |
-
msgid "
|
1092 |
-
msgstr ""
|
1093 |
-
|
1094 |
-
#: modules/flow/classes/class-cartflows-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
msgstr ""
|
1107 |
-
|
1108 |
-
#: modules/flow/
|
1109 |
-
msgid "
|
1110 |
-
msgstr ""
|
1111 |
-
|
1112 |
-
#: modules/flow/
|
1113 |
-
msgid "
|
1114 |
-
msgstr ""
|
1115 |
-
|
1116 |
-
#: modules/flow/
|
1117 |
-
msgid "
|
1118 |
-
msgstr ""
|
1119 |
-
|
1120 |
-
#: modules/flow/
|
1121 |
-
msgid "
|
1122 |
-
msgstr ""
|
1123 |
-
|
1124 |
-
#: modules/flow/
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
#: modules/
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
#: modules/
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
#: modules/
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
#: modules/
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
#: modules/
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
#: modules/widgets/class-cartflows-next-step.php:
|
1202 |
-
msgid "Next Step
|
1203 |
-
msgstr ""
|
1204 |
-
|
1205 |
-
#: modules/
|
1206 |
-
msgid "
|
1207 |
-
msgstr ""
|
1208 |
-
|
1209 |
-
#: modules/
|
1210 |
-
msgid "
|
1211 |
-
msgstr ""
|
1212 |
-
|
1213 |
-
#: modules/
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
"
|
1242 |
-
msgstr ""
|
1243 |
-
|
1244 |
-
#:
|
1245 |
-
|
1246 |
-
msgid "
|
1247 |
-
msgstr ""
|
1248 |
-
|
1249 |
-
#:
|
1250 |
-
msgid "
|
1251 |
-
msgstr ""
|
1252 |
-
|
1253 |
-
#:
|
1254 |
-
msgid "
|
1255 |
-
msgstr ""
|
1256 |
-
|
1257 |
-
#:
|
1258 |
-
msgid "
|
1259 |
-
msgstr ""
|
1260 |
-
|
1261 |
-
#:
|
1262 |
-
msgid "
|
1263 |
-
msgstr ""
|
1264 |
-
|
1265 |
-
#:
|
1266 |
-
msgid "
|
1267 |
-
msgstr ""
|
1268 |
-
|
1269 |
-
#:
|
1270 |
-
msgid "
|
1271 |
-
msgstr ""
|
1272 |
-
|
1273 |
-
#:
|
1274 |
-
msgid "
|
1275 |
-
msgstr ""
|
1276 |
-
|
1277 |
-
#:
|
1278 |
-
msgid "
|
1279 |
-
msgstr ""
|
1280 |
-
|
1281 |
-
#:
|
1282 |
-
msgid "
|
1283 |
-
msgstr ""
|
1284 |
-
|
1285 |
-
#:
|
1286 |
-
msgid "
|
1287 |
-
msgstr ""
|
1288 |
-
|
1289 |
-
#:
|
1290 |
-
msgid "
|
1291 |
-
msgstr ""
|
1292 |
-
|
1293 |
-
#:
|
1294 |
-
msgid "
|
1295 |
-
msgstr ""
|
1296 |
-
|
1297 |
-
#:
|
1298 |
-
msgid "
|
1299 |
-
msgstr ""
|
1300 |
-
|
1301 |
-
#:
|
1302 |
-
msgid ""
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
"
|
1312 |
-
msgstr ""
|
1313 |
-
|
1314 |
-
#:
|
1315 |
-
msgid "
|
1316 |
-
msgstr ""
|
1317 |
-
|
1318 |
-
#:
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
"
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
"
|
1348 |
-
"
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
msgid "
|
1428 |
-
msgstr ""
|
1429 |
-
|
1430 |
-
#:
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1443 |
msgstr ""
|
1 |
+
# Copyright (C) 2019 CartFlows Inc
|
2 |
+
# This file is distributed under the same license as the CartFlows package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: CartFlows 1.1.20\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cartflows\n"
|
7 |
+
"POT-Creation-Date: 2019-06-12 10:11:34+00:00\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
12 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
+
"Language: en\n"
|
15 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
+
"X-Poedit-Country: United States\n"
|
17 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
+
"X-Poedit-KeywordsList: "
|
19 |
+
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
20 |
+
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
21 |
+
"X-Poedit-Basepath: ../\n"
|
22 |
+
"X-Poedit-SearchPath-0: .\n"
|
23 |
+
"X-Poedit-Bookmarks: \n"
|
24 |
+
"X-Textdomain-Support: yes\n"
|
25 |
+
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
26 |
+
|
27 |
+
#: classes/batch-process/class-cartflows-importer-elementor.php:44
|
28 |
+
msgid "Invalid content."
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: classes/batch-process/class-cartflows-importer-elementor.php:52
|
32 |
+
msgid "Invalid content. Expected an array."
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: classes/batch-process/helpers/class-wp-background-process.php:435
|
36 |
+
msgid "Every %d Minutes"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: classes/class-cartflows-admin-fields.php:162
|
40 |
+
msgid "Select"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#: classes/class-cartflows-admin-fields.php:165
|
44 |
+
msgid "No Checkout Steps"
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: classes/class-cartflows-admin-fields.php:191
|
48 |
+
#. translators: %s: link
|
49 |
+
msgid ""
|
50 |
+
"Be sure not to add any product in above selected Global Checkout step. "
|
51 |
+
"Please read information about how to set up Global Checkout %1$shere%2$s."
|
52 |
+
msgstr ""
|
53 |
+
|
54 |
+
#: classes/class-cartflows-admin.php:137 classes/class-cartflows-admin.php:138
|
55 |
+
#: includes/admin/cartflows-general-bck.php:34
|
56 |
+
msgid "Settings"
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: classes/class-cartflows-admin.php:336
|
60 |
+
msgid "Installing and activating.."
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: classes/class-cartflows-admin.php:337
|
64 |
+
msgid "There was an error with the installation of plugin."
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
#: classes/class-cartflows-admin.php:390
|
68 |
+
msgid "Flows Library"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: classes/class-cartflows-admin.php:397
|
72 |
+
#: modules/flow/view/meta-flow-steps.php:144
|
73 |
+
msgid "Ready Templates"
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: classes/class-cartflows-admin.php:400
|
77 |
+
#: modules/flow/view/meta-flow-steps.php:147
|
78 |
+
msgid "Create Your Own"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: classes/class-cartflows-admin.php:411
|
82 |
+
#: modules/flow/view/meta-flow-steps.php:159
|
83 |
+
msgid "Search Sites"
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: classes/class-cartflows-admin.php:412
|
87 |
+
#: modules/flow/view/meta-flow-steps.php:160
|
88 |
+
msgid "Search Flow..."
|
89 |
+
msgstr ""
|
90 |
+
|
91 |
+
#: classes/class-cartflows-admin.php:429
|
92 |
+
msgid "Design Your Flow"
|
93 |
+
msgstr ""
|
94 |
+
|
95 |
+
#: classes/class-cartflows-admin.php:430
|
96 |
+
#: classes/class-cartflows-importer.php:597
|
97 |
+
#: classes/class-cartflows-importer.php:696
|
98 |
+
#: modules/flow/view/meta-flow-steps.php:190
|
99 |
+
msgid "Learn How"
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: classes/class-cartflows-api.php:368
|
103 |
+
msgid "Request successfully processed!"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: classes/class-cartflows-cloning.php:423
|
107 |
+
msgid "Clone this flow"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: classes/class-cartflows-cloning.php:423
|
111 |
+
msgid "Clone"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: classes/class-cartflows-flow-frontend.php:52
|
115 |
+
msgid ""
|
116 |
+
"Test mode is active — which displays random products for previewing. It can "
|
117 |
+
"be deactivated from the flow settings in the admin dashboard."
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: classes/class-cartflows-importer.php:80
|
121 |
+
msgid "Export this flow"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: classes/class-cartflows-importer.php:80 includes/exporter.php:18
|
125 |
+
msgid "Export"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: classes/class-cartflows-importer.php:91
|
129 |
+
msgid "Flow Export"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: classes/class-cartflows-importer.php:92
|
133 |
+
msgid "Flow Import"
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: classes/class-cartflows-importer.php:103
|
137 |
+
msgid "No post to export has been supplied!"
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: classes/class-cartflows-importer.php:294
|
141 |
+
msgid "Please upload a valid .json file"
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: classes/class-cartflows-importer.php:300
|
145 |
+
msgid "Please upload a file to import"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: classes/class-cartflows-importer.php:438
|
149 |
+
msgid "Successfully imported flows."
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: classes/class-cartflows-importer.php:470
|
153 |
+
msgid "Loading Steps"
|
154 |
+
msgstr ""
|
155 |
+
|
156 |
+
#: classes/class-cartflows-importer.php:472
|
157 |
+
msgid "Getting steps from the cloud. Please wait for the moment."
|
158 |
+
msgstr ""
|
159 |
+
|
160 |
+
#: classes/class-cartflows-importer.php:483
|
161 |
+
msgid "Searching Template.."
|
162 |
+
msgstr ""
|
163 |
+
|
164 |
+
#: classes/class-cartflows-importer.php:485
|
165 |
+
msgid "Getting templates from the cloud. Please wait for the moment."
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: classes/class-cartflows-importer.php:494
|
169 |
+
msgid "Importing.."
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: classes/class-cartflows-importer.php:503
|
173 |
+
#: classes/class-cartflows-importer.php:543
|
174 |
+
msgid "Imported"
|
175 |
+
msgstr ""
|
176 |
+
|
177 |
+
#: classes/class-cartflows-importer.php:504
|
178 |
+
#: classes/class-cartflows-importer.php:544
|
179 |
+
msgid "Thanks for patience"
|
180 |
+
msgstr ""
|
181 |
+
|
182 |
+
#: classes/class-cartflows-importer.php:513
|
183 |
+
#: classes/class-cartflows-importer.php:525
|
184 |
+
msgid "Coming Soon!"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: classes/class-cartflows-importer.php:544
|
188 |
+
msgid "Redirecting to the Elementor edit window."
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: classes/class-cartflows-importer.php:590
|
192 |
+
#: classes/class-cartflows-importer.php:706
|
193 |
+
msgid "Pro"
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
#: classes/class-cartflows-importer.php:631
|
197 |
+
#: classes/class-cartflows-importer.php:738
|
198 |
+
msgid "Activate License"
|
199 |
+
msgstr ""
|
200 |
+
|
201 |
+
#: classes/class-cartflows-importer.php:633
|
202 |
+
#: classes/class-cartflows-importer.php:740
|
203 |
+
msgid "Get Pro"
|
204 |
+
msgstr ""
|
205 |
+
|
206 |
+
#: classes/class-cartflows-importer.php:658
|
207 |
+
msgid "Create"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: classes/class-cartflows-importer.php:757
|
211 |
+
msgid "Under Maintenance.."
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: classes/class-cartflows-importer.php:758
|
215 |
+
msgid ""
|
216 |
+
"If you are seeing this message, most likely our servers are under routine "
|
217 |
+
"maintenance and we will be back shortly."
|
218 |
+
msgstr ""
|
219 |
+
|
220 |
+
#: classes/class-cartflows-importer.php:759
|
221 |
+
msgid ""
|
222 |
+
"In rare case, it is possible your website is having trouble connecting with "
|
223 |
+
"ours. If you need help, please feel free to get in touch with us from our "
|
224 |
+
"website.."
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: classes/class-cartflows-importer.php:789
|
228 |
+
#. translators: %s: Plugin string
|
229 |
+
msgid ""
|
230 |
+
"%1$s to see CartFlows templates. If you prefer another page builder tool, "
|
231 |
+
"you can <a href=\"%2$s\" target=\"blank\">select it here</a>."
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: classes/class-cartflows-importer.php:804
|
235 |
+
msgid "All"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: classes/class-cartflows-importer.php:807
|
239 |
+
msgid "Select Step Type"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: classes/class-cartflows-importer.php:884
|
243 |
+
msgid "Import from Cloud"
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: classes/class-cartflows-importer.php:1196
|
247 |
+
msgid "Sales Landing"
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: classes/class-cartflows-importer.php:1200
|
251 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:212
|
252 |
+
#: modules/flow/view/meta-flow-steps.php:12
|
253 |
+
msgid "Checkout (Woo)"
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: classes/class-cartflows-importer.php:1204
|
257 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:219
|
258 |
+
#: modules/flow/view/meta-flow-steps.php:13
|
259 |
+
msgid "Thank You (Woo)"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: classes/class-cartflows-importer.php:1212
|
263 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:205
|
264 |
+
#: modules/flow/view/meta-flow-steps.php:11
|
265 |
+
msgid "Landing"
|
266 |
+
msgstr ""
|
267 |
+
|
268 |
+
#: classes/class-cartflows-importer.php:1216
|
269 |
+
msgid "Thank You"
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: classes/class-cartflows-importer.php:1317
|
273 |
+
#. translators: %s: template ID
|
274 |
+
msgid "Invalid template id %1$s or post id %2$s."
|
275 |
+
msgstr ""
|
276 |
+
|
277 |
+
#: classes/class-cartflows-importer.php:1375
|
278 |
+
#. translators: %s: flow ID
|
279 |
+
msgid "Invalid flow id %1$s OR step type %2$s."
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: classes/class-cartflows-importer.php:1497
|
283 |
+
msgid ""
|
284 |
+
"Elementor is not activated. Please activate plugin Elementor Page Builder "
|
285 |
+
"to import the step."
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: classes/class-cartflows-importer.php:1615
|
289 |
+
msgid "Plugin Successfully Activated"
|
290 |
+
msgstr ""
|
291 |
+
|
292 |
+
#: classes/class-cartflows-loader.php:229
|
293 |
+
#. translators: %s: html tags
|
294 |
+
msgid ""
|
295 |
+
"You are using older version of %1$sCartFlows Pro%2$s. Please update "
|
296 |
+
"%1$sCartFlows Pro%2$s plugin to version %1$s%3$s%2$s or higher."
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: classes/class-cartflows-loader.php:479
|
300 |
+
#. translators: %s: html tags
|
301 |
+
msgid ""
|
302 |
+
"This %1$sCartFlows%2$s page requires %1$sWooCommerce%2$s plugin installed & "
|
303 |
+
"activated."
|
304 |
+
msgstr ""
|
305 |
+
|
306 |
+
#: classes/class-cartflows-loader.php:489
|
307 |
+
msgid "Activate WooCommerce"
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: classes/class-cartflows-loader.php:497
|
311 |
+
msgid "Install WooCommerce"
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: classes/class-cartflows-logger.php:161
|
315 |
+
msgid "Action failed. Please refresh the page and retry."
|
316 |
+
msgstr ""
|
317 |
+
|
318 |
+
#: classes/class-cartflows-meta-fields.php:86
|
319 |
+
msgid "Thin 100"
|
320 |
+
msgstr ""
|
321 |
+
|
322 |
+
#: classes/class-cartflows-meta-fields.php:87
|
323 |
+
msgid "Extra-Light 200"
|
324 |
+
msgstr ""
|
325 |
+
|
326 |
+
#: classes/class-cartflows-meta-fields.php:88
|
327 |
+
msgid "Light 300"
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#: classes/class-cartflows-meta-fields.php:89
|
331 |
+
msgid "Normal 400"
|
332 |
+
msgstr ""
|
333 |
+
|
334 |
+
#: classes/class-cartflows-meta-fields.php:90
|
335 |
+
msgid "Medium 500"
|
336 |
+
msgstr ""
|
337 |
+
|
338 |
+
#: classes/class-cartflows-meta-fields.php:91
|
339 |
+
msgid "Semi-Bold 600"
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: classes/class-cartflows-meta-fields.php:92
|
343 |
+
msgid "Bold 700"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: classes/class-cartflows-meta-fields.php:93
|
347 |
+
msgid "Extra-Bold 800"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: classes/class-cartflows-meta-fields.php:94
|
351 |
+
msgid "Ultra-Bold 900"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: classes/class-cartflows-meta-fields.php:217
|
355 |
+
#: classes/class-cartflows-meta-fields.php:325
|
356 |
+
#: classes/class-cartflows-meta-fields.php:1417
|
357 |
+
msgid "Remove"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: classes/class-cartflows-meta-fields.php:446
|
361 |
+
msgid "Field Width"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: classes/class-cartflows-meta-fields.php:450
|
365 |
+
msgid "33%"
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: classes/class-cartflows-meta-fields.php:451
|
369 |
+
msgid "50%"
|
370 |
+
msgstr ""
|
371 |
+
|
372 |
+
#: classes/class-cartflows-meta-fields.php:452
|
373 |
+
msgid "100%"
|
374 |
+
msgstr ""
|
375 |
+
|
376 |
+
#: classes/class-cartflows-meta-fields.php:463
|
377 |
+
msgid "Field Label"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: classes/class-cartflows-meta-fields.php:477
|
381 |
+
msgid "Options"
|
382 |
+
msgstr ""
|
383 |
+
|
384 |
+
#: classes/class-cartflows-meta-fields.php:492
|
385 |
+
#: classes/class-cartflows-meta-fields.php:505
|
386 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:459
|
387 |
+
msgid "Default"
|
388 |
+
msgstr ""
|
389 |
+
|
390 |
+
#: classes/class-cartflows-meta-fields.php:496
|
391 |
+
msgid "Checked"
|
392 |
+
msgstr ""
|
393 |
+
|
394 |
+
#: classes/class-cartflows-meta-fields.php:497
|
395 |
+
msgid "Un-Checked"
|
396 |
+
msgstr ""
|
397 |
+
|
398 |
+
#: classes/class-cartflows-meta-fields.php:518
|
399 |
+
msgid "Placeholder"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: classes/class-cartflows-meta-fields.php:530
|
403 |
+
msgid "Required"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: classes/class-cartflows-meta-fields.php:542
|
407 |
+
msgid "Enable this field"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: classes/class-cartflows-meta-fields.php:562
|
411 |
+
msgid "Label"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: classes/class-cartflows-meta-fields.php:990
|
415 |
+
#: classes/class-cartflows-meta-fields.php:1409
|
416 |
+
msgid "Search for a product…"
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: classes/class-cartflows-meta-fields.php:1031
|
420 |
+
msgid "Search for a coupon…"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: classes/class-cartflows-meta.php:34
|
424 |
+
msgid "Update"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: classes/class-cartflows-meta.php:42
|
428 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:84
|
429 |
+
msgid "Back to edit Flow"
|
430 |
+
msgstr ""
|
431 |
+
|
432 |
+
#: classes/class-cartflows-meta.php:63
|
433 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:191
|
434 |
+
#: modules/landing/classes/class-cartflows-landing-meta.php:136
|
435 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:148
|
436 |
+
msgid "Custom Script"
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: classes/class-cartflows-meta.php:66
|
440 |
+
msgid ""
|
441 |
+
"Custom script lets you add your own custom script on front end of this flow "
|
442 |
+
"page."
|
443 |
+
msgstr ""
|
444 |
+
|
445 |
+
#: classes/class-cartflows-wizard.php:62
|
446 |
+
msgid "Thanks for installing and using CartFlows!"
|
447 |
+
msgstr ""
|
448 |
+
|
449 |
+
#: classes/class-cartflows-wizard.php:63
|
450 |
+
msgid ""
|
451 |
+
"It is easy to use the CartFlows. Please use the setup wizard to quick start "
|
452 |
+
"setup."
|
453 |
+
msgstr ""
|
454 |
+
|
455 |
+
#: classes/class-cartflows-wizard.php:88
|
456 |
+
#: includes/admin/cartflows-general-bck.php:24
|
457 |
+
msgid "Welcome"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: classes/class-cartflows-wizard.php:93
|
461 |
+
msgid "Page Builder"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: classes/class-cartflows-wizard.php:97
|
465 |
+
msgid "Checkout"
|
466 |
+
msgstr ""
|
467 |
+
|
468 |
+
#: classes/class-cartflows-wizard.php:101
|
469 |
+
msgid "Training"
|
470 |
+
msgstr ""
|
471 |
+
|
472 |
+
#: classes/class-cartflows-wizard.php:105
|
473 |
+
msgid "Ready!"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: classes/class-cartflows-wizard.php:179
|
477 |
+
msgid "CartFlows Setup"
|
478 |
+
msgstr ""
|
479 |
+
|
480 |
+
#: classes/class-cartflows-wizard.php:205
|
481 |
+
msgid "Exit Setup Wizard"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: classes/class-cartflows-wizard.php:258
|
485 |
+
msgid "Welcome to CartFlows!"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: classes/class-cartflows-wizard.php:259
|
489 |
+
msgid ""
|
490 |
+
"Thank you for choosing CartFlows to get more leads, increase conversions, & "
|
491 |
+
"maximize profits. This short setup wizard will guide you though configuring "
|
492 |
+
"CartFlows and creating your first funnel."
|
493 |
+
msgstr ""
|
494 |
+
|
495 |
+
#: classes/class-cartflows-wizard.php:265
|
496 |
+
msgid "Lets Go »"
|
497 |
+
msgstr ""
|
498 |
+
|
499 |
+
#: classes/class-cartflows-wizard.php:292
|
500 |
+
msgid "Page Builder Setup"
|
501 |
+
msgstr ""
|
502 |
+
|
503 |
+
#: classes/class-cartflows-wizard.php:293
|
504 |
+
msgid "Please select a page builder you would like to use with CartFlows."
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: classes/class-cartflows-wizard.php:298
|
508 |
+
msgid "Select Page Builder"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: classes/class-cartflows-wizard.php:305
|
512 |
+
#: includes/admin/cartflows-general.php:84
|
513 |
+
msgid "Elementor"
|
514 |
+
msgstr ""
|
515 |
+
|
516 |
+
#: classes/class-cartflows-wizard.php:315
|
517 |
+
msgid "Beaver Builder Plugin (Lite Version)"
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: classes/class-cartflows-wizard.php:325
|
521 |
+
#: includes/admin/cartflows-general.php:86
|
522 |
+
msgid "Divi"
|
523 |
+
msgstr ""
|
524 |
+
|
525 |
+
#: classes/class-cartflows-wizard.php:335
|
526 |
+
#: includes/admin/cartflows-general.php:87
|
527 |
+
msgid "Other"
|
528 |
+
msgstr ""
|
529 |
+
|
530 |
+
#: classes/class-cartflows-wizard.php:357
|
531 |
+
msgid ""
|
532 |
+
"While CartFlows Should work with most page builders, we offer templates for "
|
533 |
+
"the above page builders."
|
534 |
+
msgstr ""
|
535 |
+
|
536 |
+
#: classes/class-cartflows-wizard.php:360
|
537 |
+
#: classes/class-cartflows-wizard.php:405
|
538 |
+
#: classes/class-cartflows-wizard.php:584
|
539 |
+
msgid "« Previous"
|
540 |
+
msgstr ""
|
541 |
+
|
542 |
+
#: classes/class-cartflows-wizard.php:363
|
543 |
+
msgid "Skip this step"
|
544 |
+
msgstr ""
|
545 |
+
|
546 |
+
#: classes/class-cartflows-wizard.php:364
|
547 |
+
msgid "Next »"
|
548 |
+
msgstr ""
|
549 |
+
|
550 |
+
#: classes/class-cartflows-wizard.php:383
|
551 |
+
msgid "Choose a checkout"
|
552 |
+
msgstr ""
|
553 |
+
|
554 |
+
#: classes/class-cartflows-wizard.php:386
|
555 |
+
msgid ""
|
556 |
+
"While CartFlows is designed to use WooCommerce sell digital and physical "
|
557 |
+
"products, not all funnels need a checkout system."
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: classes/class-cartflows-wizard.php:388
|
561 |
+
msgid ""
|
562 |
+
"Would you like to install WooCommerce to sell digital and physical products "
|
563 |
+
"in your funnels?"
|
564 |
+
msgstr ""
|
565 |
+
|
566 |
+
#: classes/class-cartflows-wizard.php:395
|
567 |
+
msgid "The following plugin will be installed and activated for you:"
|
568 |
+
msgstr ""
|
569 |
+
|
570 |
+
#: classes/class-cartflows-wizard.php:396
|
571 |
+
msgid "WooCommerce"
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
+
#: classes/class-cartflows-wizard.php:397
|
575 |
+
msgid "WooCommerce Cart Abandonment Recovery"
|
576 |
+
msgstr ""
|
577 |
+
|
578 |
+
#: classes/class-cartflows-wizard.php:408
|
579 |
+
#: classes/class-cartflows-wizard.php:587
|
580 |
+
msgid "No thanks"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: classes/class-cartflows-wizard.php:409
|
584 |
+
msgid "Yes"
|
585 |
+
msgstr ""
|
586 |
+
|
587 |
+
#: classes/class-cartflows-wizard.php:520
|
588 |
+
msgid "Congratulations, You Did It!"
|
589 |
+
msgstr ""
|
590 |
+
|
591 |
+
#: classes/class-cartflows-wizard.php:527
|
592 |
+
msgid ""
|
593 |
+
"CartFlows is ready to use on your website. You've successfully completed "
|
594 |
+
"the setup process and all that is left for you to do is create your first "
|
595 |
+
"flow."
|
596 |
+
msgstr ""
|
597 |
+
|
598 |
+
#: classes/class-cartflows-wizard.php:541
|
599 |
+
msgid "Create a flow"
|
600 |
+
msgstr ""
|
601 |
+
|
602 |
+
#: classes/class-cartflows-wizard.php:558
|
603 |
+
msgid "Exclusive CartFlows Training Course Offer"
|
604 |
+
msgstr ""
|
605 |
+
|
606 |
+
#: classes/class-cartflows-wizard.php:569
|
607 |
+
msgid ""
|
608 |
+
"We want you to get off to a great start using CartFlows, so we would like "
|
609 |
+
"to give access to our exclusive training course."
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: classes/class-cartflows-wizard.php:570
|
613 |
+
msgid "Get access to this couse, for free, by entering your email below."
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: classes/class-cartflows-wizard.php:572
|
617 |
+
msgid "Enter Email address"
|
618 |
+
msgstr ""
|
619 |
+
|
620 |
+
#: classes/class-cartflows-wizard.php:588
|
621 |
+
msgid "Allow"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: classes/logger/class-cartflows-log-handler-file.php:351
|
625 |
+
#: classes/logger/class-cartflows-log-handler-file.php:371
|
626 |
+
msgid "This method should not be called before plugins_loaded."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: classes/logger/class-cartflows-wc-logger.php:58
|
630 |
+
#. translators: 1: class name 2: Cartflows_Log_Handler_Interface
|
631 |
+
msgid "The provided handler %1$s does not implement %2$s."
|
632 |
+
msgstr ""
|
633 |
+
|
634 |
+
#: classes/logger/class-cartflows-wc-logger.php:136
|
635 |
+
#. translators: 1: Cartflows_WC_Logger::log 2: level
|
636 |
+
msgid "%1$s was called with an invalid level \"%2$s\"."
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: includes/admin/cartflows-admin.php:19
|
640 |
+
#: includes/admin/cartflows-general.php:40
|
641 |
+
msgid "Modernizing WordPress eCommerce!"
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: includes/admin/cartflows-admin.php:29
|
645 |
+
msgid "Settings saved successfully."
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: includes/admin/cartflows-error-log.php:36
|
649 |
+
msgid "%1$s at %2$s"
|
650 |
+
msgstr ""
|
651 |
+
|
652 |
+
#: includes/admin/cartflows-error-log.php:41
|
653 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:123
|
654 |
+
msgid "View"
|
655 |
+
msgstr ""
|
656 |
+
|
657 |
+
#: includes/admin/cartflows-error-log.php:65
|
658 |
+
msgid "Delete log"
|
659 |
+
msgstr ""
|
660 |
+
|
661 |
+
#: includes/admin/cartflows-error-log.php:70
|
662 |
+
msgid "There are currently no logs to view."
|
663 |
+
msgstr ""
|
664 |
+
|
665 |
+
#: includes/admin/cartflows-general-bck.php:10
|
666 |
+
msgid "Selec"
|
667 |
+
msgstr ""
|
668 |
+
|
669 |
+
#: includes/admin/cartflows-general-bck.php:22
|
670 |
+
msgid "General"
|
671 |
+
msgstr ""
|
672 |
+
|
673 |
+
#: includes/admin/cartflows-general.php:25
|
674 |
+
#: includes/admin/cartflows-general.php:48
|
675 |
+
msgid "General Settings"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
+
#: includes/admin/cartflows-general.php:32
|
679 |
+
msgid "Getting Started"
|
680 |
+
msgstr ""
|
681 |
+
|
682 |
+
#: includes/admin/cartflows-general.php:61
|
683 |
+
msgid "Disallow search engines from indexing flows"
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: includes/admin/cartflows-general.php:71
|
687 |
+
#: modules/flow/view/meta-flow-steps.php:86
|
688 |
+
msgid "Global Checkout"
|
689 |
+
msgstr ""
|
690 |
+
|
691 |
+
#: includes/admin/cartflows-general.php:80
|
692 |
+
msgid "Show Templates designed with"
|
693 |
+
msgstr ""
|
694 |
+
|
695 |
+
#: includes/admin/cartflows-general.php:81
|
696 |
+
msgid ""
|
697 |
+
"CartFlows offers flow templates that can be imported in one click. These "
|
698 |
+
"templates are available in few different page builders. Please choose your "
|
699 |
+
"preferred page builder from the list so you will only see templates that "
|
700 |
+
"are made using that page builder.."
|
701 |
+
msgstr ""
|
702 |
+
|
703 |
+
#: includes/admin/cartflows-general.php:85
|
704 |
+
msgid "Beaver Builder"
|
705 |
+
msgstr ""
|
706 |
+
|
707 |
+
#: includes/admin/cartflows-general.php:96
|
708 |
+
msgid "Save Changes"
|
709 |
+
msgstr ""
|
710 |
+
|
711 |
+
#: includes/admin/cartflows-general.php:108
|
712 |
+
msgid "Knowledge Base"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: includes/admin/cartflows-general.php:112
|
716 |
+
msgid "Not sure how something works? Take a peek at the knowledge base and learn."
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#: includes/admin/cartflows-general.php:115
|
720 |
+
msgid "Visit Knowledge Base »"
|
721 |
+
msgstr ""
|
722 |
+
|
723 |
+
#: includes/admin/cartflows-general.php:123
|
724 |
+
msgid "Community"
|
725 |
+
msgstr ""
|
726 |
+
|
727 |
+
#: includes/admin/cartflows-general.php:127
|
728 |
+
msgid ""
|
729 |
+
"Join the community of super helpful CartFlows users. Say hello, ask "
|
730 |
+
"questions, give feedback and help each other!"
|
731 |
+
msgstr ""
|
732 |
+
|
733 |
+
#: includes/admin/cartflows-general.php:130
|
734 |
+
msgid "Join Our Facebook Group »"
|
735 |
+
msgstr ""
|
736 |
+
|
737 |
+
#: includes/admin/cartflows-general.php:138
|
738 |
+
msgid "Five Star Support"
|
739 |
+
msgstr ""
|
740 |
+
|
741 |
+
#: includes/admin/cartflows-general.php:142
|
742 |
+
msgid "Got a question? Get in touch with CartFlows developers. We're happy to help!"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: includes/admin/cartflows-general.php:145
|
746 |
+
msgid "Submit a Ticket »"
|
747 |
+
msgstr ""
|
748 |
+
|
749 |
+
#: includes/admin/cartflows-general.php:155
|
750 |
+
msgid "Load Minified CSS"
|
751 |
+
msgstr ""
|
752 |
+
|
753 |
+
#: includes/admin/cartflows-general.php:160
|
754 |
+
msgid ""
|
755 |
+
"Load the Minified CSS from here. Just Enable it by checking the below given "
|
756 |
+
"checkbox."
|
757 |
+
msgstr ""
|
758 |
+
|
759 |
+
#: includes/admin/cartflows-general.php:167
|
760 |
+
msgid "Load minified CSS & JS Files"
|
761 |
+
msgstr ""
|
762 |
+
|
763 |
+
#: includes/admin/cartflows-general.php:172
|
764 |
+
msgid "Save"
|
765 |
+
msgstr ""
|
766 |
+
|
767 |
+
#: includes/exporter.php:12
|
768 |
+
msgid "Export Flows to a JSON file"
|
769 |
+
msgstr ""
|
770 |
+
|
771 |
+
#: includes/exporter.php:13
|
772 |
+
msgid ""
|
773 |
+
"This tool allows you to generate and download a JSON file containing a list "
|
774 |
+
"of all flows."
|
775 |
+
msgstr ""
|
776 |
+
|
777 |
+
#: includes/importer.php:12
|
778 |
+
msgid "Import Flows to a JSON file"
|
779 |
+
msgstr ""
|
780 |
+
|
781 |
+
#: includes/importer.php:13
|
782 |
+
msgid "This tool allows you to import the flows from the JSON file."
|
783 |
+
msgstr ""
|
784 |
+
|
785 |
+
#: includes/importer.php:21
|
786 |
+
msgid "Import"
|
787 |
+
msgstr ""
|
788 |
+
|
789 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:161
|
790 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-markup.php:64
|
791 |
+
msgid ""
|
792 |
+
"WooCommerce functions are not exists. If you are in iframe, please reload "
|
793 |
+
"the iframe"
|
794 |
+
msgstr ""
|
795 |
+
|
796 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:177
|
797 |
+
msgid "Checkout ID not found"
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:343
|
801 |
+
msgid "Variations Not set"
|
802 |
+
msgstr ""
|
803 |
+
|
804 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:352
|
805 |
+
msgid "This product can't be purcahsed"
|
806 |
+
msgstr ""
|
807 |
+
|
808 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:948
|
809 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:979
|
810 |
+
msgid "Coupon Code"
|
811 |
+
msgstr ""
|
812 |
+
|
813 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:953
|
814 |
+
#: modules/checkout/classes/class-cartflows-checkout-markup.php:988
|
815 |
+
msgid "Apply"
|
816 |
+
msgstr ""
|
817 |
+
|
818 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:68
|
819 |
+
msgid "Checkout Layout"
|
820 |
+
msgstr ""
|
821 |
+
|
822 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:155
|
823 |
+
#: modules/landing/classes/class-cartflows-landing-meta.php:130
|
824 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:130
|
825 |
+
msgid "Shortcodes"
|
826 |
+
msgstr ""
|
827 |
+
|
828 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:161
|
829 |
+
msgid "Select Product"
|
830 |
+
msgstr ""
|
831 |
+
|
832 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:167
|
833 |
+
msgid "Order Bump"
|
834 |
+
msgstr ""
|
835 |
+
|
836 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:173
|
837 |
+
msgid "Checkout Design"
|
838 |
+
msgstr ""
|
839 |
+
|
840 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:179
|
841 |
+
msgid "Checkout Fields"
|
842 |
+
msgstr ""
|
843 |
+
|
844 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:185
|
845 |
+
msgid "Logo (Optional)"
|
846 |
+
msgstr ""
|
847 |
+
|
848 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:250
|
849 |
+
msgid "Add this shortcode to your checkout page"
|
850 |
+
msgstr ""
|
851 |
+
|
852 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:302
|
853 |
+
#. translators: %s: link
|
854 |
+
msgid "Upgrade to %1$sCartFlows Pro%2$s for Order Bump feature"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:330
|
858 |
+
#. translators: %s: link
|
859 |
+
msgid "Upgrade to %1$sCartFlows Pro%2$s for Custom Fields feature"
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:358
|
863 |
+
msgid "One Column (Available in CartFlows Pro) "
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:359
|
867 |
+
msgid "Two Step (Available in CartFlows Pro) "
|
868 |
+
msgstr ""
|
869 |
+
|
870 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:365
|
871 |
+
msgid "Checkout Skin"
|
872 |
+
msgstr ""
|
873 |
+
|
874 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:369
|
875 |
+
msgid "One Column"
|
876 |
+
msgstr ""
|
877 |
+
|
878 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:370
|
879 |
+
msgid "Two Column"
|
880 |
+
msgstr ""
|
881 |
+
|
882 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:371
|
883 |
+
msgid "Two Step"
|
884 |
+
msgstr ""
|
885 |
+
|
886 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:380
|
887 |
+
msgid "Primary Color"
|
888 |
+
msgstr ""
|
889 |
+
|
890 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:389
|
891 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:424
|
892 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:470
|
893 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:562
|
894 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:203
|
895 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:226
|
896 |
+
msgid "Font Family"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:397
|
900 |
+
msgid "Advance Options"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:409
|
904 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:211
|
905 |
+
msgid "Heading"
|
906 |
+
msgstr ""
|
907 |
+
|
908 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:415
|
909 |
+
msgid "Heading Color"
|
910 |
+
msgstr ""
|
911 |
+
|
912 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:433
|
913 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:479
|
914 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:571
|
915 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:235
|
916 |
+
msgid "Font Weight"
|
917 |
+
msgstr ""
|
918 |
+
|
919 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:441
|
920 |
+
msgid "Input Fields"
|
921 |
+
msgstr ""
|
922 |
+
|
923 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:449
|
924 |
+
msgid "Floating Labels (Available in CartFlows Pro)"
|
925 |
+
msgstr ""
|
926 |
+
|
927 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:455
|
928 |
+
msgid "Style"
|
929 |
+
msgstr ""
|
930 |
+
|
931 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:460
|
932 |
+
msgid "Floating Labels"
|
933 |
+
msgstr ""
|
934 |
+
|
935 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:487
|
936 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:579
|
937 |
+
msgid "Size"
|
938 |
+
msgstr ""
|
939 |
+
|
940 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:491
|
941 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:583
|
942 |
+
msgid "Extra Small"
|
943 |
+
msgstr ""
|
944 |
+
|
945 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:492
|
946 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:584
|
947 |
+
msgid "Small"
|
948 |
+
msgstr ""
|
949 |
+
|
950 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:493
|
951 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:585
|
952 |
+
msgid "Medium"
|
953 |
+
msgstr ""
|
954 |
+
|
955 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:494
|
956 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:586
|
957 |
+
msgid "Large"
|
958 |
+
msgstr ""
|
959 |
+
|
960 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:495
|
961 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:587
|
962 |
+
msgid "Extra Large"
|
963 |
+
msgstr ""
|
964 |
+
|
965 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:496
|
966 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:588
|
967 |
+
msgid "Custom"
|
968 |
+
msgstr ""
|
969 |
+
|
970 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:503
|
971 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:595
|
972 |
+
msgid "Top Bottom Spacing"
|
973 |
+
msgstr ""
|
974 |
+
|
975 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:511
|
976 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:603
|
977 |
+
msgid "Left Right Spacing"
|
978 |
+
msgstr ""
|
979 |
+
|
980 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:519
|
981 |
+
msgid "Text / Placeholder Color"
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:527
|
985 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:627
|
986 |
+
msgid "Background Color"
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:535
|
990 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:643
|
991 |
+
msgid "Border Color"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:542
|
995 |
+
msgid "Label Color"
|
996 |
+
msgstr ""
|
997 |
+
|
998 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:555
|
999 |
+
msgid "Buttons"
|
1000 |
+
msgstr ""
|
1001 |
+
|
1002 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:611
|
1003 |
+
msgid "Text Color"
|
1004 |
+
msgstr ""
|
1005 |
+
|
1006 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:619
|
1007 |
+
msgid "Text Hover Color"
|
1008 |
+
msgstr ""
|
1009 |
+
|
1010 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:635
|
1011 |
+
msgid "Background Hover Color"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:651
|
1015 |
+
msgid "Border Hover Color"
|
1016 |
+
msgstr ""
|
1017 |
+
|
1018 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:664
|
1019 |
+
msgid "Sections"
|
1020 |
+
msgstr ""
|
1021 |
+
|
1022 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:670
|
1023 |
+
msgid "Highlight Area Background Color"
|
1024 |
+
msgstr ""
|
1025 |
+
|
1026 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:709
|
1027 |
+
msgid "Header Logo"
|
1028 |
+
msgstr ""
|
1029 |
+
|
1030 |
+
#: modules/checkout/classes/class-cartflows-checkout-meta.php:717
|
1031 |
+
msgid "Logo Width (In px)"
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
+
#: modules/checkout/templates/embed/checkout-template-simple.php:25
|
1035 |
+
#: modules/checkout/templates/wcf-template.php:36
|
1036 |
+
msgid "Your cart is currently empty."
|
1037 |
+
msgstr ""
|
1038 |
+
|
1039 |
+
#: modules/checkout/templates/wcf-template.php:46
|
1040 |
+
msgid "Copyright ©"
|
1041 |
+
msgstr ""
|
1042 |
+
|
1043 |
+
#: modules/checkout/templates/wcf-template.php:50
|
1044 |
+
msgid "All Rights Reserved"
|
1045 |
+
msgstr ""
|
1046 |
+
|
1047 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:199
|
1048 |
+
#. translators: %s flow id
|
1049 |
+
msgid "Steps not created for flow - %s"
|
1050 |
+
msgstr ""
|
1051 |
+
|
1052 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:213
|
1053 |
+
#. translators: %s flow id
|
1054 |
+
msgid "Steps already exists. Flow - %s"
|
1055 |
+
msgstr ""
|
1056 |
+
|
1057 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:224
|
1058 |
+
msgid "Landing Page"
|
1059 |
+
msgstr ""
|
1060 |
+
|
1061 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:225
|
1062 |
+
msgid "Checkout Page"
|
1063 |
+
msgstr ""
|
1064 |
+
|
1065 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:226
|
1066 |
+
msgid "Thank You Page"
|
1067 |
+
msgstr ""
|
1068 |
+
|
1069 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:262
|
1070 |
+
#. translators: %s flow id
|
1071 |
+
msgid "Steps created for flow - %s"
|
1072 |
+
msgstr ""
|
1073 |
+
|
1074 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:333
|
1075 |
+
#. translators: %s flow id
|
1076 |
+
msgid "Step not deleted for flow - %s"
|
1077 |
+
msgstr ""
|
1078 |
+
|
1079 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:364
|
1080 |
+
#. translators: %s flow id
|
1081 |
+
msgid "Step deleted for flow - %s"
|
1082 |
+
msgstr ""
|
1083 |
+
|
1084 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:387
|
1085 |
+
#. translators: %s flow id
|
1086 |
+
msgid "Steps not sorted for flow - %s"
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:410
|
1090 |
+
#. translators: %s flow id
|
1091 |
+
msgid "Steps sorted for flow - %s"
|
1092 |
+
msgstr ""
|
1093 |
+
|
1094 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:526
|
1095 |
+
msgid "Flow Settings"
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:610
|
1099 |
+
msgid "Enable Test Mode"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: modules/flow/classes/class-cartflows-flow-meta.php:617
|
1103 |
+
msgid ""
|
1104 |
+
"Test mode adds random products in your flow, so you can preview it easily "
|
1105 |
+
"while testing."
|
1106 |
+
msgstr ""
|
1107 |
+
|
1108 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:57
|
1109 |
+
msgid "Search Flows"
|
1110 |
+
msgstr ""
|
1111 |
+
|
1112 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:58
|
1113 |
+
msgid "All Flows"
|
1114 |
+
msgstr ""
|
1115 |
+
|
1116 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:59
|
1117 |
+
msgid "Edit Flow"
|
1118 |
+
msgstr ""
|
1119 |
+
|
1120 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:60
|
1121 |
+
msgid "View Flow"
|
1122 |
+
msgstr ""
|
1123 |
+
|
1124 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:61
|
1125 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:63
|
1126 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:150
|
1127 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:152
|
1128 |
+
msgid "Add New"
|
1129 |
+
msgstr ""
|
1130 |
+
|
1131 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:62
|
1132 |
+
msgid "Update Flow"
|
1133 |
+
msgstr ""
|
1134 |
+
|
1135 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:64
|
1136 |
+
msgid "New Flow Name"
|
1137 |
+
msgstr ""
|
1138 |
+
|
1139 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:230
|
1140 |
+
msgid "Flows"
|
1141 |
+
msgstr ""
|
1142 |
+
|
1143 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:252
|
1144 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:258
|
1145 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:423
|
1146 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:429
|
1147 |
+
#. translators: %s: singular custom post type name
|
1148 |
+
msgid "%s updated."
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:254
|
1152 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:425
|
1153 |
+
#. translators: %s: singular custom post type name
|
1154 |
+
msgid "Custom %s updated."
|
1155 |
+
msgstr ""
|
1156 |
+
|
1157 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:256
|
1158 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:427
|
1159 |
+
#. translators: %s: singular custom post type name
|
1160 |
+
msgid "Custom %s deleted."
|
1161 |
+
msgstr ""
|
1162 |
+
|
1163 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:260
|
1164 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:431
|
1165 |
+
#. translators: %1$s: singular custom post type name ,%2$s: date and time of
|
1166 |
+
#. the revision
|
1167 |
+
msgid "%1$s restored to revision from %2$s"
|
1168 |
+
msgstr ""
|
1169 |
+
|
1170 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:262
|
1171 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:433
|
1172 |
+
#. translators: %s: singular custom post type name
|
1173 |
+
msgid "%s published."
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:264
|
1177 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:435
|
1178 |
+
#. translators: %s: singular custom post type name
|
1179 |
+
msgid "%s saved."
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:266
|
1183 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:437
|
1184 |
+
#. translators: %s: singular custom post type name
|
1185 |
+
msgid "%s submitted."
|
1186 |
+
msgstr ""
|
1187 |
+
|
1188 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:268
|
1189 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:439
|
1190 |
+
#. translators: %s: singular custom post type name
|
1191 |
+
msgid "%s scheduled for."
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:270
|
1195 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:441
|
1196 |
+
#. translators: %s: singular custom post type name
|
1197 |
+
msgid "%s draft updated."
|
1198 |
+
msgstr ""
|
1199 |
+
|
1200 |
+
#: modules/flow/classes/class-cartflows-flow-shortcodes.php:148
|
1201 |
+
#: modules/widgets/class-cartflows-next-step.php:79
|
1202 |
+
msgid "Next Step"
|
1203 |
+
msgstr ""
|
1204 |
+
|
1205 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:146
|
1206 |
+
msgid "Search Steps"
|
1207 |
+
msgstr ""
|
1208 |
+
|
1209 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:147
|
1210 |
+
msgid "All Steps"
|
1211 |
+
msgstr ""
|
1212 |
+
|
1213 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:148
|
1214 |
+
#: modules/flow/view/meta-flow-steps.php:98
|
1215 |
+
msgid "Edit Step"
|
1216 |
+
msgstr ""
|
1217 |
+
|
1218 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:149
|
1219 |
+
#: modules/flow/view/meta-flow-steps.php:94
|
1220 |
+
msgid "View Step"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:151
|
1224 |
+
msgid "Update Step"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:153
|
1228 |
+
msgid "New Step Name"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:177
|
1232 |
+
msgid "Step Type"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:187
|
1236 |
+
msgid "Step Flow"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:226
|
1240 |
+
#: modules/flow/view/meta-flow-steps.php:14
|
1241 |
+
msgid "Upsell (Woo)"
|
1242 |
+
msgstr ""
|
1243 |
+
|
1244 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:233
|
1245 |
+
#: modules/flow/view/meta-flow-steps.php:15
|
1246 |
+
msgid "Downsell (Woo)"
|
1247 |
+
msgstr ""
|
1248 |
+
|
1249 |
+
#: modules/flow/view/meta-flow-steps.php:78
|
1250 |
+
msgid "No Product Assigned"
|
1251 |
+
msgstr ""
|
1252 |
+
|
1253 |
+
#: modules/flow/view/meta-flow-steps.php:82
|
1254 |
+
msgid "Global Checkout - Remove selected checkout product"
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: modules/flow/view/meta-flow-steps.php:102
|
1258 |
+
msgid "Clone Step"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#: modules/flow/view/meta-flow-steps.php:106
|
1262 |
+
msgid "Delete Step"
|
1263 |
+
msgstr ""
|
1264 |
+
|
1265 |
+
#: modules/flow/view/meta-flow-steps.php:121
|
1266 |
+
msgid "Add New Step"
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#: modules/flow/view/meta-flow-steps.php:137
|
1270 |
+
msgid "Steps Library"
|
1271 |
+
msgstr ""
|
1272 |
+
|
1273 |
+
#: modules/flow/view/meta-flow-steps.php:186
|
1274 |
+
msgid "Create Step"
|
1275 |
+
msgstr ""
|
1276 |
+
|
1277 |
+
#: modules/flow/view/meta-flow-steps.php:188
|
1278 |
+
msgid "You need a Cartflows Pro version to import Upsell / Downsell"
|
1279 |
+
msgstr ""
|
1280 |
+
|
1281 |
+
#: modules/landing/classes/class-cartflows-landing-meta.php:66
|
1282 |
+
msgid "Landing Page Settings"
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: modules/landing/classes/class-cartflows-landing-meta.php:169
|
1286 |
+
msgid "Next Step Link"
|
1287 |
+
msgstr ""
|
1288 |
+
|
1289 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:65
|
1290 |
+
msgid "Thank You Page Settings"
|
1291 |
+
msgstr ""
|
1292 |
+
|
1293 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:136
|
1294 |
+
msgid "Thank You Design"
|
1295 |
+
msgstr ""
|
1296 |
+
|
1297 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:142
|
1298 |
+
msgid "Thank You Fields"
|
1299 |
+
msgstr ""
|
1300 |
+
|
1301 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:176
|
1302 |
+
msgid "Order Details"
|
1303 |
+
msgstr ""
|
1304 |
+
|
1305 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:188
|
1306 |
+
msgid "Text"
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:194
|
1310 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:217
|
1311 |
+
msgid "Color"
|
1312 |
+
msgstr ""
|
1313 |
+
|
1314 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:243
|
1315 |
+
msgid "Advanced Options"
|
1316 |
+
msgstr ""
|
1317 |
+
|
1318 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:253
|
1319 |
+
msgid "Container Width (In px)"
|
1320 |
+
msgstr ""
|
1321 |
+
|
1322 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:261
|
1323 |
+
msgid "Section Background Color"
|
1324 |
+
msgstr ""
|
1325 |
+
|
1326 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:275
|
1327 |
+
msgid "Enable Order Overview "
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:283
|
1331 |
+
msgid "Enable Order Details "
|
1332 |
+
msgstr ""
|
1333 |
+
|
1334 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:291
|
1335 |
+
msgid "Enable Billing Details "
|
1336 |
+
msgstr ""
|
1337 |
+
|
1338 |
+
#: modules/thankyou/classes/class-cartflows-thankyou-meta.php:299
|
1339 |
+
msgid "Enable Shipping Details "
|
1340 |
+
msgstr ""
|
1341 |
+
|
1342 |
+
#: modules/widgets/class-cartflows-next-step.php:25
|
1343 |
+
msgid "CartFlows Next Step"
|
1344 |
+
msgstr ""
|
1345 |
+
|
1346 |
+
#: modules/widgets/class-cartflows-next-step.php:27
|
1347 |
+
msgid "Next Step Widgets"
|
1348 |
+
msgstr ""
|
1349 |
+
|
1350 |
+
#: modules/widgets/class-cartflows-next-step.php:107
|
1351 |
+
msgid "New title"
|
1352 |
+
msgstr ""
|
1353 |
+
|
1354 |
+
#: modules/widgets/class-cartflows-next-step.php:124
|
1355 |
+
msgid "Title:"
|
1356 |
+
msgstr ""
|
1357 |
+
|
1358 |
+
#: modules/widgets/class-cartflows-next-step.php:128
|
1359 |
+
msgid "Flow ID:"
|
1360 |
+
msgstr ""
|
1361 |
+
|
1362 |
+
#: modules/widgets/class-cartflows-next-step.php:132
|
1363 |
+
msgid "Step ID:"
|
1364 |
+
msgstr ""
|
1365 |
+
|
1366 |
+
#: woocommerce/template/cart/cart-shipping.php:51
|
1367 |
+
#. Translators: $s shipping destination.
|
1368 |
+
msgid "Estimate for %s."
|
1369 |
+
msgstr ""
|
1370 |
+
|
1371 |
+
#: woocommerce/template/cart/cart-shipping.php:52
|
1372 |
+
msgid "Change address"
|
1373 |
+
msgstr ""
|
1374 |
+
|
1375 |
+
#: woocommerce/template/cart/cart-shipping.php:54
|
1376 |
+
msgid "This is only an estimate. Prices will be updated during checkout."
|
1377 |
+
msgstr ""
|
1378 |
+
|
1379 |
+
#: woocommerce/template/cart/cart-shipping.php:61
|
1380 |
+
msgid "Enter your address to view shipping options."
|
1381 |
+
msgstr ""
|
1382 |
+
|
1383 |
+
#: woocommerce/template/cart/cart-shipping.php:63
|
1384 |
+
msgid ""
|
1385 |
+
"There are no shipping methods available. Please ensure that your address "
|
1386 |
+
"has been entered correctly, or contact us if you need any help."
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: woocommerce/template/cart/cart-shipping.php:66
|
1390 |
+
#. Translators: $s shipping destination.
|
1391 |
+
msgid "No shipping options were found for %s."
|
1392 |
+
msgstr ""
|
1393 |
+
|
1394 |
+
#: woocommerce/template/cart/cart-shipping.php:67
|
1395 |
+
msgid "Enter a different address"
|
1396 |
+
msgstr ""
|
1397 |
+
|
1398 |
+
#: woocommerce/template/checkout/form-billing.php:27
|
1399 |
+
msgid "Billing & Shipping"
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: woocommerce/template/checkout/form-billing.php:31
|
1403 |
+
msgid "Billing details"
|
1404 |
+
msgstr ""
|
1405 |
+
|
1406 |
+
#: woocommerce/template/checkout/form-billing.php:59
|
1407 |
+
msgid "Create an account?"
|
1408 |
+
msgstr ""
|
1409 |
+
|
1410 |
+
#: woocommerce/template/checkout/form-checkout.php:26
|
1411 |
+
msgid "You must be logged in to checkout."
|
1412 |
+
msgstr ""
|
1413 |
+
|
1414 |
+
#: woocommerce/template/checkout/form-checkout.php:52
|
1415 |
+
msgid "Your order"
|
1416 |
+
msgstr ""
|
1417 |
+
|
1418 |
+
#: woocommerce/template/checkout/form-coupon.php:26
|
1419 |
+
msgid "Have a coupon?"
|
1420 |
+
msgstr ""
|
1421 |
+
|
1422 |
+
#: woocommerce/template/checkout/form-coupon.php:26
|
1423 |
+
msgid "Click here to enter your code"
|
1424 |
+
msgstr ""
|
1425 |
+
|
1426 |
+
#: woocommerce/template/checkout/form-coupon.php:31
|
1427 |
+
msgid "If you have a coupon code, please apply it below."
|
1428 |
+
msgstr ""
|
1429 |
+
|
1430 |
+
#: woocommerce/template/checkout/form-coupon.php:34
|
1431 |
+
msgid "Coupon code"
|
1432 |
+
msgstr ""
|
1433 |
+
|
1434 |
+
#: woocommerce/template/checkout/form-coupon.php:38
|
1435 |
+
msgid "Apply coupon"
|
1436 |
+
msgstr ""
|
1437 |
+
|
1438 |
+
#: woocommerce/template/checkout/form-login.php:26
|
1439 |
+
msgid "Returning customer?"
|
1440 |
+
msgstr ""
|
1441 |
+
|
1442 |
+
#: woocommerce/template/checkout/form-login.php:26
|
1443 |
+
msgid "Click here to login"
|
1444 |
+
msgstr ""
|
1445 |
+
|
1446 |
+
#: woocommerce/template/checkout/form-login.php:32
|
1447 |
+
msgid ""
|
1448 |
+
"If you have shopped with us before, please enter your details below. If you "
|
1449 |
+
"are a new customer, please proceed to the Billing & Shipping section."
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: woocommerce/template/checkout/payment.php:33
|
1453 |
+
msgid ""
|
1454 |
+
"Sorry, it seems that there are no available payment methods for your state. "
|
1455 |
+
"Please contact us if you require assistance or wish to make alternate "
|
1456 |
+
"arrangements."
|
1457 |
+
msgstr ""
|
1458 |
+
|
1459 |
+
#: woocommerce/template/checkout/payment.php:33
|
1460 |
+
msgid "Please fill in your details above to see available payment methods."
|
1461 |
+
msgstr ""
|
1462 |
+
|
1463 |
+
#: woocommerce/template/checkout/payment.php:42
|
1464 |
+
#. translators: $1 and $2 opening and closing emphasis tags respectively
|
1465 |
+
msgid ""
|
1466 |
+
"Since your browser does not support JavaScript, or it is disabled, please "
|
1467 |
+
"ensure you click the %1$sUpdate Totals%2$s button before placing your "
|
1468 |
+
"order. You may be charged more than the amount stated above if you fail to "
|
1469 |
+
"do so."
|
1470 |
+
msgstr ""
|
1471 |
+
|
1472 |
+
#: woocommerce/template/checkout/payment.php:44
|
1473 |
+
msgid "Update totals"
|
1474 |
+
msgstr ""
|
1475 |
+
|
1476 |
+
#: woocommerce/template/checkout/review-order.php:26
|
1477 |
+
msgid "Product"
|
1478 |
+
msgstr ""
|
1479 |
+
|
1480 |
+
#: woocommerce/template/checkout/review-order.php:27
|
1481 |
+
#: woocommerce/template/checkout/review-order.php:106
|
1482 |
+
msgid "Total"
|
1483 |
+
msgstr ""
|
1484 |
+
|
1485 |
+
#: woocommerce/template/checkout/review-order.php:59
|
1486 |
+
msgid "Subtotal"
|
1487 |
+
msgstr ""
|
1488 |
+
|
1489 |
+
#: woocommerce/template/checkout/thankyou.php:30
|
1490 |
+
msgid ""
|
1491 |
+
"Unfortunately your order cannot be processed as the originating "
|
1492 |
+
"bank/merchant has declined your transaction. Please attempt your purchase "
|
1493 |
+
"again."
|
1494 |
+
msgstr ""
|
1495 |
+
|
1496 |
+
#: woocommerce/template/checkout/thankyou.php:33
|
1497 |
+
msgid "Pay"
|
1498 |
+
msgstr ""
|
1499 |
+
|
1500 |
+
#: woocommerce/template/checkout/thankyou.php:35
|
1501 |
+
msgid "My account"
|
1502 |
+
msgstr ""
|
1503 |
+
|
1504 |
+
#: woocommerce/template/checkout/thankyou.php:41
|
1505 |
+
#: woocommerce/template/checkout/thankyou.php:83
|
1506 |
+
msgid "Thank you. Your order has been received."
|
1507 |
+
msgstr ""
|
1508 |
+
|
1509 |
+
#: woocommerce/template/checkout/thankyou.php:46
|
1510 |
+
msgid "Order number:"
|
1511 |
+
msgstr ""
|
1512 |
+
|
1513 |
+
#: woocommerce/template/checkout/thankyou.php:51
|
1514 |
+
msgid "Date:"
|
1515 |
+
msgstr ""
|
1516 |
+
|
1517 |
+
#: woocommerce/template/checkout/thankyou.php:57
|
1518 |
+
msgid "Email:"
|
1519 |
+
msgstr ""
|
1520 |
+
|
1521 |
+
#: woocommerce/template/checkout/thankyou.php:63
|
1522 |
+
msgid "Total:"
|
1523 |
+
msgstr ""
|
1524 |
+
|
1525 |
+
#: woocommerce/template/checkout/thankyou.php:69
|
1526 |
+
msgid "Payment method:"
|
1527 |
+
msgstr ""
|
1528 |
+
|
1529 |
+
#: woocommerce/template/global/form-login.php:34
|
1530 |
+
msgid "Username or email"
|
1531 |
+
msgstr ""
|
1532 |
+
|
1533 |
+
#: woocommerce/template/global/form-login.php:38
|
1534 |
+
msgid "Password"
|
1535 |
+
msgstr ""
|
1536 |
+
|
1537 |
+
#: woocommerce/template/global/form-login.php:48
|
1538 |
+
msgid "Login"
|
1539 |
+
msgstr ""
|
1540 |
+
|
1541 |
+
#: woocommerce/template/global/form-login.php:53
|
1542 |
+
msgid "Remember me"
|
1543 |
+
msgstr ""
|
1544 |
+
|
1545 |
+
#: woocommerce/template/global/form-login.php:57
|
1546 |
+
msgid "Lost your password?"
|
1547 |
+
msgstr ""
|
1548 |
+
|
1549 |
+
#. Plugin Name of the plugin/theme
|
1550 |
+
msgid "CartFlows"
|
1551 |
+
msgstr ""
|
1552 |
+
|
1553 |
+
#. Author URI of the plugin/theme
|
1554 |
+
msgid "https://cartflows.com/"
|
1555 |
+
msgstr ""
|
1556 |
+
|
1557 |
+
#. Description of the plugin/theme
|
1558 |
+
msgid "Create beautiful checkout pages & sales flows for WooCommerce."
|
1559 |
+
msgstr ""
|
1560 |
+
|
1561 |
+
#. Author of the plugin/theme
|
1562 |
+
msgid "CartFlows Inc"
|
1563 |
+
msgstr ""
|
1564 |
+
|
1565 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:55
|
1566 |
+
msgctxt "flow general name"
|
1567 |
+
msgid "Flows"
|
1568 |
+
msgstr ""
|
1569 |
+
|
1570 |
+
#: modules/flow/classes/class-cartflows-flow-post-type.php:56
|
1571 |
+
msgctxt "flow singular name"
|
1572 |
+
msgid "Flow"
|
1573 |
+
msgstr ""
|
1574 |
+
|
1575 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:144
|
1576 |
+
msgctxt "flow step general name"
|
1577 |
+
msgid "Steps"
|
1578 |
+
msgstr ""
|
1579 |
+
|
1580 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:145
|
1581 |
+
msgctxt "flow step singular name"
|
1582 |
+
msgid "Step"
|
1583 |
+
msgstr ""
|
1584 |
+
|
1585 |
+
#: modules/flow/classes/class-cartflows-step-post-type.php:274
|
1586 |
+
msgctxt "cartflows"
|
1587 |
+
msgid "Template for Page Builders"
|
1588 |
msgstr ""
|
modules/checkout/classes/class-cartflows-checkout-markup.php
CHANGED
@@ -158,7 +158,7 @@ class Cartflows_Checkout_Markup {
|
|
158 |
function checkout_shortcode_markup( $atts ) {
|
159 |
|
160 |
if ( ! function_exists( 'wc_print_notices' ) ) {
|
161 |
-
return '<p class="woocommerce-notice">' . __( 'WooCommerce functions not exists. If you are in iframe, please reload the iframe', 'cartflows' ) . '</p>';
|
162 |
}
|
163 |
|
164 |
$atts = shortcode_atts(
|
158 |
function checkout_shortcode_markup( $atts ) {
|
159 |
|
160 |
if ( ! function_exists( 'wc_print_notices' ) ) {
|
161 |
+
return '<p class="woocommerce-notice">' . __( 'WooCommerce functions are not exists. If you are in iframe, please reload the iframe', 'cartflows' ) . '</p>';
|
162 |
}
|
163 |
|
164 |
$atts = shortcode_atts(
|
modules/flow/classes/class-cartflows-flow-meta.php
CHANGED
@@ -514,8 +514,13 @@ class Cartflows_Flow_Meta {
|
|
514 |
*/
|
515 |
function settings_meta_box() {
|
516 |
|
517 |
-
if ( CARTFLOWS_FLOW_POST_TYPE
|
518 |
|
|
|
|
|
|
|
|
|
|
|
519 |
add_meta_box(
|
520 |
'wcf-sandbox-settings', // Id.
|
521 |
__( 'Flow Settings', 'cartflows' ), // Title.
|
@@ -525,7 +530,6 @@ class Cartflows_Flow_Meta {
|
|
525 |
'high' // Priority.
|
526 |
);
|
527 |
|
528 |
-
do_action( 'cartflows_add_flow_metabox' );
|
529 |
}
|
530 |
}
|
531 |
|
514 |
*/
|
515 |
function settings_meta_box() {
|
516 |
|
517 |
+
if ( CARTFLOWS_FLOW_POST_TYPE === get_post_type() ) {
|
518 |
|
519 |
+
do_action( 'cartflows_add_flow_metabox' );
|
520 |
+
|
521 |
+
return;
|
522 |
+
|
523 |
+
/* No need of sandbox will delete it later */
|
524 |
add_meta_box(
|
525 |
'wcf-sandbox-settings', // Id.
|
526 |
__( 'Flow Settings', 'cartflows' ), // Title.
|
530 |
'high' // Priority.
|
531 |
);
|
532 |
|
|
|
533 |
}
|
534 |
}
|
535 |
|
modules/flow/classes/class-cartflows-step-post-type.php
CHANGED
@@ -49,7 +49,7 @@ class Cartflows_Step_Post_Type {
|
|
49 |
add_filter( 'wp_unique_post_slug', array( $this, 'prevent_slug_duplicates' ), 10, 6 );
|
50 |
add_action( 'pre_get_posts', array( $this, 'add_cpt_post_names_to_main_query' ), 20 );
|
51 |
|
52 |
-
add_filter( 'template_include', array( $this, 'load_page_template' ),
|
53 |
add_filter( 'template_redirect', array( $this, 'query_fix' ), 3 );
|
54 |
}
|
55 |
|
@@ -172,6 +172,7 @@ class Cartflows_Step_Post_Type {
|
|
172 |
|
173 |
register_post_type( CARTFLOWS_STEP_POST_TYPE, $args );
|
174 |
|
|
|
175 |
$args = array(
|
176 |
'label' => __( 'Step Type', 'cartflows' ),
|
177 |
'public' => false,
|
@@ -181,6 +182,7 @@ class Cartflows_Step_Post_Type {
|
|
181 |
|
182 |
register_taxonomy( CARTFLOWS_TAXONOMY_STEP_TYPE, CARTFLOWS_STEP_POST_TYPE, $args );
|
183 |
|
|
|
184 |
$args = array(
|
185 |
'label' => __( 'Step Flow', 'cartflows' ),
|
186 |
'public' => false,
|
@@ -190,47 +192,55 @@ class Cartflows_Step_Post_Type {
|
|
190 |
|
191 |
register_taxonomy( CARTFLOWS_TAXONOMY_STEP_FLOW, CARTFLOWS_STEP_POST_TYPE, $args );
|
192 |
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
array(
|
202 |
-
|
203 |
-
|
204 |
'slug' => 'landing',
|
|
|
|
|
|
|
205 |
),
|
206 |
-
|
207 |
-
|
208 |
-
'name' => __( 'Checkout', 'cartflows' ),
|
209 |
-
'args' => array(
|
210 |
'slug' => 'checkout',
|
|
|
|
|
|
|
211 |
),
|
212 |
-
|
213 |
-
|
214 |
-
'name' => __( 'Thank You', 'cartflows' ),
|
215 |
-
'args' => array(
|
216 |
'slug' => 'thankyou',
|
|
|
|
|
|
|
217 |
),
|
218 |
-
|
219 |
-
|
220 |
-
'name' => __( 'Upsell', 'cartflows' ),
|
221 |
-
'args' => array(
|
222 |
'slug' => 'upsell',
|
|
|
|
|
|
|
223 |
),
|
224 |
-
|
225 |
-
|
226 |
-
'name' => __( 'Downsell', 'cartflows' ),
|
227 |
-
'args' => array(
|
228 |
'slug' => 'downsell',
|
|
|
|
|
|
|
229 |
),
|
230 |
-
)
|
231 |
-
|
|
|
232 |
|
233 |
-
|
234 |
}
|
235 |
|
236 |
/**
|
@@ -443,10 +453,12 @@ class Cartflows_Step_Post_Type {
|
|
443 |
* $taxonomy = '{taxonomy}';
|
444 |
* $terms = array(
|
445 |
* array(
|
446 |
-
* 'name' => '
|
|
|
447 |
* ),
|
448 |
* array(
|
449 |
-
* 'name' => '
|
|
|
450 |
* ),
|
451 |
* );
|
452 |
*
|
@@ -461,7 +473,7 @@ class Cartflows_Step_Post_Type {
|
|
461 |
|
462 |
foreach ( $terms as $key => $term ) {
|
463 |
|
464 |
-
$term_exist = term_exists( $term['
|
465 |
|
466 |
if ( empty( $term_exist ) ) {
|
467 |
|
@@ -473,7 +485,10 @@ class Cartflows_Step_Post_Type {
|
|
473 |
if ( array_key_exists( 'args', $term ) ) {
|
474 |
wp_insert_term( $term['name'], $taxonomy, $term['args'] );
|
475 |
} else {
|
476 |
-
|
|
|
|
|
|
|
477 |
}
|
478 |
}
|
479 |
}
|
49 |
add_filter( 'wp_unique_post_slug', array( $this, 'prevent_slug_duplicates' ), 10, 6 );
|
50 |
add_action( 'pre_get_posts', array( $this, 'add_cpt_post_names_to_main_query' ), 20 );
|
51 |
|
52 |
+
add_filter( 'template_include', array( $this, 'load_page_template' ), 90 );
|
53 |
add_filter( 'template_redirect', array( $this, 'query_fix' ), 3 );
|
54 |
}
|
55 |
|
172 |
|
173 |
register_post_type( CARTFLOWS_STEP_POST_TYPE, $args );
|
174 |
|
175 |
+
// Step Type.
|
176 |
$args = array(
|
177 |
'label' => __( 'Step Type', 'cartflows' ),
|
178 |
'public' => false,
|
182 |
|
183 |
register_taxonomy( CARTFLOWS_TAXONOMY_STEP_TYPE, CARTFLOWS_STEP_POST_TYPE, $args );
|
184 |
|
185 |
+
// Step Flow.
|
186 |
$args = array(
|
187 |
'label' => __( 'Step Flow', 'cartflows' ),
|
188 |
'public' => false,
|
192 |
|
193 |
register_taxonomy( CARTFLOWS_TAXONOMY_STEP_FLOW, CARTFLOWS_STEP_POST_TYPE, $args );
|
194 |
|
195 |
+
if ( is_admin() ) {
|
196 |
+
/**
|
197 |
+
* Register 'Elementor' & 'Beaver Builder' site types.
|
198 |
+
*
|
199 |
+
* @see self::add_terms();
|
200 |
+
*/
|
201 |
+
$taxonomy = CARTFLOWS_TAXONOMY_STEP_TYPE;
|
202 |
+
|
203 |
+
$terms = array(
|
204 |
+
array(
|
205 |
+
'name' => __( 'Landing', 'cartflows' ),
|
206 |
'slug' => 'landing',
|
207 |
+
'args' => array(
|
208 |
+
'slug' => 'landing',
|
209 |
+
),
|
210 |
),
|
211 |
+
array(
|
212 |
+
'name' => __( 'Checkout (Woo)', 'cartflows' ),
|
|
|
|
|
213 |
'slug' => 'checkout',
|
214 |
+
'args' => array(
|
215 |
+
'slug' => 'checkout',
|
216 |
+
),
|
217 |
),
|
218 |
+
array(
|
219 |
+
'name' => __( 'Thank You (Woo)', 'cartflows' ),
|
|
|
|
|
220 |
'slug' => 'thankyou',
|
221 |
+
'args' => array(
|
222 |
+
'slug' => 'thankyou',
|
223 |
+
),
|
224 |
),
|
225 |
+
array(
|
226 |
+
'name' => __( 'Upsell (Woo)', 'cartflows' ),
|
|
|
|
|
227 |
'slug' => 'upsell',
|
228 |
+
'args' => array(
|
229 |
+
'slug' => 'upsell',
|
230 |
+
),
|
231 |
),
|
232 |
+
array(
|
233 |
+
'name' => __( 'Downsell (Woo)', 'cartflows' ),
|
|
|
|
|
234 |
'slug' => 'downsell',
|
235 |
+
'args' => array(
|
236 |
+
'slug' => 'downsell',
|
237 |
+
),
|
238 |
),
|
239 |
+
);
|
240 |
+
|
241 |
+
$this->add_terms( $taxonomy, $terms );
|
242 |
|
243 |
+
}
|
244 |
}
|
245 |
|
246 |
/**
|
453 |
* $taxonomy = '{taxonomy}';
|
454 |
* $terms = array(
|
455 |
* array(
|
456 |
+
* 'name' => 'Landing',
|
457 |
+
* 'slug' => 'landing',
|
458 |
* ),
|
459 |
* array(
|
460 |
+
* 'name' => 'Checkout',
|
461 |
+
* 'slug' => 'checkout',
|
462 |
* ),
|
463 |
* );
|
464 |
*
|
473 |
|
474 |
foreach ( $terms as $key => $term ) {
|
475 |
|
476 |
+
$term_exist = term_exists( $term['slug'], $taxonomy );
|
477 |
|
478 |
if ( empty( $term_exist ) ) {
|
479 |
|
485 |
if ( array_key_exists( 'args', $term ) ) {
|
486 |
wp_insert_term( $term['name'], $taxonomy, $term['args'] );
|
487 |
} else {
|
488 |
+
|
489 |
+
$term['args'] = array( $term['slug'] );
|
490 |
+
|
491 |
+
wp_insert_term( $term['name'], $taxonomy, $term['args'] );
|
492 |
}
|
493 |
}
|
494 |
}
|
modules/flow/view/meta-flow-steps.php
CHANGED
@@ -7,13 +7,12 @@
|
|
7 |
|
8 |
$default_page_builder = Cartflows_Helper::get_common_setting( 'default_page_builder' );
|
9 |
|
10 |
-
$
|
11 |
'landing' => __( 'Landing', 'cartflows' ),
|
12 |
-
'checkout' => __( 'Checkout', 'cartflows' ),
|
13 |
-
'thankyou' => __( 'Thank You', 'cartflows' ),
|
14 |
-
'upsell' => __( 'Upsell', 'cartflows' ),
|
15 |
-
'downsell' => __( 'Downsell', 'cartflows' ),
|
16 |
-
|
17 |
);
|
18 |
|
19 |
?>
|
@@ -34,7 +33,7 @@ $get_steps = array(
|
|
34 |
|
35 |
if ( isset( $data['type'] ) ) {
|
36 |
$term_slug = $data['type'];
|
37 |
-
$term_name = $
|
38 |
}
|
39 |
|
40 |
if ( ! _is_cartflows_pro() && ( 'upsell' === $term_slug || 'downsell' === $term_slug ) ) {
|
@@ -178,11 +177,10 @@ $get_steps = array(
|
|
178 |
<div id="wcf-scratch-steps-categories">
|
179 |
<select class="step-type-filter-links filter-links">
|
180 |
<option value="" class="current"> Select Step Type </option>
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
<option value="54" data-group="54" class="Thank You" data-slug="thankyou" data-title="Thank You">Thank You</option>
|
186 |
</select>
|
187 |
</div>
|
188 |
<a href="#" class="button button-primary cartflows-step-import-blank"><?php _e( 'Create Step', 'cartflows' ); ?></a>
|
7 |
|
8 |
$default_page_builder = Cartflows_Helper::get_common_setting( 'default_page_builder' );
|
9 |
|
10 |
+
$steps = array(
|
11 |
'landing' => __( 'Landing', 'cartflows' ),
|
12 |
+
'checkout' => __( 'Checkout (Woo)', 'cartflows' ),
|
13 |
+
'thankyou' => __( 'Thank You (Woo)', 'cartflows' ),
|
14 |
+
'upsell' => __( 'Upsell (Woo)', 'cartflows' ),
|
15 |
+
'downsell' => __( 'Downsell (Woo)', 'cartflows' ),
|
|
|
16 |
);
|
17 |
|
18 |
?>
|
33 |
|
34 |
if ( isset( $data['type'] ) ) {
|
35 |
$term_slug = $data['type'];
|
36 |
+
$term_name = $steps[ $data['type'] ];
|
37 |
}
|
38 |
|
39 |
if ( ! _is_cartflows_pro() && ( 'upsell' === $term_slug || 'downsell' === $term_slug ) ) {
|
177 |
<div id="wcf-scratch-steps-categories">
|
178 |
<select class="step-type-filter-links filter-links">
|
179 |
<option value="" class="current"> Select Step Type </option>
|
180 |
+
|
181 |
+
<?php foreach ( $steps as $key => $value ) { ?>
|
182 |
+
<option class="<?php echo $key; ?>" data-slug="<?php echo $key; ?>" data-title="<?php echo $key; ?>"><?php echo $value; ?></option>
|
183 |
+
<?php } ?>
|
|
|
184 |
</select>
|
185 |
</div>
|
186 |
<a href="#" class="button button-primary cartflows-step-import-blank"><?php _e( 'Create Step', 'cartflows' ); ?></a>
|
modules/landing/classes/class-cartflows-landing-meta.php
CHANGED
@@ -122,14 +122,14 @@ class Cartflows_Landing_Meta extends Cartflows_Meta {
|
|
122 |
$active_tab = get_post_meta( $post_id, 'wcf_active_tab', true );
|
123 |
|
124 |
if ( empty( $active_tab ) ) {
|
125 |
-
$active_tab = 'wcf-
|
126 |
}
|
127 |
|
128 |
$tabs = array(
|
129 |
array(
|
130 |
'title' => __( 'Shortcodes', 'cartflows' ),
|
131 |
-
'id' => 'wcf-
|
132 |
-
'class' => 'wcf-
|
133 |
'icon' => 'dashicons-info',
|
134 |
),
|
135 |
array(
|
@@ -141,7 +141,7 @@ class Cartflows_Landing_Meta extends Cartflows_Meta {
|
|
141 |
);
|
142 |
|
143 |
?>
|
144 |
-
<div class="wcf-
|
145 |
<div class="wcf-table-container">
|
146 |
<div class="wcf-column-left">
|
147 |
<div class="wcf-tab-wrapper">
|
@@ -157,7 +157,7 @@ class Cartflows_Landing_Meta extends Cartflows_Meta {
|
|
157 |
</div>
|
158 |
</div>
|
159 |
<div class="wcf-column-right">
|
160 |
-
<div class="wcf-
|
161 |
<?php
|
162 |
|
163 |
$next_step_link = wcf()->utils->get_linking_url(
|
122 |
$active_tab = get_post_meta( $post_id, 'wcf_active_tab', true );
|
123 |
|
124 |
if ( empty( $active_tab ) ) {
|
125 |
+
$active_tab = 'wcf-landing-shortcodes';
|
126 |
}
|
127 |
|
128 |
$tabs = array(
|
129 |
array(
|
130 |
'title' => __( 'Shortcodes', 'cartflows' ),
|
131 |
+
'id' => 'wcf-landing-shortcodes',
|
132 |
+
'class' => 'wcf-landing-shortcodes' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
|
133 |
'icon' => 'dashicons-info',
|
134 |
),
|
135 |
array(
|
141 |
);
|
142 |
|
143 |
?>
|
144 |
+
<div class="wcf-landing-table wcf-metabox-wrap widefat">
|
145 |
<div class="wcf-table-container">
|
146 |
<div class="wcf-column-left">
|
147 |
<div class="wcf-tab-wrapper">
|
157 |
</div>
|
158 |
</div>
|
159 |
<div class="wcf-column-right">
|
160 |
+
<div class="wcf-landing-shortcodes wcf-tab-content active widefat">
|
161 |
<?php
|
162 |
|
163 |
$next_step_link = wcf()->utils->get_linking_url(
|
modules/thankyou/classes/class-cartflows-thankyou-markup.php
CHANGED
@@ -1,274 +1,300 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Front end and markup
|
4 |
-
*
|
5 |
-
* @package CartFlows
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Checkout Markup
|
10 |
-
*
|
11 |
-
* @since 1.0.0
|
12 |
-
*/
|
13 |
-
class Cartflows_Thankyou_Markup {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Member Variable
|
17 |
-
*
|
18 |
-
* @var object instance
|
19 |
-
*/
|
20 |
-
private static $instance;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Initiator
|
24 |
-
*/
|
25 |
-
public static function get_instance() {
|
26 |
-
if ( ! isset( self::$instance ) ) {
|
27 |
-
self::$instance = new self;
|
28 |
-
}
|
29 |
-
return self::$instance;
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Constructor
|
34 |
-
*/
|
35 |
-
public function __construct() {
|
36 |
-
|
37 |
-
/* Downsell Shortcode */
|
38 |
-
add_shortcode( 'cartflows_order_details', array( $this, 'cartflows_order_details_shortcode_markup' ) );
|
39 |
-
|
40 |
-
add_action( 'wp_enqueue_scripts', array( $this, 'thank_you_scripts' ), 21 );
|
41 |
-
|
42 |
-
add_action( 'woocommerce_is_order_received_page', array( $this, 'set_order_received_page' ) );
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
*
|
50 |
-
*
|
51 |
-
|
52 |
-
|
53 |
-
|
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 |
-
echo '
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
*
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
*
|
158 |
-
*
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
*
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
$thank_you_id =
|
183 |
-
}
|
184 |
-
|
185 |
-
|
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 |
-
.woocommerce-order .woocommerce-
|
213 |
-
.woocommerce-order
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Front end and markup
|
4 |
+
*
|
5 |
+
* @package CartFlows
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Checkout Markup
|
10 |
+
*
|
11 |
+
* @since 1.0.0
|
12 |
+
*/
|
13 |
+
class Cartflows_Thankyou_Markup {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Member Variable
|
17 |
+
*
|
18 |
+
* @var object instance
|
19 |
+
*/
|
20 |
+
private static $instance;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Initiator
|
24 |
+
*/
|
25 |
+
public static function get_instance() {
|
26 |
+
if ( ! isset( self::$instance ) ) {
|
27 |
+
self::$instance = new self;
|
28 |
+
}
|
29 |
+
return self::$instance;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Constructor
|
34 |
+
*/
|
35 |
+
public function __construct() {
|
36 |
+
|
37 |
+
/* Downsell Shortcode */
|
38 |
+
add_shortcode( 'cartflows_order_details', array( $this, 'cartflows_order_details_shortcode_markup' ) );
|
39 |
+
|
40 |
+
add_action( 'wp_enqueue_scripts', array( $this, 'thank_you_scripts' ), 21 );
|
41 |
+
|
42 |
+
add_action( 'woocommerce_is_order_received_page', array( $this, 'set_order_received_page' ) );
|
43 |
+
|
44 |
+
/* Set is checkout flag */
|
45 |
+
add_filter( 'woocommerce_is_checkout', array( $this, 'woo_checkout_flag' ), 9999 );
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Order shortcode markup
|
50 |
+
*
|
51 |
+
* @param array $atts attributes.
|
52 |
+
* @since 1.0.0
|
53 |
+
*/
|
54 |
+
function cartflows_order_details_shortcode_markup( $atts ) {
|
55 |
+
|
56 |
+
$output = '';
|
57 |
+
|
58 |
+
if ( _is_wcf_thankyou_type() ) {
|
59 |
+
|
60 |
+
/* Remove order item link */
|
61 |
+
add_filter( 'woocommerce_order_item_permalink', '__return_false' );
|
62 |
+
|
63 |
+
if ( ! function_exists( 'wc_print_notices' ) ) {
|
64 |
+
return '<p class="woocommerce-notice">' . __( 'WooCommerce functions are not exists. If you are in iframe, please reload the iframe', 'cartflows' ) . '</p>';
|
65 |
+
}
|
66 |
+
|
67 |
+
$order = false;
|
68 |
+
|
69 |
+
if ( ! isset( $_GET['wcf-order'] ) && wcf()->flow->is_flow_testmode() ) {
|
70 |
+
|
71 |
+
$args = array(
|
72 |
+
'limit' => 1,
|
73 |
+
'order' => 'DESC',
|
74 |
+
'post_type' => 'shop_order',
|
75 |
+
'status' => array( 'completed', 'processing' ),
|
76 |
+
);
|
77 |
+
|
78 |
+
$latest_order = wc_get_orders( $args );
|
79 |
+
|
80 |
+
$order_id = ( ! empty( $latest_order ) ) ? current( $latest_order )->get_id() : 0;
|
81 |
+
|
82 |
+
if ( $order_id > 0 ) {
|
83 |
+
|
84 |
+
$order = wc_get_order( $order_id );
|
85 |
+
|
86 |
+
if ( ! $order ) {
|
87 |
+
$order = false;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
} else {
|
91 |
+
if ( ! isset( $_GET['wcf-order'] ) ) {
|
92 |
+
return '<p class="woocommerce-notice">Order not found. You cannot access this page directly.</p>';
|
93 |
+
}
|
94 |
+
|
95 |
+
// Get the order.
|
96 |
+
$order_id = apply_filters( 'woocommerce_thankyou_order_id', empty( $_GET['wcf-order'] ) ? 0 : intval( $_GET['wcf-order'] ) );
|
97 |
+
$order_key = apply_filters( 'woocommerce_thankyou_order_key', empty( $_GET['wcf-key'] ) ? '' : wc_clean( wp_unslash( $_GET['wcf-key'] ) ) ); // WPCS: input var ok, CSRF ok.
|
98 |
+
|
99 |
+
if ( $order_id > 0 ) {
|
100 |
+
|
101 |
+
$order = wc_get_order( $order_id );
|
102 |
+
|
103 |
+
if ( ! $order || $order->get_order_key() !== $order_key ) {
|
104 |
+
$order = false;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
// Empty awaiting payment session.
|
110 |
+
unset( WC()->session->order_awaiting_payment );
|
111 |
+
|
112 |
+
if ( null !== WC()->session ) {
|
113 |
+
|
114 |
+
if ( ! isset( WC()->cart ) || '' === WC()->cart ) {
|
115 |
+
WC()->cart = new WC_Cart();
|
116 |
+
}
|
117 |
+
|
118 |
+
if ( ! WC()->cart->is_empty() ) {
|
119 |
+
// wc_empty_cart();
|
120 |
+
// Empty current cart.
|
121 |
+
WC()->cart->empty_cart( true );
|
122 |
+
|
123 |
+
wc_clear_notices();
|
124 |
+
}
|
125 |
+
|
126 |
+
wc_print_notices();
|
127 |
+
}
|
128 |
+
|
129 |
+
ob_start();
|
130 |
+
echo "<div class='wcf-thankyou-wrap'>";
|
131 |
+
wc_get_template( 'checkout/thankyou.php', array( 'order' => $order ) );
|
132 |
+
echo '</div>';
|
133 |
+
$output = ob_get_clean();
|
134 |
+
}
|
135 |
+
|
136 |
+
return $output;
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Load Thank You scripts.
|
141 |
+
*
|
142 |
+
* @return void
|
143 |
+
*/
|
144 |
+
function thank_you_scripts() {
|
145 |
+
|
146 |
+
if ( _is_wcf_thankyou_type() ) {
|
147 |
+
|
148 |
+
do_action( 'cartflows_thank_you_scripts' );
|
149 |
+
|
150 |
+
$style = $this->generate_thank_you_style();
|
151 |
+
|
152 |
+
wp_add_inline_style( 'wcf-frontend-global', $style );
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* Set thank you as a order received page.
|
158 |
+
*
|
159 |
+
* @param boolean $is_order_page order page.
|
160 |
+
* @return boolean
|
161 |
+
*/
|
162 |
+
function set_order_received_page( $is_order_page ) {
|
163 |
+
|
164 |
+
if ( _is_wcf_thankyou_type() ) {
|
165 |
+
|
166 |
+
$is_order_page = true;
|
167 |
+
}
|
168 |
+
|
169 |
+
return $is_order_page;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Generate Thank You Styles.
|
174 |
+
*
|
175 |
+
* @return string
|
176 |
+
*/
|
177 |
+
function generate_thank_you_style() {
|
178 |
+
|
179 |
+
global $post;
|
180 |
+
|
181 |
+
if ( _is_wcf_thankyou_type() ) {
|
182 |
+
$thank_you_id = $post->ID;
|
183 |
+
} else {
|
184 |
+
$thank_you_id = _get_wcf_thankyou_id( $post->post_content );
|
185 |
+
}
|
186 |
+
|
187 |
+
CartFlows_Font_Families::render_fonts( $thank_you_id );
|
188 |
+
|
189 |
+
$text_color = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-text-color' );
|
190 |
+
$text_font_family = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-font-family' );
|
191 |
+
$heading_text_color = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-heading-color' );
|
192 |
+
$heading_font_family = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-heading-font-family' );
|
193 |
+
$heading_font_weight = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-heading-font-wt' );
|
194 |
+
$container_width = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-container-width' );
|
195 |
+
$section_bg_color = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-tq-section-bg-color' );
|
196 |
+
|
197 |
+
$show_order_review = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-show-overview-section' );
|
198 |
+
|
199 |
+
$show_order_details = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-show-details-section' );
|
200 |
+
|
201 |
+
$show_billing_details = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-show-billing-section' );
|
202 |
+
|
203 |
+
$show_shipping_details = wcf()->options->get_thankyou_meta_value( $thank_you_id, 'wcf-show-shipping-section' );
|
204 |
+
|
205 |
+
$output = "
|
206 |
+
.wcf-thankyou-wrap{
|
207 |
+
color: {$text_color};
|
208 |
+
font-family: {$text_font_family};
|
209 |
+
max-width:{$container_width}px;
|
210 |
+
}
|
211 |
+
|
212 |
+
.woocommerce-order h2.woocommerce-column__title,
|
213 |
+
.woocommerce-order h2.woocommerce-order-details__title,
|
214 |
+
.woocommerce-order .woocommerce-thankyou-order-received,
|
215 |
+
.woocommerce-order-details h2,
|
216 |
+
.woocommerce-order h2.wc-bacs-bank-details-heading {
|
217 |
+
color: {$heading_text_color};
|
218 |
+
font-family: {$heading_font_family};
|
219 |
+
font-weight: {$heading_font_weight};
|
220 |
+
}
|
221 |
+
|
222 |
+
.woocommerce-order ul.order_details,
|
223 |
+
.woocommerce-order .woocommerce-order-details,
|
224 |
+
.woocommerce-order .woocommerce-customer-details,
|
225 |
+
.woocommerce-order .woocommerce-bacs-bank-details{
|
226 |
+
background-color: {$section_bg_color}
|
227 |
+
}
|
228 |
+
img.emoji, img.wp-smiley {}
|
229 |
+
";
|
230 |
+
|
231 |
+
if ( 'no' == $show_order_review ) {
|
232 |
+
$output .= '
|
233 |
+
.woocommerce-order ul.order_details{
|
234 |
+
display: none;
|
235 |
+
}
|
236 |
+
';
|
237 |
+
}
|
238 |
+
|
239 |
+
if ( 'no' == $show_order_details ) {
|
240 |
+
$output .= '
|
241 |
+
.woocommerce-order .woocommerce-order-details{
|
242 |
+
display: none;
|
243 |
+
}
|
244 |
+
';
|
245 |
+
}
|
246 |
+
|
247 |
+
if ( 'no' == $show_billing_details ) {
|
248 |
+
$output .= '
|
249 |
+
.woocommerce-order .woocommerce-customer-details .woocommerce-column--billing-address{
|
250 |
+
display: none;
|
251 |
+
}
|
252 |
+
';
|
253 |
+
}
|
254 |
+
|
255 |
+
if ( 'no' == $show_shipping_details ) {
|
256 |
+
$output .= '
|
257 |
+
.woocommerce-order .woocommerce-customer-details .woocommerce-column--shipping-address{
|
258 |
+
display: none;
|
259 |
+
}
|
260 |
+
';
|
261 |
+
}
|
262 |
+
|
263 |
+
if ( 'no' == $show_billing_details && 'no' == $show_shipping_details ) {
|
264 |
+
$output .= '
|
265 |
+
.woocommerce-order .woocommerce-customer-details{
|
266 |
+
display: none;
|
267 |
+
}
|
268 |
+
';
|
269 |
+
}
|
270 |
+
|
271 |
+
return $output;
|
272 |
+
}
|
273 |
+
|
274 |
+
/**
|
275 |
+
* Set as a checkout page if it is thank you page.
|
276 |
+
* Thank you page need to be set as a checkout page.
|
277 |
+
* Becauye ayment gateways will not load if it is not checkout.
|
278 |
+
*
|
279 |
+
* @param bool $is_checkout is checkout.
|
280 |
+
*
|
281 |
+
* @return bool
|
282 |
+
*/
|
283 |
+
function woo_checkout_flag( $is_checkout ) {
|
284 |
+
|
285 |
+
if ( ! is_admin() ) {
|
286 |
+
|
287 |
+
if ( _is_wcf_thankyou_type() ) {
|
288 |
+
|
289 |
+
$is_checkout = true;
|
290 |
+
}
|
291 |
+
}
|
292 |
+
|
293 |
+
return $is_checkout;
|
294 |
+
}
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
* Kicking this off by calling 'get_instance()' method
|
299 |
+
*/
|
300 |
+
Cartflows_Thankyou_Markup::get_instance();
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.me/BrainstormForce
|
|
4 |
Tags: woocommerce, funnel builder, sales funnels
|
5 |
Requires at least: 4.4
|
6 |
Tested up to: 5.2
|
7 |
-
Stable tag: 1.1.
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
@@ -125,8 +125,14 @@ Glad you asked! CartFlows Pro is an optional add-on to CartFlows that adds addit
|
|
125 |
|
126 |
== Changelog ==
|
127 |
|
128 |
-
= Version 1.1.
|
129 |
* New: WooCommerce dependency removed. Now, you can use CartFlows without WooCommerce.
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
* Improvement: Extra theme compatibility added.
|
131 |
* Improvement: Oxygen builder compatibility added.
|
132 |
* Fix: Floating Label issue with account fields. CSS updated.
|
4 |
Tags: woocommerce, funnel builder, sales funnels
|
5 |
Requires at least: 4.4
|
6 |
Tested up to: 5.2
|
7 |
+
Stable tag: 1.1.20
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
125 |
|
126 |
== Changelog ==
|
127 |
|
128 |
+
= Version 1.1.20 - Wednesday, 12th June 2019 =
|
129 |
* New: WooCommerce dependency removed. Now, you can use CartFlows without WooCommerce.
|
130 |
+
* Fix: Analytics was not showing.
|
131 |
+
* Fix: Bank account details were not showing on the Thank You page.
|
132 |
+
* Fix: Download details were not showing on the Thank You page for PayPal.
|
133 |
+
* Fix: Variation issue fixed when the WordPress folder path is different.
|
134 |
+
|
135 |
+
= Version 1.1.19 - Tuesday, 4th June 2019 =
|
136 |
* Improvement: Extra theme compatibility added.
|
137 |
* Improvement: Oxygen builder compatibility added.
|
138 |
* Fix: Floating Label issue with account fields. CSS updated.
|