Version Description
- Fix: premium compatibility
- Fix: duplicated names after reorder
- Fix: order fields by id after reorder
- Fix: missing order on modal change
- Fix: saved names in the multicheckbox
- Fix: conditional parent multicheckbox
- Improvement: colorpicker behaviour
- Improvement: select for checkbox status in admin modal
Download this release
Release Info
Developer | quadlayers |
Plugin | WooCommerce Checkout Manager |
Version | 4.6.5 |
Comparing to | |
See all releases |
Code changes from version 4.6.4 to 4.6.5
- assets/frontend/css/wooccm.css +9 -0
- assets/frontend/css/wooccm.css.map +1 -1
- assets/frontend/js/wooccm-checkout.js +84 -33
- includes/class-wooccm-notices.php +25 -24
- includes/controller/class-wooccm-advanced.php +8 -4
- includes/controller/class-wooccm-checkout.php +8 -2
- includes/controller/class-wooccm-field.php +26 -0
- includes/controller/class-wooccm-order.php +8 -0
- includes/model/class-wooccm-field.php +11 -1
- includes/view/backend/pages/modals/parts/panel-general.php +9 -2
- includes/view/backend/pages/parts/header.php +7 -22
- includes/view/frontend/class-wooccm-fields-filters.php +2 -39
- includes/view/frontend/class-wooccm-fields-handler.php +4 -3
- readme.txt +11 -1
- woocommerce-checkout-manager.php +2 -2
assets/frontend/css/wooccm.css
CHANGED
@@ -9,6 +9,15 @@
|
|
9 |
.woocommerce form .wooccm-conditional-child {
|
10 |
display: none;
|
11 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
.button.fileinput-button {
|
13 |
position: relative;
|
14 |
overflow: hidden!important;
|
9 |
.woocommerce form .wooccm-conditional-child {
|
10 |
display: none;
|
11 |
}
|
12 |
+
.woocommerce form .wooccm-type-radio .woocommerce-radio-wrapper label {
|
13 |
+
display: inline-block;
|
14 |
+
}
|
15 |
+
.woocommerce form .wooccm-colorpicker-iris .iris-picker {
|
16 |
+
display: none;
|
17 |
+
}
|
18 |
+
.woocommerce form .wooccm-colorpicker-iris.active .iris-picker {
|
19 |
+
display: block;
|
20 |
+
}
|
21 |
.button.fileinput-button {
|
22 |
position: relative;
|
23 |
overflow: hidden!important;
|
assets/frontend/css/wooccm.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["../../less/wooccm.less"],"names":[],"mappings":"
|
1 |
+
{"version":3,"sources":["../../less/wooccm.less"],"names":[],"mappings":"AAGM,YAFJ,KACE,iBACG;AACC,YAHN,KACE,iBAEK;EACD,SAAQ,EAAR;EACA,cAAA;;AAEF,YAPJ,KACE,iBAMG;EACC,WAAA;;AATR,YACE,KAYE;EACE,aAAA;;AAdN,YACE,KAgBE,mBAEE,2BAEE;EACE,qBAAA;;AAtBV,YACE,KA2BE,yBACE;EACE,aAAA;;AAGF,YAhCJ,KA2BE,yBAKG,OACC;EACE,cAAA;;AASR,OAAC;EACC,kBAAA;EACA,0BAAA;;AAFF,OAAC,iBAIC;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,YAAW,kBAAX;EACA,gBAAA;EACA,cAAA;EACA,eAAA;;AAMN;EACE,cAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;EACA,sBAAA;;AANF,iBAQE;EACE,aAAA;EACA,uBAAA;EACA,oBAAA;EACA,sBAAA;EACA,uBAAA;EACA,UAAA;EAEA,kBAAA;;AAhBJ,iBAQE,kBAWE;EACE,UAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,iBAAA;EACA,+BAAA;;AApCN,iBAQE,kBA+BE;EACE,WAAA;EACA,gBAAA;;AAzCN,iBAQE,kBAoCE;EACE,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;;AApDN,iBAQE,kBAoCE,kCAUE;EACE,gBAAA;EACA,iBAAA;EACA,kBAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;;AAEA,iBAvDN,kBAoCE,kCAUE,MASG;EACC,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EAEA,gBAAA;EACA,YAAA;EACA,WAAA","file":"wooccm.css"}
|
assets/frontend/js/wooccm-checkout.js
CHANGED
@@ -14,11 +14,9 @@
|
|
14 |
});
|
15 |
}
|
16 |
};
|
17 |
-
|
18 |
var unblock = function ($node) {
|
19 |
$node.removeClass('processing').unblock();
|
20 |
};
|
21 |
-
|
22 |
var append_image = function (list, i, source, name, filetype) {
|
23 |
|
24 |
var $field_list = $(list),
|
@@ -63,7 +61,6 @@
|
|
63 |
if (is_required) {
|
64 |
field.find('label .optional').remove();
|
65 |
field.addClass('validate-required');
|
66 |
-
|
67 |
if (field.find('label .required').length === 0) {
|
68 |
field.find('label').append(
|
69 |
' <abbr class="required" title="' +
|
@@ -74,7 +71,6 @@
|
|
74 |
} else {
|
75 |
field.find('label .required').remove();
|
76 |
field.removeClass('validate-required woocommerce-invalid woocommerce-invalid-required-field');
|
77 |
-
|
78 |
if (field.find('label .optional').length === 0) {
|
79 |
field.find('label').append(' <span class="optional">(' + wc_address_i18n_params.i18n_optional_text + ')</span>');
|
80 |
}
|
@@ -85,17 +81,13 @@
|
|
85 |
$(document).on('country_to_state_changing', function (event, country, wrapper) {
|
86 |
|
87 |
var thisform = wrapper, thislocale;
|
88 |
-
|
89 |
var locale_fields = $.parseJSON(wc_address_i18n_params.locale_fields);
|
90 |
-
|
91 |
$.each(locale_fields, function (key, value) {
|
92 |
|
93 |
var field = thisform.find(value),
|
94 |
required = field.find('[data-required]').data('required') || 0;
|
95 |
-
|
96 |
field_is_required(field, required);
|
97 |
});
|
98 |
-
|
99 |
});
|
100 |
// Field
|
101 |
// ---------------------------------------------------------------------------
|
@@ -275,7 +267,6 @@
|
|
275 |
$(document).on('change', '.wooccm-add-price', function (e) {
|
276 |
$('body').trigger('update_checkout');
|
277 |
});
|
278 |
-
|
279 |
// Conditional
|
280 |
// ---------------------------------------------------------------------------
|
281 |
|
@@ -284,21 +275,27 @@
|
|
284 |
var $field = $(field),
|
285 |
$parent = $('#' + $field.find('[data-conditional-parent]').data('conditional-parent') + '_field'),
|
286 |
show_if_value = $field.find('[data-conditional-parent-value]').data('conditional-parent-value').toString();
|
287 |
-
|
288 |
if ($parent.length) {
|
289 |
|
290 |
$parent.on('wooccm_change change keyup', function (e) {
|
291 |
|
292 |
var $this = $(e.target),
|
293 |
value = $this.val();
|
294 |
-
|
295 |
// fix for select2 search
|
296 |
if ($this.hasClass('select2-selection')) {
|
297 |
return;
|
298 |
}
|
299 |
|
|
|
300 |
if ($this.prop('type') == 'checkbox') {
|
301 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
}
|
303 |
|
304 |
if (show_if_value == value || ($.isArray(value) && value.indexOf(show_if_value) > -1)) {
|
@@ -310,9 +307,7 @@
|
|
310 |
$this.off('wooccm_change');
|
311 |
$this.off('change');
|
312 |
$this.off('keyup');
|
313 |
-
|
314 |
});
|
315 |
-
|
316 |
// dont use change event because trigger update_checkout event
|
317 |
$parent.find('select:first').trigger('wooccm_change');
|
318 |
$parent.find('textarea:first').trigger('wooccm_change');
|
@@ -338,13 +333,11 @@
|
|
338 |
$parent.find('input[type=time]:first').trigger('wooccm_change');
|
339 |
$parent.find('input[type=url]:first').trigger('wooccm_change');
|
340 |
$parent.find('input[type=week]:first').trigger('wooccm_change');
|
341 |
-
|
342 |
} else {
|
343 |
$field.show();
|
344 |
}
|
345 |
|
346 |
});
|
347 |
-
|
348 |
// Datepicker fields
|
349 |
// ---------------------------------------------------------------------------
|
350 |
|
@@ -352,7 +345,6 @@
|
|
352 |
|
353 |
var $field = $(field),
|
354 |
$input = $field.find('input[type=text]');
|
355 |
-
|
356 |
if ($.isFunction($.fn.datepicker)) {
|
357 |
|
358 |
$input.datepicker({
|
@@ -362,7 +354,6 @@
|
|
362 |
beforeShowDay: function (date) {
|
363 |
var day = date.getDay(),
|
364 |
disable = $input.data('disable') || false;
|
365 |
-
|
366 |
if (!disable) {
|
367 |
return [true]
|
368 |
} else {
|
@@ -373,7 +364,6 @@
|
|
373 |
}
|
374 |
|
375 |
});
|
376 |
-
|
377 |
// Timepicker fields
|
378 |
// ---------------------------------------------------------------------------
|
379 |
|
@@ -381,7 +371,6 @@
|
|
381 |
|
382 |
var $field = $(field),
|
383 |
$input = $field.find('input[type=text]');
|
384 |
-
|
385 |
if ($.isFunction($.fn.timepicker)) {
|
386 |
$input.timepicker({
|
387 |
showPeriod: true,
|
@@ -392,7 +381,6 @@
|
|
392 |
}
|
393 |
|
394 |
});
|
395 |
-
|
396 |
// Color fields
|
397 |
// ---------------------------------------------------------------------------
|
398 |
|
@@ -401,39 +389,102 @@
|
|
401 |
var $field = $(field),
|
402 |
$input = $field.find('input[type=text]'),
|
403 |
$container = $field.find('.wooccmcolorpicker_container');
|
404 |
-
|
405 |
$input.hide();
|
406 |
-
|
407 |
if ($.isFunction($.fn.farbtastic)) {
|
408 |
|
409 |
$container.farbtastic('#' + $input.attr('id'));
|
410 |
-
|
411 |
$container.on('click', function (e) {
|
412 |
$input.fadeIn();
|
413 |
});
|
414 |
-
|
415 |
}
|
416 |
|
417 |
});
|
418 |
-
|
419 |
$('.wooccm-colorpicker-iris').each(function (i, field) {
|
420 |
|
421 |
var $field = $(field),
|
422 |
-
$input = $field.find('input[type=text]')
|
423 |
-
|
424 |
-
|
425 |
-
$input.css('color', '#fff').css('background', $input.val()).hide();
|
426 |
|
|
|
|
|
427 |
$input.iris({
|
428 |
class: $input.attr('id'),
|
429 |
palettes: true,
|
430 |
color: '',
|
431 |
hide: false,
|
432 |
change: function (event, ui) {
|
433 |
-
$input.css('
|
434 |
}
|
435 |
});
|
436 |
-
|
437 |
-
//$input.wpColorPicker();
|
438 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
439 |
})(jQuery);
|
14 |
});
|
15 |
}
|
16 |
};
|
|
|
17 |
var unblock = function ($node) {
|
18 |
$node.removeClass('processing').unblock();
|
19 |
};
|
|
|
20 |
var append_image = function (list, i, source, name, filetype) {
|
21 |
|
22 |
var $field_list = $(list),
|
61 |
if (is_required) {
|
62 |
field.find('label .optional').remove();
|
63 |
field.addClass('validate-required');
|
|
|
64 |
if (field.find('label .required').length === 0) {
|
65 |
field.find('label').append(
|
66 |
' <abbr class="required" title="' +
|
71 |
} else {
|
72 |
field.find('label .required').remove();
|
73 |
field.removeClass('validate-required woocommerce-invalid woocommerce-invalid-required-field');
|
|
|
74 |
if (field.find('label .optional').length === 0) {
|
75 |
field.find('label').append(' <span class="optional">(' + wc_address_i18n_params.i18n_optional_text + ')</span>');
|
76 |
}
|
81 |
$(document).on('country_to_state_changing', function (event, country, wrapper) {
|
82 |
|
83 |
var thisform = wrapper, thislocale;
|
|
|
84 |
var locale_fields = $.parseJSON(wc_address_i18n_params.locale_fields);
|
|
|
85 |
$.each(locale_fields, function (key, value) {
|
86 |
|
87 |
var field = thisform.find(value),
|
88 |
required = field.find('[data-required]').data('required') || 0;
|
|
|
89 |
field_is_required(field, required);
|
90 |
});
|
|
|
91 |
});
|
92 |
// Field
|
93 |
// ---------------------------------------------------------------------------
|
267 |
$(document).on('change', '.wooccm-add-price', function (e) {
|
268 |
$('body').trigger('update_checkout');
|
269 |
});
|
|
|
270 |
// Conditional
|
271 |
// ---------------------------------------------------------------------------
|
272 |
|
275 |
var $field = $(field),
|
276 |
$parent = $('#' + $field.find('[data-conditional-parent]').data('conditional-parent') + '_field'),
|
277 |
show_if_value = $field.find('[data-conditional-parent-value]').data('conditional-parent-value').toString();
|
|
|
278 |
if ($parent.length) {
|
279 |
|
280 |
$parent.on('wooccm_change change keyup', function (e) {
|
281 |
|
282 |
var $this = $(e.target),
|
283 |
value = $this.val();
|
|
|
284 |
// fix for select2 search
|
285 |
if ($this.hasClass('select2-selection')) {
|
286 |
return;
|
287 |
}
|
288 |
|
289 |
+
//make sure its a single checkbox otherwise return value
|
290 |
if ($this.prop('type') == 'checkbox') {
|
291 |
+
// fix for multicheckbox
|
292 |
+
if ($this.attr('name').indexOf('[]') !== -1) {
|
293 |
+
value = $parent.find('input:checked').map(function (i, e) {
|
294 |
+
return e.value
|
295 |
+
}).toArray();
|
296 |
+
} else {
|
297 |
+
value = $this.is(':checked');
|
298 |
+
}
|
299 |
}
|
300 |
|
301 |
if (show_if_value == value || ($.isArray(value) && value.indexOf(show_if_value) > -1)) {
|
307 |
$this.off('wooccm_change');
|
308 |
$this.off('change');
|
309 |
$this.off('keyup');
|
|
|
310 |
});
|
|
|
311 |
// dont use change event because trigger update_checkout event
|
312 |
$parent.find('select:first').trigger('wooccm_change');
|
313 |
$parent.find('textarea:first').trigger('wooccm_change');
|
333 |
$parent.find('input[type=time]:first').trigger('wooccm_change');
|
334 |
$parent.find('input[type=url]:first').trigger('wooccm_change');
|
335 |
$parent.find('input[type=week]:first').trigger('wooccm_change');
|
|
|
336 |
} else {
|
337 |
$field.show();
|
338 |
}
|
339 |
|
340 |
});
|
|
|
341 |
// Datepicker fields
|
342 |
// ---------------------------------------------------------------------------
|
343 |
|
345 |
|
346 |
var $field = $(field),
|
347 |
$input = $field.find('input[type=text]');
|
|
|
348 |
if ($.isFunction($.fn.datepicker)) {
|
349 |
|
350 |
$input.datepicker({
|
354 |
beforeShowDay: function (date) {
|
355 |
var day = date.getDay(),
|
356 |
disable = $input.data('disable') || false;
|
|
|
357 |
if (!disable) {
|
358 |
return [true]
|
359 |
} else {
|
364 |
}
|
365 |
|
366 |
});
|
|
|
367 |
// Timepicker fields
|
368 |
// ---------------------------------------------------------------------------
|
369 |
|
371 |
|
372 |
var $field = $(field),
|
373 |
$input = $field.find('input[type=text]');
|
|
|
374 |
if ($.isFunction($.fn.timepicker)) {
|
375 |
$input.timepicker({
|
376 |
showPeriod: true,
|
381 |
}
|
382 |
|
383 |
});
|
|
|
384 |
// Color fields
|
385 |
// ---------------------------------------------------------------------------
|
386 |
|
389 |
var $field = $(field),
|
390 |
$input = $field.find('input[type=text]'),
|
391 |
$container = $field.find('.wooccmcolorpicker_container');
|
|
|
392 |
$input.hide();
|
|
|
393 |
if ($.isFunction($.fn.farbtastic)) {
|
394 |
|
395 |
$container.farbtastic('#' + $input.attr('id'));
|
|
|
396 |
$container.on('click', function (e) {
|
397 |
$input.fadeIn();
|
398 |
});
|
|
|
399 |
}
|
400 |
|
401 |
});
|
|
|
402 |
$('.wooccm-colorpicker-iris').each(function (i, field) {
|
403 |
|
404 |
var $field = $(field),
|
405 |
+
$input = $field.find('input[type=text]');
|
406 |
+
$input.css('background', $input.val());
|
407 |
+
$input.on('click', function (e) {
|
|
|
408 |
|
409 |
+
$field.toggleClass('active');
|
410 |
+
});
|
411 |
$input.iris({
|
412 |
class: $input.attr('id'),
|
413 |
palettes: true,
|
414 |
color: '',
|
415 |
hide: false,
|
416 |
change: function (event, ui) {
|
417 |
+
$input.css('background', ui.color.toString()).fadeIn();
|
418 |
}
|
419 |
});
|
|
|
|
|
420 |
});
|
421 |
+
$(document).on('click', function (e) {
|
422 |
+
if ($(e.target).closest('.iris-picker').length === 0) {
|
423 |
+
$('.wooccm-colorpicker-iris').removeClass('active');
|
424 |
+
}
|
425 |
+
});
|
426 |
+
|
427 |
+
if (typeof wc_country_select_params === 'undefined') {
|
428 |
+
return false;
|
429 |
+
}
|
430 |
+
|
431 |
+
if ($().selectWoo) {
|
432 |
+
var getEnhancedSelectFormatString = function () {
|
433 |
+
return {
|
434 |
+
'language': {
|
435 |
+
errorLoading: function () {
|
436 |
+
return wc_country_select_params.i18n_searching;
|
437 |
+
},
|
438 |
+
inputTooLong: function (args) {
|
439 |
+
var overChars = args.input.length - args.maximum;
|
440 |
+
if (1 === overChars) {
|
441 |
+
return wc_country_select_params.i18n_input_too_long_1;
|
442 |
+
}
|
443 |
+
|
444 |
+
return wc_country_select_params.i18n_input_too_long_n.replace('%qty%', overChars);
|
445 |
+
},
|
446 |
+
inputTooShort: function (args) {
|
447 |
+
var remainingChars = args.minimum - args.input.length;
|
448 |
+
if (1 === remainingChars) {
|
449 |
+
return wc_country_select_params.i18n_input_too_short_1;
|
450 |
+
}
|
451 |
+
|
452 |
+
return wc_country_select_params.i18n_input_too_short_n.replace('%qty%', remainingChars);
|
453 |
+
},
|
454 |
+
loadingMore: function () {
|
455 |
+
return wc_country_select_params.i18n_load_more;
|
456 |
+
},
|
457 |
+
maximumSelected: function (args) {
|
458 |
+
if (args.maximum === 1) {
|
459 |
+
return wc_country_select_params.i18n_selection_too_long_1;
|
460 |
+
}
|
461 |
+
return wc_country_select_params.i18n_selection_too_long_n.replace('%qty%', args.maximum);
|
462 |
+
},
|
463 |
+
noResults: function () {
|
464 |
+
return wc_country_select_params.i18n_no_matches;
|
465 |
+
},
|
466 |
+
searching: function () {
|
467 |
+
return wc_country_select_params.i18n_searching;
|
468 |
+
}
|
469 |
+
}
|
470 |
+
};
|
471 |
+
};
|
472 |
+
|
473 |
+
var wooccm_enhanced_select = function () {
|
474 |
+
$('select.wooccm-enhanced-select:visible').each(function () {
|
475 |
+
var select2_args = $.extend({
|
476 |
+
placeholder: $(this).attr('data-placeholder') || '',
|
477 |
+
width: '100%',
|
478 |
+
forceAbove: true
|
479 |
+
}, getEnhancedSelectFormatString());
|
480 |
+
$(this).on('select2:select', function () {
|
481 |
+
$(this).focus();
|
482 |
+
}).selectWoo(select2_args);
|
483 |
+
});
|
484 |
+
};
|
485 |
+
|
486 |
+
wooccm_enhanced_select();
|
487 |
+
|
488 |
+
}
|
489 |
+
|
490 |
})(jQuery);
|
includes/class-wooccm-notices.php
CHANGED
@@ -46,7 +46,7 @@ class WOOCCM_Notices {
|
|
46 |
</div>
|
47 |
<div class="notice-content" style="margin-left: 15px;">
|
48 |
<p>
|
49 |
-
|
50 |
</p>
|
51 |
<p>
|
52 |
As you know, we've recently acquired this plugin and we've been working very hard to bring you a quality product.
|
@@ -83,32 +83,33 @@ class WOOCCM_Notices {
|
|
83 |
<?php
|
84 |
}
|
85 |
|
86 |
-
|
87 |
?>
|
88 |
<div id="wooccm-admin-rating" class="wooccm-notice notice is-dismissible" data-notice_id="wooccm-user-rating">
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
</div>
|
111 |
-
|
|
|
112 |
<script>
|
113 |
(function ($) {
|
114 |
$('.wooccm-notice').on('click', '.notice-dismiss', function (e) {
|
46 |
</div>
|
47 |
<div class="notice-content" style="margin-left: 15px;">
|
48 |
<p>
|
49 |
+
<h3>Hello! the new admin panel is here!</h3>
|
50 |
</p>
|
51 |
<p>
|
52 |
As you know, we've recently acquired this plugin and we've been working very hard to bring you a quality product.
|
83 |
<?php
|
84 |
}
|
85 |
|
86 |
+
/* elseif (!get_transient('wooccm-first-rating') && !get_user_meta(get_current_user_id(), 'wooccm-user-rating', true)) {
|
87 |
?>
|
88 |
<div id="wooccm-admin-rating" class="wooccm-notice notice is-dismissible" data-notice_id="wooccm-user-rating">
|
89 |
+
<div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
|
90 |
+
<div class="notice-image">
|
91 |
+
<img style="border-radius:50%;max-width: 90px;" src="<?php echo plugins_url('/assets/backend/img/logo.jpg', WOOCCM_PLUGIN_FILE); ?>" alt="<?php echo esc_html(WOOCCM_PLUGIN_NAME); ?>>">
|
92 |
+
</div>
|
93 |
+
<div class="notice-content" style="margin-left: 15px;">
|
94 |
+
<p>
|
95 |
+
<?php printf(esc_html__('Hello! We\'ve recently acquired this plugin!', 'woocommerce-checkout-manager'), WOOCCM_PLUGIN_NAME); ?>
|
96 |
+
<br/>
|
97 |
+
<?php esc_html_e('We will do our best to improve it and include new features gradually. Please be patient and let us know about the issues and improvements that you want to see in this plugin.', 'woocommerce-checkout-manager'); ?>
|
98 |
+
</p>
|
99 |
+
<a href="<?php echo esc_url(WOOCCM_GROUP_URL); ?>" class="button-primary" target="_blank">
|
100 |
+
<?php esc_html_e('Join Community!', 'woocommerce-checkout-manager'); ?>
|
101 |
+
</a>
|
102 |
+
<a href="<?php echo esc_url(WOOCCM_SUPPORT_URL); ?>" class="button-secondary" target="_blank">
|
103 |
+
<?php esc_html_e('Report a bug', 'woocommerce-checkout-manager'); ?>
|
104 |
+
</a>
|
105 |
+
<a style="margin-left: 10px;" href="https://quadlayers.com/?utm_source=wooccm_admin" target="_blank">
|
106 |
+
<?php esc_html_e('About us', 'woocommerce-checkout-manager'); ?>
|
107 |
+
</a>
|
108 |
+
</div>
|
109 |
+
</div>
|
110 |
</div>
|
111 |
+
<?php } */
|
112 |
+
?>
|
113 |
<script>
|
114 |
(function ($) {
|
115 |
$('.wooccm-notice').on('click', '.notice-dismiss', function (e) {
|
includes/controller/class-wooccm-advanced.php
CHANGED
@@ -62,6 +62,13 @@ class WOOCCM_Checkout_Advanced_Controller {
|
|
62 |
// Admin
|
63 |
// -------------------------------------------------------------------------
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
public function add_section() {
|
66 |
|
67 |
global $current_section;
|
@@ -91,10 +98,7 @@ class WOOCCM_Checkout_Advanced_Controller {
|
|
91 |
|
92 |
public function init() {
|
93 |
|
94 |
-
|
95 |
-
//
|
96 |
-
// $wooccm_sections['advanced'] = esc_html__('Advanced', 'woocommerce-checkout-manager');
|
97 |
-
|
98 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section'));
|
99 |
add_action('woocommerce_settings_save_' . WOOCCM_PREFIX, array($this, 'save_settings'));
|
100 |
|
62 |
// Admin
|
63 |
// -------------------------------------------------------------------------
|
64 |
|
65 |
+
public function add_header() {
|
66 |
+
global $current_section;
|
67 |
+
?>
|
68 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=wooccm§ion=advanced'); ?>" class="<?php echo ( $current_section == 'advanced' ? 'current' : '' ); ?>"><?php esc_html_e('Advanced', 'woocommerce-checkout-manager'); ?></a> | </li>
|
69 |
+
<?php
|
70 |
+
}
|
71 |
+
|
72 |
public function add_section() {
|
73 |
|
74 |
global $current_section;
|
98 |
|
99 |
public function init() {
|
100 |
|
101 |
+
add_action('wooccm_sections_header', array($this, 'add_header'));
|
|
|
|
|
|
|
102 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section'));
|
103 |
add_action('woocommerce_settings_save_' . WOOCCM_PREFIX, array($this, 'save_settings'));
|
104 |
|
includes/controller/class-wooccm-checkout.php
CHANGED
@@ -73,7 +73,6 @@ class WOOCCM_Checkout_Controller {
|
|
73 |
}
|
74 |
</style>
|
75 |
<?php
|
76 |
-
|
77 |
}
|
78 |
|
79 |
if (get_option('wooccm_checkout_force_create_account', 'no') == 'yes') {
|
@@ -89,7 +88,6 @@ class WOOCCM_Checkout_Controller {
|
|
89 |
});
|
90 |
</script>
|
91 |
<?php
|
92 |
-
|
93 |
}
|
94 |
}
|
95 |
|
@@ -252,6 +250,13 @@ class WOOCCM_Checkout_Controller {
|
|
252 |
);
|
253 |
}
|
254 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
255 |
public function add_section() {
|
256 |
|
257 |
global $current_section;
|
@@ -355,6 +360,7 @@ class WOOCCM_Checkout_Controller {
|
|
355 |
public function init() {
|
356 |
|
357 |
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
|
|
|
358 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section'), 99);
|
359 |
add_action('woocommerce_settings_save_' . WOOCCM_PREFIX, array($this, 'save_settings'));
|
360 |
|
73 |
}
|
74 |
</style>
|
75 |
<?php
|
|
|
76 |
}
|
77 |
|
78 |
if (get_option('wooccm_checkout_force_create_account', 'no') == 'yes') {
|
88 |
});
|
89 |
</script>
|
90 |
<?php
|
|
|
91 |
}
|
92 |
}
|
93 |
|
250 |
);
|
251 |
}
|
252 |
|
253 |
+
public function add_header() {
|
254 |
+
global $current_section;
|
255 |
+
?>
|
256 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=wooccm§ion'); ?>" class="<?php echo ( $current_section == '' ? 'current' : '' ); ?>"><?php esc_html_e('Checkout', 'woocommerce-checkout-manager'); ?></a> | </li>
|
257 |
+
<?php
|
258 |
+
}
|
259 |
+
|
260 |
public function add_section() {
|
261 |
|
262 |
global $current_section;
|
360 |
public function init() {
|
361 |
|
362 |
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
|
363 |
+
add_action('wooccm_sections_header', array($this, 'add_header'));
|
364 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section'), 99);
|
365 |
add_action('woocommerce_settings_save_' . WOOCCM_PREFIX, array($this, 'save_settings'));
|
366 |
|
includes/controller/class-wooccm-field.php
CHANGED
@@ -278,6 +278,7 @@ class WOOCCM_Field_Controller {
|
|
278 |
// fix unchecked checkboxes
|
279 |
$field_data = wp_parse_args($field_data, WOOCCM()->$section->get_args());
|
280 |
|
|
|
281 |
unset($field_data['required']);
|
282 |
unset($field_data['position']);
|
283 |
unset($field_data['disabled']);
|
@@ -508,6 +509,27 @@ class WOOCCM_Field_Controller {
|
|
508 |
}
|
509 |
}
|
510 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
511 |
public function add_section_shipping() {
|
512 |
|
513 |
global $current_section, $wp_roles, $wp_locale;
|
@@ -579,6 +601,10 @@ class WOOCCM_Field_Controller {
|
|
579 |
add_action('woocommerce_admin_order_data_after_shipping_address', array($this, 'add_order_shipping_data'));
|
580 |
add_action('woocommerce_admin_order_data_after_shipping_address', array($this, 'add_order_additional_data'));
|
581 |
|
|
|
|
|
|
|
|
|
582 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section_billing'), 99);
|
583 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section_shipping'), 99);
|
584 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section_additional'), 99);
|
278 |
// fix unchecked checkboxes
|
279 |
$field_data = wp_parse_args($field_data, WOOCCM()->$section->get_args());
|
280 |
|
281 |
+
unset($field_data['order']);
|
282 |
unset($field_data['required']);
|
283 |
unset($field_data['position']);
|
284 |
unset($field_data['disabled']);
|
509 |
}
|
510 |
}
|
511 |
|
512 |
+
public function add_header_billing() {
|
513 |
+
global $current_section;
|
514 |
+
?>
|
515 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=wooccm§ion=billing'); ?>" class="<?php echo ( $current_section == 'billing' ? 'current' : '' ); ?>"><?php esc_html_e('Billing', 'woocommerce-checkout-manager'); ?></a> | </li>
|
516 |
+
<?php
|
517 |
+
}
|
518 |
+
|
519 |
+
public function add_header_shipping() {
|
520 |
+
global $current_section;
|
521 |
+
?>
|
522 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=wooccm§ion=shipping'); ?>" class="<?php echo ( $current_section == 'shipping' ? 'current' : '' ); ?>"><?php esc_html_e('Shipping', 'woocommerce-checkout-manager'); ?></a> | </li>
|
523 |
+
<?php
|
524 |
+
}
|
525 |
+
|
526 |
+
public function add_header_additional() {
|
527 |
+
global $current_section;
|
528 |
+
?>
|
529 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=wooccm§ion=additional'); ?>" class="<?php echo ( $current_section == 'additional' ? 'current' : '' ); ?>"><?php esc_html_e('Additional', 'woocommerce-checkout-manager'); ?></a> | </li>
|
530 |
+
<?php
|
531 |
+
}
|
532 |
+
|
533 |
public function add_section_shipping() {
|
534 |
|
535 |
global $current_section, $wp_roles, $wp_locale;
|
601 |
add_action('woocommerce_admin_order_data_after_shipping_address', array($this, 'add_order_shipping_data'));
|
602 |
add_action('woocommerce_admin_order_data_after_shipping_address', array($this, 'add_order_additional_data'));
|
603 |
|
604 |
+
|
605 |
+
add_action('wooccm_sections_header', array($this, 'add_header_billing'));
|
606 |
+
add_action('wooccm_sections_header', array($this, 'add_header_shipping'));
|
607 |
+
add_action('wooccm_sections_header', array($this, 'add_header_additional'));
|
608 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section_billing'), 99);
|
609 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section_shipping'), 99);
|
610 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section_additional'), 99);
|
includes/controller/class-wooccm-order.php
CHANGED
@@ -232,6 +232,13 @@ class WOOCCM_Order_Controller extends WOOCCM_Upload {
|
|
232 |
);
|
233 |
}
|
234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
public function add_section() {
|
236 |
|
237 |
global $current_section;
|
@@ -296,6 +303,7 @@ class WOOCCM_Order_Controller extends WOOCCM_Upload {
|
|
296 |
|
297 |
// Panel
|
298 |
// -------------------------------------------------------------------------
|
|
|
299 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section'), 99);
|
300 |
add_action('woocommerce_settings_save_' . WOOCCM_PREFIX, array($this, 'save_settings'));
|
301 |
|
232 |
);
|
233 |
}
|
234 |
|
235 |
+
public function add_header() {
|
236 |
+
global $current_section;
|
237 |
+
?>
|
238 |
+
<li><a href="<?php echo admin_url('admin.php?page=wc-settings&tab=wooccm§ion=order'); ?>" class="<?php echo ( $current_section == 'order' ? 'current' : '' ); ?>"><?php esc_html_e('Order', 'woocommerce-checkout-manager'); ?></a> | </li>
|
239 |
+
<?php
|
240 |
+
}
|
241 |
+
|
242 |
public function add_section() {
|
243 |
|
244 |
global $current_section;
|
303 |
|
304 |
// Panel
|
305 |
// -------------------------------------------------------------------------
|
306 |
+
add_action('wooccm_sections_header', array($this, 'add_header'));
|
307 |
add_action('woocommerce_sections_' . WOOCCM_PREFIX, array($this, 'add_section'), 99);
|
308 |
add_action('woocommerce_settings_save_' . WOOCCM_PREFIX, array($this, 'save_settings'));
|
309 |
|
includes/model/class-wooccm-field.php
CHANGED
@@ -29,10 +29,17 @@ class WOOCCM_Field {
|
|
29 |
}
|
30 |
}
|
31 |
}
|
|
|
|
|
32 |
}
|
33 |
|
34 |
public function get_id($fields) {
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
|
38 |
public function get_name($field_id) {
|
@@ -357,6 +364,9 @@ class WOOCCM_Field {
|
|
357 |
}
|
358 |
}
|
359 |
|
|
|
|
|
|
|
360 |
if ($this->update_option($fields)) {
|
361 |
return $fields;
|
362 |
}
|
29 |
}
|
30 |
}
|
31 |
}
|
32 |
+
|
33 |
+
return false;
|
34 |
}
|
35 |
|
36 |
public function get_id($fields) {
|
37 |
+
|
38 |
+
if (count($fields)) {
|
39 |
+
return max(array_keys($fields)) + 1;
|
40 |
+
}
|
41 |
+
|
42 |
+
return 0;
|
43 |
}
|
44 |
|
45 |
public function get_name($field_id) {
|
364 |
}
|
365 |
}
|
366 |
|
367 |
+
//reorder array based on ids
|
368 |
+
ksort($fields);
|
369 |
+
|
370 |
if ($this->update_option($fields)) {
|
371 |
return $fields;
|
372 |
}
|
includes/view/backend/pages/modals/parts/panel-general.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
<span class="woocommerce-help-tip" data-tip="<?php esc_html_e('You can\'t change the slug of default fields.', 'woocommerce-checkout-manager'); ?>"></span>
|
7 |
<input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly">
|
8 |
<# } else { #>
|
9 |
-
<span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Currently is not possible to change the name of the fields.', 'woocommerce-checkout-manager'); ?><?php //esc_html_e('To edit Abbreviations open General > Switches > Editing Of Abbreviation Fields.', 'woocommerce-checkout-manager');
|
10 |
<input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly" <?php /* if (empty($options['checkness']['abbreviation'])) { ?>readonly="readonly"<?php } */ ?>>
|
11 |
<# } #>
|
12 |
</p>
|
@@ -62,7 +62,14 @@
|
|
62 |
<div class="options_group">
|
63 |
<p class="form-field">
|
64 |
<label><?php esc_html_e('Default', 'woocommerce-checkout-manager'); ?></label>
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
<input class="short" type="text" name="default" placeholder="<?php esc_html_e('Enter a default value (optional)', 'woocommerce-checkout-manager'); ?>" value="{{data.default}}">
|
|
|
66 |
<span span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Default value of the checkout field.', 'woocommerce-checkout-manager'); ?>"></span>
|
67 |
</p>
|
68 |
</div>
|
@@ -76,7 +83,7 @@
|
|
76 |
<p class="form-field">
|
77 |
<select class="wooccm-enhanced-select" name="file_types" multiple="multiple" data-placeholder="<?php esc_attr_e('Choose the allowed types…', 'woocommerce-checkout-manager'); ?>" data-allow_clear="true" >
|
78 |
<?php foreach (wp_get_mime_types() as $type => $name) : ?>
|
79 |
-
|
80 |
<?php endforeach; ?>
|
81 |
</select>
|
82 |
</p>
|
6 |
<span class="woocommerce-help-tip" data-tip="<?php esc_html_e('You can\'t change the slug of default fields.', 'woocommerce-checkout-manager'); ?>"></span>
|
7 |
<input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly">
|
8 |
<# } else { #>
|
9 |
+
<span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Currently is not possible to change the name of the fields.', 'woocommerce-checkout-manager'); ?><?php //esc_html_e('To edit Abbreviations open General > Switches > Editing Of Abbreviation Fields.', 'woocommerce-checkout-manager'); ?>"></span>
|
10 |
<input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly" <?php /* if (empty($options['checkness']['abbreviation'])) { ?>readonly="readonly"<?php } */ ?>>
|
11 |
<# } #>
|
12 |
</p>
|
62 |
<div class="options_group">
|
63 |
<p class="form-field">
|
64 |
<label><?php esc_html_e('Default', 'woocommerce-checkout-manager'); ?></label>
|
65 |
+
<# if (data.type == 'checkbox') { #>
|
66 |
+
<select class="wooccm-enhanced-select" name="default">
|
67 |
+
<option <# if ( 1 == data.default ) { #>selected="selected"<# } #> value="1"><?php esc_html_e('Yes'); ?></option>
|
68 |
+
<option <# if ( 0 == data.default ) { #>selected="selected"<# } #> value="0"><?php esc_html_e('No'); ?></option>
|
69 |
+
</select>
|
70 |
+
<# } else { #>
|
71 |
<input class="short" type="text" name="default" placeholder="<?php esc_html_e('Enter a default value (optional)', 'woocommerce-checkout-manager'); ?>" value="{{data.default}}">
|
72 |
+
<# } #>
|
73 |
<span span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Default value of the checkout field.', 'woocommerce-checkout-manager'); ?>"></span>
|
74 |
</p>
|
75 |
</div>
|
83 |
<p class="form-field">
|
84 |
<select class="wooccm-enhanced-select" name="file_types" multiple="multiple" data-placeholder="<?php esc_attr_e('Choose the allowed types…', 'woocommerce-checkout-manager'); ?>" data-allow_clear="true" >
|
85 |
<?php foreach (wp_get_mime_types() as $type => $name) : ?>
|
86 |
+
<option <# if ( _.contains(data.file_types, '<?php echo esc_attr($type); ?>') ) { #>selected="selected"<# } #> value="<?php echo esc_attr($type); ?>"><?php echo esc_html($type); ?></option>
|
87 |
<?php endforeach; ?>
|
88 |
</select>
|
89 |
</p>
|
includes/view/backend/pages/parts/header.php
CHANGED
@@ -1,23 +1,8 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
//$sections['email'] = esc_html__('Email', 'woocommerce-checkout-manager');
|
9 |
-
$sections['advanced'] = esc_html__('Advanced', 'woocommerce-checkout-manager');
|
10 |
-
|
11 |
-
echo '<ul class="subsubsub">';
|
12 |
-
|
13 |
-
$array_keys = array_keys($sections);
|
14 |
-
|
15 |
-
foreach ($sections as $id => $label) {
|
16 |
-
echo '<li><a href="' . admin_url('admin.php?page=wc-settings&tab=wooccm§ion=' . sanitize_title($id)) . '" class="' . ( $current_section == $id ? 'current' : '' ) . '">' . $label . '</a> | </li>';
|
17 |
-
}
|
18 |
-
|
19 |
-
echo '<li><a target="_blank" href="' . WOOCCM_DOCUMENTATION_URL . '">' . esc_html__('Documentation', 'woocommerce-checkout-manager') . '</a> | </li>';
|
20 |
-
echo '<li><a target="_blank" href="' . WOOCCM_SUPPORT_URL . '">' . esc_html__('Report a bug', 'woocommerce-checkout-manager') . '</a></li>';
|
21 |
-
|
22 |
-
echo '</ul><br class="clear" />';
|
23 |
|
1 |
+
<ul class="subsubsub">
|
2 |
+
<?php do_action('wooccm_sections_header'); ?>
|
3 |
+
<li><a target="_blank" href="<?php echo WOOCCM_PURCHASE_URL; ?>"><?php echo esc_html__('Premium', 'woocommerce-checkout-manager'); ?></a> | </li>
|
4 |
+
<li><a target="_blank" href="<?php echo WOOCCM_DOCUMENTATION_URL; ?>"><?php echo esc_html__('Documentation', 'woocommerce-checkout-manager'); ?></a> | </li>
|
5 |
+
<li><a target="_blank" href="<?php echo WOOCCM_SUPPORT_URL; ?>"><?php echo esc_html__('Report a bug', 'woocommerce-checkout-manager'); ?></a></li>
|
6 |
+
</ul>
|
7 |
+
<br class="clear" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
includes/view/frontend/class-wooccm-fields-filters.php
CHANGED
@@ -102,12 +102,6 @@ class WOOCCM_Fields_Filter {
|
|
102 |
$field .= '<option value="" disabled="disabled" selected="selected">' . esc_attr($args['placeholder']) . '</option>';
|
103 |
}
|
104 |
foreach ($args['options'] as $option_key => $option_text) {
|
105 |
-
// if ('' === $option_key) {
|
106 |
-
// if (empty($args['placeholder'])) {
|
107 |
-
// $args['placeholder'] = $option_text ? $option_text : __('Choose an option', 'woocommerce-checkout-manager');
|
108 |
-
// }
|
109 |
-
// $custom_attributes[] = 'data-allow_clear="true"';
|
110 |
-
// }
|
111 |
$field .= '<option value="' . esc_attr($option_key) . '" ' . selected($value, $option_key, false) . '>' . esc_attr($option_text) . '</option>';
|
112 |
}
|
113 |
$field .= '</select>';
|
@@ -142,7 +136,8 @@ class WOOCCM_Fields_Filter {
|
|
142 |
$field .= ' <span class="woocommerce-multicheckbox-wrapper" ' . implode(' ', $custom_attributes) . '>';
|
143 |
|
144 |
foreach ($args['options'] as $option_key => $option_text) {
|
145 |
-
|
|
|
146 |
}
|
147 |
|
148 |
$field .= '</span>';
|
@@ -230,36 +225,6 @@ class WOOCCM_Fields_Filter {
|
|
230 |
return $field;
|
231 |
}
|
232 |
|
233 |
-
// Datepicker
|
234 |
-
// ---------------------------------------------------------------------------
|
235 |
-
public function datepicker_field($field = '', $key, $args, $value) {
|
236 |
-
|
237 |
-
$args['type'] = 'text';
|
238 |
-
|
239 |
-
ob_start();
|
240 |
-
|
241 |
-
woocommerce_form_field($key, $args, $value);
|
242 |
-
|
243 |
-
$field = ob_get_clean();
|
244 |
-
|
245 |
-
return $field;
|
246 |
-
}
|
247 |
-
|
248 |
-
// Timepicker
|
249 |
-
// ---------------------------------------------------------------------------
|
250 |
-
public function timepicker_field($field = '', $key, $args, $value) {
|
251 |
-
|
252 |
-
$args['type'] = 'text';
|
253 |
-
|
254 |
-
ob_start();
|
255 |
-
|
256 |
-
woocommerce_form_field($key, $args, $value);
|
257 |
-
|
258 |
-
$field = ob_get_clean();
|
259 |
-
|
260 |
-
return $field;
|
261 |
-
}
|
262 |
-
|
263 |
// Country
|
264 |
// ---------------------------------------------------------------------------
|
265 |
public function country_field($field = '', $key, $args, $value) {
|
@@ -318,8 +283,6 @@ class WOOCCM_Fields_Filter {
|
|
318 |
add_filter('woocommerce_form_field_file', array($this, 'custom_field'), 10, 4);
|
319 |
add_filter('woocommerce_form_field_heading', array($this, 'heading_field'), 10, 4);
|
320 |
add_filter('woocommerce_form_field_colorpicker', array($this, 'colorpicker_field'), 10, 4);
|
321 |
-
add_filter('woocommerce_form_field_datepicker', array($this, 'datepicker_field'), 10, 4);
|
322 |
-
add_filter('woocommerce_form_field_timepicker', array($this, 'timepicker_field'), 10, 4);
|
323 |
add_filter('woocommerce_form_field_country', array($this, 'country_field'), 10, 4);
|
324 |
add_filter('woocommerce_form_field_state', array($this, 'state_field'), 10, 4);
|
325 |
}
|
102 |
$field .= '<option value="" disabled="disabled" selected="selected">' . esc_attr($args['placeholder']) . '</option>';
|
103 |
}
|
104 |
foreach ($args['options'] as $option_key => $option_text) {
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
$field .= '<option value="' . esc_attr($option_key) . '" ' . selected($value, $option_key, false) . '>' . esc_attr($option_text) . '</option>';
|
106 |
}
|
107 |
$field .= '</select>';
|
136 |
$field .= ' <span class="woocommerce-multicheckbox-wrapper" ' . implode(' ', $custom_attributes) . '>';
|
137 |
|
138 |
foreach ($args['options'] as $option_key => $option_text) {
|
139 |
+
//$field .='<label><input type="checkbox" name="' . esc_attr($key) . '[]" value="1"' . checked(in_array($option_key, $value), 1, false) . ' /> ' . esc_attr($option_text) . '</label>';
|
140 |
+
$field .='<label><input type="checkbox" name="' . esc_attr($key) . '[]" value="' . esc_attr($option_key) . '"' . checked(in_array($option_key, $value), 1, false) . ' /> ' . esc_attr($option_text) . '</label>';
|
141 |
}
|
142 |
|
143 |
$field .= '</span>';
|
225 |
return $field;
|
226 |
}
|
227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
// Country
|
229 |
// ---------------------------------------------------------------------------
|
230 |
public function country_field($field = '', $key, $args, $value) {
|
283 |
add_filter('woocommerce_form_field_file', array($this, 'custom_field'), 10, 4);
|
284 |
add_filter('woocommerce_form_field_heading', array($this, 'heading_field'), 10, 4);
|
285 |
add_filter('woocommerce_form_field_colorpicker', array($this, 'colorpicker_field'), 10, 4);
|
|
|
|
|
286 |
add_filter('woocommerce_form_field_country', array($this, 'country_field'), 10, 4);
|
287 |
add_filter('woocommerce_form_field_state', array($this, 'state_field'), 10, 4);
|
288 |
}
|
includes/view/frontend/class-wooccm-fields-handler.php
CHANGED
@@ -28,9 +28,10 @@ class WOOCCM_Fields_Handler {
|
|
28 |
case 'multiselect':
|
29 |
case 'multicheckbox':
|
30 |
|
31 |
-
if (isset($
|
32 |
|
33 |
-
|
|
|
34 |
|
35 |
$names = array();
|
36 |
|
@@ -49,7 +50,7 @@ class WOOCCM_Fields_Handler {
|
|
49 |
}
|
50 |
}
|
51 |
}
|
52 |
-
|
53 |
return $data;
|
54 |
}
|
55 |
|
28 |
case 'multiselect':
|
29 |
case 'multicheckbox':
|
30 |
|
31 |
+
if (isset($_POST[$key]) && is_array($field['options'])) {
|
32 |
|
33 |
+
// use $_POST because $data is converted to string only in multiselect
|
34 |
+
if ($values = (array) $_POST[$key]) {
|
35 |
|
36 |
$names = array();
|
37 |
|
50 |
}
|
51 |
}
|
52 |
}
|
53 |
+
|
54 |
return $data;
|
55 |
}
|
56 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://quadlayers.com/
|
|
4 |
Tags: woocommerce, woocommerce checkout, field manager, checkout editor, checkout field, shipping field, billing field, order field, additional field
|
5 |
Requires at least: 3.0
|
6 |
Tested up to: 5.2.4
|
7 |
-
Stable tag: 4.6.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -137,6 +137,16 @@ Example:
|
|
137 |
|
138 |
== Changelog ==
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
= 4.6.4 =
|
141 |
* Fix: upload files in additional fields
|
142 |
|
4 |
Tags: woocommerce, woocommerce checkout, field manager, checkout editor, checkout field, shipping field, billing field, order field, additional field
|
5 |
Requires at least: 3.0
|
6 |
Tested up to: 5.2.4
|
7 |
+
Stable tag: 4.6.5
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
137 |
|
138 |
== Changelog ==
|
139 |
|
140 |
+
= 4.6.5 =
|
141 |
+
* Fix: premium compatibility
|
142 |
+
* Fix: duplicated names after reorder
|
143 |
+
* Fix: order fields by id after reorder
|
144 |
+
* Fix: missing order on modal change
|
145 |
+
* Fix: saved names in the multicheckbox
|
146 |
+
* Fix: conditional parent multicheckbox
|
147 |
+
* Improvement: colorpicker behaviour
|
148 |
+
* Improvement: select for checkbox status in admin modal
|
149 |
+
|
150 |
= 4.6.4 =
|
151 |
* Fix: upload files in additional fields
|
152 |
|
woocommerce-checkout-manager.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Plugin Name: WooCommerce Checkout Manager
|
5 |
* Description: Manages WooCommerce Checkout, the advanced way.
|
6 |
-
* Version: 4.6.
|
7 |
* Author: QuadLayers
|
8 |
* Author URI: https://www.quadlayers.com
|
9 |
* Copyright: 2019 QuadLayers (https://www.quadlayers.com)
|
@@ -17,7 +17,7 @@ if (!defined('WOOCCM_PLUGIN_NAME')) {
|
|
17 |
define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
|
18 |
}
|
19 |
if (!defined('WOOCCM_PLUGIN_VERSION')) {
|
20 |
-
define('WOOCCM_PLUGIN_VERSION', '4.6.
|
21 |
}
|
22 |
if (!defined('WOOCCM_PLUGIN_FILE')) {
|
23 |
define('WOOCCM_PLUGIN_FILE', __FILE__);
|
3 |
/**
|
4 |
* Plugin Name: WooCommerce Checkout Manager
|
5 |
* Description: Manages WooCommerce Checkout, the advanced way.
|
6 |
+
* Version: 4.6.5
|
7 |
* Author: QuadLayers
|
8 |
* Author URI: https://www.quadlayers.com
|
9 |
* Copyright: 2019 QuadLayers (https://www.quadlayers.com)
|
17 |
define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
|
18 |
}
|
19 |
if (!defined('WOOCCM_PLUGIN_VERSION')) {
|
20 |
+
define('WOOCCM_PLUGIN_VERSION', '4.6.5');
|
21 |
}
|
22 |
if (!defined('WOOCCM_PLUGIN_FILE')) {
|
23 |
define('WOOCCM_PLUGIN_FILE', __FILE__);
|