WooCommerce Checkout Manager - Version 4.4.9

Version Description

  • Improvement: unnecessary files removed
  • Improvement: woocommerce checkout address fields required
  • Improvement: woocommerce checkout address fields names
Download this release

Release Info

Developer quadlayers
Plugin Icon 128x128 WooCommerce Checkout Manager
Version 4.4.9
Comparing to
See all releases

Code changes from version 4.4.8 to 4.4.9

assets/js/wooccm-admin.js CHANGED
@@ -22,6 +22,15 @@
22
  return o;
23
  };
24
 
 
 
 
 
 
 
 
 
 
25
  function getEnhancedSelectFormatString() {
26
  return {
27
  'language': {
@@ -67,6 +76,28 @@
67
  };
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  $(document).on('wooccm-enhanced-select', function (e) {
71
 
72
  $('.wooccm-enhanced-select').filter(':not(.enhanced)').each(function () {
22
  return o;
23
  };
24
 
25
+ function date_picker_select(datepicker) {
26
+ var option = $(datepicker).next().is('.hasDatepicker') ? 'minDate' : 'maxDate',
27
+ otherDateField = 'minDate' === option ? $(datepicker).next() : $(datepicker).prev(),
28
+ date = $(datepicker).datepicker('getDate');
29
+
30
+ $(otherDateField).datepicker('option', option, date);
31
+ $(datepicker).change();
32
+ }
33
+
34
  function getEnhancedSelectFormatString() {
35
  return {
36
  'language': {
76
  };
77
  }
78
 
79
+ $(document).on('wooccm-enhanced-select', function (e) {
80
+
81
+ $('.wooccm-enhanced-between-dates').filter(':not(.enhanced)').each(function () {
82
+
83
+ $(this).find('input').datepicker({
84
+ defaultDate: '',
85
+ dateFormat: 'yy-mm-dd',
86
+ numberOfMonths: 1,
87
+ showButtonPanel: true,
88
+ onSelect: function () {
89
+ date_picker_select($(this));
90
+ }
91
+ });
92
+
93
+ $(this).find('input').each(function () {
94
+ date_picker_select($(this));
95
+ });
96
+
97
+ });
98
+
99
+ });
100
+
101
  $(document).on('wooccm-enhanced-select', function (e) {
102
 
103
  $('.wooccm-enhanced-select').filter(':not(.enhanced)').each(function () {
assets/js/wooccm-admin.min.js CHANGED
@@ -1 +1 @@
1
- (function(b){b.fn.serializeArrayAll=function(){var e={};var d=this.serializeArray();b.each(d,function(){if(e[this.name]!==undefined){if(!e[this.name].push){e[this.name]=[e[this.name]]}e[this.name].push(this.value||"")}else{e[this.name]=this.value||""}});var c=b("input[type=radio],input[type=checkbox]",this);b.each(c,function(){if(!e.hasOwnProperty(this.name)){e[this.name]=""}});return e};function a(){return{language:{errorLoading:function(){return wc_enhanced_select_params.i18n_searching},inputTooLong:function(c){var d=c.input.length-c.maximum;if(1===d){return wc_enhanced_select_params.i18n_input_too_long_1}return wc_enhanced_select_params.i18n_input_too_long_n.replace("%qty%",d)},inputTooShort:function(c){var d=c.minimum-c.input.length;if(1===d){return wc_enhanced_select_params.i18n_input_too_short_1}return wc_enhanced_select_params.i18n_input_too_short_n.replace("%qty%",d)},loadingMore:function(){return wc_enhanced_select_params.i18n_load_more},maximumSelected:function(c){if(c.maximum===1){return wc_enhanced_select_params.i18n_selection_too_long_1}return wc_enhanced_select_params.i18n_selection_too_long_n.replace("%qty%",c.maximum)},noResults:function(){return wc_enhanced_select_params.i18n_no_matches},searching:function(){return wc_enhanced_select_params.i18n_searching}}}}b(document).on("wooccm-enhanced-select",function(c){b(".wooccm-enhanced-select").filter(":not(.enhanced)").each(function(){var d=b.extend({minimumResultsForSearch:10,allowClear:b(this).data("allow_clear")?true:false,placeholder:b(this).data("placeholder")},a());b(this).selectWoo(d).addClass("enhanced")});b(".wooccm-product-search").filter(":not(.enhanced)").each(function(){var f={allowClear:b(this).data("allow_clear")?true:false,placeholder:b(this).data("placeholder"),minimumInputLength:b(this).data("minimum_input_length")?b(this).data("minimum_input_length"):"3",escapeMarkup:function(g){return g},ajax:{url:wc_enhanced_select_params.ajax_url,dataType:"json",delay:250,data:function(g){return{term:g.term,action:b(this).data("action")||"wooccm_select_search_products",security:wc_enhanced_select_params.search_products_nonce,selected:b(this).select2("val")||0,exclude:b(this).data("exclude"),include:b(this).data("include"),limit:b(this).data("limit"),display_stock:b(this).data("display_stock")}},processResults:function(h){var g=[];if(h){b.each(h,function(j,i){g.push({id:j,text:i})})}return{results:g}},cache:true}};f=b.extend(f,a());b(this).selectWoo(f).addClass("enhanced");if(b(this).data("sortable")){var e=b(this);var d=b(this).next(".select2-container").find("ul.select2-selection__rendered");d.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:true,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){b(d.find(".select2-selection__choice").get().reverse()).each(function(){var h=b(this).data("data").id;var g=e.find('option[value="'+h+'"]')[0];e.prepend(g)})}})}else{if(b(this).prop("multiple")){b(this).on("change",function(){var g=b(this).children();g.sort(function(i,h){var k=i.text.toLowerCase();var j=h.text.toLowerCase();if(k>j){return 1}if(k<j){return -1}return 0});b(this).html(g)})}}})});b(document).on("click",".wooccm-field-toggle-enabled",function(){var c=b(this),e=c.closest("tr"),d=c.find(".woocommerce-input-toggle");b.ajax({url:woocommerce_admin.ajax_url,data:{action:"wooccm_toggle_field_enabled",nonce:wooccm.nonce,field_id:e.data("field_id")},dataType:"json",type:"POST",beforeSend:function(f){d.addClass("woocommerce-input-toggle--loading")},success:function(f){if(true===f.data){d.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");d.addClass("woocommerce-input-toggle--enabled");d.removeClass("woocommerce-input-toggle--loading")}else{if(true!==f.data){d.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");d.addClass("woocommerce-input-toggle--disabled");d.removeClass("woocommerce-input-toggle--loading")}}}});return false})})(jQuery);
1
+ (function(b){b.fn.serializeArrayAll=function(){var f={};var e=this.serializeArray();b.each(e,function(){if(f[this.name]!==undefined){if(!f[this.name].push){f[this.name]=[f[this.name]]}f[this.name].push(this.value||"")}else{f[this.name]=this.value||""}});var d=b("input[type=radio],input[type=checkbox]",this);b.each(d,function(){if(!f.hasOwnProperty(this.name)){f[this.name]=""}});return f};function c(f){var e=b(f).next().is(".hasDatepicker")?"minDate":"maxDate",g="minDate"===e?b(f).next():b(f).prev(),d=b(f).datepicker("getDate");b(g).datepicker("option",e,d);b(f).change()}function a(){return{language:{errorLoading:function(){return wc_enhanced_select_params.i18n_searching},inputTooLong:function(d){var e=d.input.length-d.maximum;if(1===e){return wc_enhanced_select_params.i18n_input_too_long_1}return wc_enhanced_select_params.i18n_input_too_long_n.replace("%qty%",e)},inputTooShort:function(d){var e=d.minimum-d.input.length;if(1===e){return wc_enhanced_select_params.i18n_input_too_short_1}return wc_enhanced_select_params.i18n_input_too_short_n.replace("%qty%",e)},loadingMore:function(){return wc_enhanced_select_params.i18n_load_more},maximumSelected:function(d){if(d.maximum===1){return wc_enhanced_select_params.i18n_selection_too_long_1}return wc_enhanced_select_params.i18n_selection_too_long_n.replace("%qty%",d.maximum)},noResults:function(){return wc_enhanced_select_params.i18n_no_matches},searching:function(){return wc_enhanced_select_params.i18n_searching}}}}b(document).on("wooccm-enhanced-select",function(d){b(".wooccm-enhanced-between-dates").filter(":not(.enhanced)").each(function(){b(this).find("input").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:true,onSelect:function(){c(b(this))}});b(this).find("input").each(function(){c(b(this))})})});b(document).on("wooccm-enhanced-select",function(d){b(".wooccm-enhanced-select").filter(":not(.enhanced)").each(function(){var e=b.extend({minimumResultsForSearch:10,allowClear:b(this).data("allow_clear")?true:false,placeholder:b(this).data("placeholder")},a());b(this).selectWoo(e).addClass("enhanced")});b(".wooccm-product-search").filter(":not(.enhanced)").each(function(){var g={allowClear:b(this).data("allow_clear")?true:false,placeholder:b(this).data("placeholder"),minimumInputLength:b(this).data("minimum_input_length")?b(this).data("minimum_input_length"):"3",escapeMarkup:function(h){return h},ajax:{url:wc_enhanced_select_params.ajax_url,dataType:"json",delay:250,data:function(h){return{term:h.term,action:b(this).data("action")||"wooccm_select_search_products",security:wc_enhanced_select_params.search_products_nonce,selected:b(this).select2("val")||0,exclude:b(this).data("exclude"),include:b(this).data("include"),limit:b(this).data("limit"),display_stock:b(this).data("display_stock")}},processResults:function(i){var h=[];if(i){b.each(i,function(k,j){h.push({id:k,text:j})})}return{results:h}},cache:true}};g=b.extend(g,a());b(this).selectWoo(g).addClass("enhanced");if(b(this).data("sortable")){var f=b(this);var e=b(this).next(".select2-container").find("ul.select2-selection__rendered");e.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:true,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){b(e.find(".select2-selection__choice").get().reverse()).each(function(){var i=b(this).data("data").id;var h=f.find('option[value="'+i+'"]')[0];f.prepend(h)})}})}else{if(b(this).prop("multiple")){b(this).on("change",function(){var h=b(this).children();h.sort(function(j,i){var l=j.text.toLowerCase();var k=i.text.toLowerCase();if(l>k){return 1}if(l<k){return -1}return 0});b(this).html(h)})}}})});b(document).on("click",".wooccm-field-toggle-enabled",function(){var d=b(this),f=d.closest("tr"),e=d.find(".woocommerce-input-toggle");b.ajax({url:woocommerce_admin.ajax_url,data:{action:"wooccm_toggle_field_enabled",nonce:wooccm.nonce,field_id:f.data("field_id")},dataType:"json",type:"POST",beforeSend:function(g){e.addClass("woocommerce-input-toggle--loading")},success:function(g){if(true===g.data){e.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");e.addClass("woocommerce-input-toggle--enabled");e.removeClass("woocommerce-input-toggle--loading")}else{if(true!==g.data){e.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");e.addClass("woocommerce-input-toggle--disabled");e.removeClass("woocommerce-input-toggle--loading")}}}});return false})})(jQuery);
assets/js/wooccm-checkout.js CHANGED
@@ -14,9 +14,11 @@
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),
@@ -57,6 +59,44 @@
57
  }
58
 
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  // Field
61
  // ---------------------------------------------------------------------------
62
 
@@ -154,7 +194,7 @@
154
  if (window.FormData && fileList[$field.attr('id')].length) {
155
 
156
  if (!is_blocked($form)) {
157
- $place_order.html(wooccm.uploading);
158
  block($form);
159
  }
160
 
@@ -193,7 +233,7 @@
193
  processData: false,
194
  contentType: false,
195
  beforeSend: function (response) {
196
- //$place_order.html(wooccm.uploading);
197
  },
198
  success: function (response) {
199
  //$results.removeClass('woocommerce-message');
@@ -295,6 +335,54 @@
295
 
296
  });
297
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
298
  // Color fields
299
  // ---------------------------------------------------------------------------
300
 
@@ -303,20 +391,26 @@
303
  var $field = $(field),
304
  $input = $field.find('input[type=text]'),
305
  $container = $field.find('.wooccmcolorpicker_container');
 
306
  $input.hide();
 
307
  if ($.isFunction($.fn.farbtastic)) {
 
308
  $container.farbtastic('#' + $input.attr('id'));
 
309
  $container.on('click', function (e) {
310
  $input.fadeIn();
311
  });
 
312
  }
313
 
314
  });
 
315
  $('.wooccm-colorpicker-iris').each(function (i, field) {
316
 
317
  var $field = $(field),
318
- $input = $field.find('input[type=text]'),
319
- $container = $field.find('.wooccmcolorpicker_container');
320
 
321
  $input.css('color', '#fff').css('background', $input.val()).hide();
322
 
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),
59
  }
60
 
61
 
62
+ function field_is_required(field, is_required) {
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
+ '&nbsp;<abbr class="required" title="' +
70
+ wc_address_i18n_params.i18n_required_text +
71
+ '">*</abbr>'
72
+ );
73
+ }
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('&nbsp;<span class="optional">(' + wc_address_i18n_params.i18n_optional_text + ')</span>');
80
+ }
81
+ }
82
+ }
83
+
84
+
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
  // ---------------------------------------------------------------------------
102
 
194
  if (window.FormData && fileList[$field.attr('id')].length) {
195
 
196
  if (!is_blocked($form)) {
197
+ $place_order.html(wooccm.message.uploading);
198
  block($form);
199
  }
200
 
233
  processData: false,
234
  contentType: false,
235
  beforeSend: function (response) {
236
+ //$place_order.html(wooccm.message.uploading);
237
  },
238
  success: function (response) {
239
  //$results.removeClass('woocommerce-message');
335
 
336
  });
337
 
338
+ // Datepicker fields
339
+ // ---------------------------------------------------------------------------
340
+
341
+ $('.wooccm-type-datepicker').each(function (i, field) {
342
+
343
+ var $field = $(field),
344
+ $input = $field.find('input[type=text]');
345
+
346
+ if ($.isFunction($.fn.datepicker)) {
347
+
348
+ $input.datepicker({
349
+ dateFormat: $input.data('formatdate') || 'dd-mm-yy',
350
+ minDate: $input.data('mindate') || undefined,
351
+ maxDate: $input.data('maxdate') || undefined,
352
+ beforeShowDay: function (date) {
353
+ var day = date.getDay(),
354
+ disable = $input.data('disable') || false;
355
+
356
+ if (!disable) {
357
+ return [true]
358
+ } else {
359
+ return [disable[day] !== undefined];
360
+ }
361
+ }
362
+ });
363
+ }
364
+
365
+ });
366
+
367
+ // Timepicker fields
368
+ // ---------------------------------------------------------------------------
369
+
370
+ $('.wooccm-type-timepicker').each(function (i, field) {
371
+
372
+ var $field = $(field),
373
+ $input = $field.find('input[type=text]');
374
+
375
+ if ($.isFunction($.fn.timepicker)) {
376
+ $input.timepicker({
377
+ showPeriod: true,
378
+ showLeadingZero: true,
379
+ hours: $input.data('hours') || undefined,
380
+ minutes: $input.data('minutes') || undefined,
381
+ });
382
+ }
383
+
384
+ });
385
+
386
  // Color fields
387
  // ---------------------------------------------------------------------------
388
 
391
  var $field = $(field),
392
  $input = $field.find('input[type=text]'),
393
  $container = $field.find('.wooccmcolorpicker_container');
394
+
395
  $input.hide();
396
+
397
  if ($.isFunction($.fn.farbtastic)) {
398
+
399
  $container.farbtastic('#' + $input.attr('id'));
400
+
401
  $container.on('click', function (e) {
402
  $input.fadeIn();
403
  });
404
+
405
  }
406
 
407
  });
408
+
409
  $('.wooccm-colorpicker-iris').each(function (i, field) {
410
 
411
  var $field = $(field),
412
+ $input = $field.find('input[type=text]');//,
413
+ //$container = $field.find('.wooccmcolorpicker_container');
414
 
415
  $input.css('color', '#fff').css('background', $input.val()).hide();
416
 
assets/js/wooccm-checkout.min.js CHANGED
@@ -1 +1 @@
1
- (function(d){var e=function(g){return g.is(".processing")||g.parents(".processing").length};var f=function(g){if(!e(g)){g.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var a=function(g){g.removeClass("processing").unblock()};var c=function(m,k,l,g,j){var n=d(m),o;if(j.match("image.*")){o="image"}else{if(j.match("application/ms.*")){l=wooccm.icons.spreadsheet;o="spreadsheet"}else{if(j.match("application/x.*")){l=wooccm.icons.archive;o="application"}else{if(j.match("audio.*")){l=wooccm.icons.audio;o="audio"}else{if(j.match("text.*")){l=wooccm.icons.text;o="text"}else{if(j.match("video.*")){l=wooccm.icons.video;o="video"}else{l=wooccm.icons.interactive;o="interactive"}}}}}}var h='<span data-file_id="'+k+'" title="'+g+'" class="wooccmupload_file">\n <span class="wooccmupload_file_container">\n <a title="'+g+'" class="wooccmupload_file_delete" class="wooccm_dele wooccm-btn wooccm-btn-danger">×</a>\n <span class="wooccmupload_file_image_container">\n <img class="'+o+'" alt="'+g+'" src="'+l+'"/>\n </span>\n </span>\n </span>';n.append(h).fadeIn()};var b=[];d(".wooccmupload-field").each(function(h,l){var j=d(l),k=j.find("[type=file]"),g=j.find(".wooccmupload_button"),m=j.find(".wooccmupload_list");b[j.attr("id")]=[];g.on("click",function(i){i.preventDefault();k.trigger("click")});m.on("click",".wooccmupload_file_delete",function(i){d(this).closest(".wooccmupload_file").remove()});k.on("change",function(n){var i=d(this)[0].files;if(i.length){if(window.FileReader){d.each(i,function(p,o){var q=m.find("span[data-file_id]").length+p;if(q>=wooccm.limit.max_files){alert("Exeeds max files limit of "+wooccm.limit.max_files);return false}if(o.size>wooccm.limit.max_file_size){alert("Exeeds max file size of "+wooccm.limit.max_file_size);return true}reader=new FileReader();reader.onload=(function(r){return function(s){setTimeout(function(){c(m,b[j.attr("id")].push(o)-1,s.target.result,r.name,r.type)},200)}})(o);console.log(o.name);reader.readAsDataURL(o)})}}})});d("#order_review").on("ajaxSuccess",function(k){var j=d(k.target),i=j.find("#place_order"),h=d(".wooccmupload-field"),g=h.length;if(g){i.addClass("wooccm-upload-process")}});d(document).on("click","#place_order.wooccm-upload-process",function(k){k.preventDefault();var h=d("form.checkout"),j=d(this),i=d(".wooccmupload-field"),g=i.length;i.each(function(l,o){var m=d(o),q=m.find(".wooccmupload_field"),p=m.find(".wooccmupload_list");if(window.FormData&&b[m.attr("id")].length){if(!e(h)){j.html(wooccm.uploading);f(h)}var n=new FormData();p.find("span[data-file_id]").each(function(s,r){var t=d(r).data("file_id");if(s>wooccm.limit.max_files){console.log("Exeeds max files limit of "+wooccm.limit.max_files);return false}if(b[m.attr("id")][t]===undefined){console.log("Undefined "+t);return true}if(b[m.attr("id")][t].size>wooccm.limit.max_file_size){console.log("Exeeds max file size of "+wooccm.limit.max_files);return true}console.log("We're ready to upload "+b[m.attr("id")][t].name);n.append("wooccm_checkout_attachment_upload[]",b[m.attr("id")][t])});n.append("action","wooccm_checkout_attachment_upload");n.append("nonce",wooccm.nonce);d.ajax({async:false,url:wooccm.ajaxurl,type:"POST",cache:false,data:n,processData:false,contentType:false,beforeSend:function(r){},success:function(r){if(r.success){q.val(r.data)}else{d("body").trigger("update_checkout")}},complete:function(r){g=g-1}})}else{g=g-1}if(g==0){a(h);j.removeClass("wooccm-upload-process").trigger("click")}})});d(document).on("change",".wooccm-add-checkout-fees",function(g){d("body").trigger("update_checkout")});d(".wooccm-conditional-child").each(function(g,l){var h=d(l),k=d(".wooccm-field-"+h.find("[data-conditional-parent]").data("conditional-parent")),j=h.find("[data-conditional-parent-value]").data("conditional-parent-value");if(k.length){k.on("change keyup",function(n){var m=d(n.target),i=m.val();if(m.prop("type")=="checkbox"){i=m.is(":checked")}if(j==i||(d.isArray(i)&&i.indexOf(j)>-1)){h.fadeIn()}else{h.fadeOut()}});k.find("select").trigger("change");k.find("textarea").trigger("keyup");k.find("input[type=button]").trigger("click");k.find("input[type=radio]:checked").trigger("keyup");k.find("input[type=checkbox]:checked").trigger("keyup");k.find("input[type=color]").trigger("keyup");k.find("input[type=date]").trigger("keyup");k.find("input[type=datetime-local]").trigger("keyup");k.find("input[type=email]").trigger("keyup");k.find("input[type=file]").trigger("keyup");k.find("input[type=hidden]").trigger("keyup");k.find("input[type=image]").trigger("keyup");k.find("input[type=month]").trigger("keyup");k.find("input[type=number]").trigger("keyup");k.find("input[type=password]").trigger("keyup");k.find("input[type=range]").trigger("keyup");k.find("input[type=reset]").trigger("keyup");k.find("input[type=search]").trigger("keyup");k.find("input[type=submit]").trigger("keyup");k.find("input[type=tel]").trigger("keyup");k.find("input[type=text]").trigger("keyup");k.find("input[type=time]").trigger("keyup");k.find("input[type=url]").trigger("keyup");k.find("input[type=week]").trigger("keyup")}else{h.show()}});d(".wooccm-colorpicker-farbtastic").each(function(g,j){var h=d(j),l=h.find("input[type=text]"),k=h.find(".wooccmcolorpicker_container");l.hide();if(d.isFunction(d.fn.farbtastic)){k.farbtastic("#"+l.attr("id"));k.on("click",function(i){l.fadeIn()})}});d(".wooccm-colorpicker-iris").each(function(g,j){var h=d(j),l=h.find("input[type=text]"),k=h.find(".wooccmcolorpicker_container");l.css("color","#fff").css("background",l.val()).hide();l.iris({wccmclass:l.attr("id"),palettes:true,color:"",hide:false,change:function(i,m){l.css("color","#000").css("background",m.color.toString()).fadeIn()}})})})(jQuery);
1
+ (function(e){var f=function(h){return h.is(".processing")||h.parents(".processing").length};var g=function(h){if(!f(h)){h.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var a=function(h){h.removeClass("processing").unblock()};var d=function(n,l,m,h,k){var o=e(n),p;if(k.match("image.*")){p="image"}else{if(k.match("application/ms.*")){m=wooccm.icons.spreadsheet;p="spreadsheet"}else{if(k.match("application/x.*")){m=wooccm.icons.archive;p="application"}else{if(k.match("audio.*")){m=wooccm.icons.audio;p="audio"}else{if(k.match("text.*")){m=wooccm.icons.text;p="text"}else{if(k.match("video.*")){m=wooccm.icons.video;p="video"}else{m=wooccm.icons.interactive;p="interactive"}}}}}}var j='<span data-file_id="'+l+'" title="'+h+'" class="wooccmupload_file">\n <span class="wooccmupload_file_container">\n <a title="'+h+'" class="wooccmupload_file_delete" class="wooccm_dele wooccm-btn wooccm-btn-danger">×</a>\n <span class="wooccmupload_file_image_container">\n <img class="'+p+'" alt="'+h+'" src="'+m+'"/>\n </span>\n </span>\n </span>';o.append(j).fadeIn()};function b(i,h){if(h){i.find("label .optional").remove();i.addClass("validate-required");if(i.find("label .required").length===0){i.find("label").append('&nbsp;<abbr class="required" title="'+wc_address_i18n_params.i18n_required_text+'">*</abbr>')}}else{i.find("label .required").remove();i.removeClass("validate-required woocommerce-invalid woocommerce-invalid-required-field");if(i.find("label .optional").length===0){i.find("label").append('&nbsp;<span class="optional">('+wc_address_i18n_params.i18n_optional_text+")</span>")}}}e(document).on("country_to_state_changing",function(i,k,m){var j=m,h;var l=e.parseJSON(wc_address_i18n_params.locale_fields);e.each(l,function(n,o){var p=j.find(o),q=p.find("[data-required]").data("required")||0;b(p,q)})});var c=[];e(".wooccmupload-field").each(function(j,m){var k=e(m),l=k.find("[type=file]"),h=k.find(".wooccmupload_button"),n=k.find(".wooccmupload_list");c[k.attr("id")]=[];h.on("click",function(i){i.preventDefault();l.trigger("click")});n.on("click",".wooccmupload_file_delete",function(i){e(this).closest(".wooccmupload_file").remove()});l.on("change",function(o){var i=e(this)[0].files;if(i.length){if(window.FileReader){e.each(i,function(q,p){var r=n.find("span[data-file_id]").length+q;if(r>=wooccm.limit.max_files){alert("Exeeds max files limit of "+wooccm.limit.max_files);return false}if(p.size>wooccm.limit.max_file_size){alert("Exeeds max file size of "+wooccm.limit.max_file_size);return true}reader=new FileReader();reader.onload=(function(s){return function(t){setTimeout(function(){d(n,c[k.attr("id")].push(p)-1,t.target.result,s.name,s.type)},200)}})(p);console.log(p.name);reader.readAsDataURL(p)})}}})});e("#order_review").on("ajaxSuccess",function(l){var k=e(l.target),j=k.find("#place_order"),i=e(".wooccmupload-field"),h=i.length;if(h){j.addClass("wooccm-upload-process")}});e(document).on("click","#place_order.wooccm-upload-process",function(l){l.preventDefault();var i=e("form.checkout"),k=e(this),j=e(".wooccmupload-field"),h=j.length;j.each(function(m,p){var n=e(p),r=n.find(".wooccmupload_field"),q=n.find(".wooccmupload_list");if(window.FormData&&c[n.attr("id")].length){if(!f(i)){k.html(wooccm.message.uploading);g(i)}var o=new FormData();q.find("span[data-file_id]").each(function(t,s){var u=e(s).data("file_id");if(t>wooccm.limit.max_files){console.log("Exeeds max files limit of "+wooccm.limit.max_files);return false}if(c[n.attr("id")][u]===undefined){console.log("Undefined "+u);return true}if(c[n.attr("id")][u].size>wooccm.limit.max_file_size){console.log("Exeeds max file size of "+wooccm.limit.max_files);return true}console.log("We're ready to upload "+c[n.attr("id")][u].name);o.append("wooccm_checkout_attachment_upload[]",c[n.attr("id")][u])});o.append("action","wooccm_checkout_attachment_upload");o.append("nonce",wooccm.nonce);e.ajax({async:false,url:wooccm.ajaxurl,type:"POST",cache:false,data:o,processData:false,contentType:false,beforeSend:function(s){},success:function(s){if(s.success){r.val(s.data)}else{e("body").trigger("update_checkout")}},complete:function(s){h=h-1}})}else{h=h-1}if(h==0){a(i);k.removeClass("wooccm-upload-process").trigger("click")}})});e(document).on("change",".wooccm-add-checkout-fees",function(h){e("body").trigger("update_checkout")});e(".wooccm-conditional-child").each(function(h,m){var j=e(m),l=e(".wooccm-field-"+j.find("[data-conditional-parent]").data("conditional-parent")),k=j.find("[data-conditional-parent-value]").data("conditional-parent-value");if(l.length){l.on("change keyup",function(o){var n=e(o.target),i=n.val();if(n.prop("type")=="checkbox"){i=n.is(":checked")}if(k==i||(e.isArray(i)&&i.indexOf(k)>-1)){j.fadeIn()}else{j.fadeOut()}});l.find("select").trigger("change");l.find("textarea").trigger("keyup");l.find("input[type=button]").trigger("click");l.find("input[type=radio]:checked").trigger("keyup");l.find("input[type=checkbox]:checked").trigger("keyup");l.find("input[type=color]").trigger("keyup");l.find("input[type=date]").trigger("keyup");l.find("input[type=datetime-local]").trigger("keyup");l.find("input[type=email]").trigger("keyup");l.find("input[type=file]").trigger("keyup");l.find("input[type=hidden]").trigger("keyup");l.find("input[type=image]").trigger("keyup");l.find("input[type=month]").trigger("keyup");l.find("input[type=number]").trigger("keyup");l.find("input[type=password]").trigger("keyup");l.find("input[type=range]").trigger("keyup");l.find("input[type=reset]").trigger("keyup");l.find("input[type=search]").trigger("keyup");l.find("input[type=submit]").trigger("keyup");l.find("input[type=tel]").trigger("keyup");l.find("input[type=text]").trigger("keyup");l.find("input[type=time]").trigger("keyup");l.find("input[type=url]").trigger("keyup");l.find("input[type=week]").trigger("keyup")}else{j.show()}});e(".wooccm-type-datepicker").each(function(h,k){var j=e(k),l=j.find("input[type=text]");if(e.isFunction(e.fn.datepicker)){l.datepicker({dateFormat:l.data("formatdate")||"dd-mm-yy",minDate:l.data("mindate")||undefined,maxDate:l.data("maxdate")||undefined,beforeShowDay:function(n){var i=n.getDay(),m=l.data("disable")||false;if(!m){return[true]}else{return[m[i]!==undefined]}}})}});e(".wooccm-type-timepicker").each(function(h,k){var j=e(k),l=j.find("input[type=text]");if(e.isFunction(e.fn.timepicker)){l.timepicker({showPeriod:true,showLeadingZero:true,hours:l.data("hours")||undefined,minutes:l.data("minutes")||undefined,})}});e(".wooccm-colorpicker-farbtastic").each(function(h,k){var j=e(k),m=j.find("input[type=text]"),l=j.find(".wooccmcolorpicker_container");m.hide();if(e.isFunction(e.fn.farbtastic)){l.farbtastic("#"+m.attr("id"));l.on("click",function(i){m.fadeIn()})}});e(".wooccm-colorpicker-iris").each(function(h,k){var j=e(k),l=j.find("input[type=text]");l.css("color","#fff").css("background",l.val()).hide();l.iris({wccmclass:l.attr("id"),palettes:true,color:"",hide:false,change:function(i,m){l.css("color","#000").css("background",m.color.toString()).fadeIn()}})})})(jQuery);
assets/js/wooccm-modal.js CHANGED
@@ -1,8 +1,12 @@
1
  (function ($) {
2
 
 
 
 
3
  var is_blocked = function ($node) {
4
  return $node.is('.processing') || $node.parents('.processing').length;
5
  };
 
6
  var block = function ($node) {
7
  if (!is_blocked($node)) {
8
  $node.addClass('processing').block({
@@ -14,35 +18,44 @@
14
  });
15
  }
16
  };
 
17
  var unblock = function ($node) {
18
  $node.removeClass('processing').unblock();
19
  };
20
-
21
- var wpmi = {
22
- __instance: undefined
23
- };
24
- wpmi.Application = Backbone.View.extend({
25
- id: 'wpmi_modal',
 
26
  events: {
27
- 'click .media-modal-backdrop': 'Close',
28
- 'click .media-modal-close': 'Close',
29
  'click .media-modal-delete': 'Delete',
30
  'click .media-modal-prev': 'update',
31
  'click .media-modal-next': 'update',
32
- 'submit .media-modal-form': 'Save',
 
33
  },
34
  templates: {},
35
- initialize: function (e) {
36
- 'use strict';
37
- _.bindAll(this, 'open', 'update', 'render', 'Close', 'Save');
38
  this.init();
39
- this.open(e);
40
  },
41
  init: function () {
42
  this.templates.window = wp.template('wpmi-modal-window');
43
  },
44
- render: function (field_id) {
45
- 'use strict';
 
 
 
 
 
 
 
46
  var $modal = this;
47
  $.ajax({
48
  url: woocommerce_admin.ajax_url,
@@ -51,7 +64,7 @@
51
  nonce: wooccm.nonce,
52
  //options_name: $tr.data('options_name'),
53
  //options_key: $tr.data('options_key'),
54
- field_id: field_id
55
  },
56
  dataType: 'json',
57
  type: 'POST',
@@ -66,110 +79,131 @@
66
  },
67
  success: function (response) {
68
  console.log(response);
69
- $modal.$el.attr('tabindex', '0');
70
- $modal.$el.html($modal.templates.window(response.data));
71
- //$(document).on('focusin', $modal.preserveFocus);
72
- $modal.$el.focus().trigger('wc-init-tabbed-panels');
73
- $modal.$el.focus().trigger('init_tooltips');
74
- ///$modal.$el.focus().trigger('wc-enhanced-select-init');
75
- $modal.$el.focus().trigger('wooccm-enhanced-select');
76
  }
77
  });
78
  },
79
  update: function (e) {
80
- 'use strict';
81
-
82
  e.preventDefault();
83
 
84
- var $button = $(e.target),
85
- field_id = $button.data('field_id');
86
- this.render(field_id);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  },
88
  open: function (e) {
89
- 'use strict';
90
- var $button = $(e.target),
91
- $tr = $button.closest('tr'),
92
- field_id = $tr.data('field_id');
93
- this.render(field_id);
94
  $('body').addClass('modal-open').append(this.$el);
95
  },
96
- /*preserveFocus: function (e) {
97
- 'use strict';
98
-
99
- if (this.$el[0] !== e.target && !this.$el.has(e.target).length) {
100
- this.$el.focus();
101
- }
102
- },*/
103
- Close: function (e) {
104
- 'use strict';
 
 
 
 
105
  e.preventDefault();
106
  this.undelegateEvents();
107
  $(document).off('focusin');
108
  $('body').removeClass('modal-open');
109
  this.remove();
110
- wpmi.__instance = undefined;
111
  },
112
- Save: function (e) {
113
- 'use strict';
114
  e.preventDefault();
115
  var $form = $(e.target),
116
  $modal = this.$el,
117
- $spinner = $modal.find('.settings-save-status .spinner');
118
- //$spinner = settings-save-status
119
- //console.log($form.serialize());
120
 
121
  $.ajax({
122
  url: woocommerce_admin.ajax_url,
123
  data: {
124
  action: 'wooccm_save_field',
125
  nonce: wooccm.nonce,
126
- field_id: $form.data('field_id'),
127
  //options_name: $tr.data('options_name'),
128
  //options_key: $tr.data('options_key'),
129
  field_data: $form.serializeArrayAll()
130
  },
131
- //data: $.param({field_data: $form.serializeArrayAll()}) + '&' + $.param({action: 'wooccm_save_field'}) + '&' + $.param({nonce: wooccm.nonce}),
132
  dataType: 'json',
133
  type: 'POST',
134
  beforeSend: function () {
135
- $spinner.addClass('is-active');
136
- block($modal);
137
  },
138
  complete: function () {
139
- $spinner.removeClass('is-active');
140
- unblock($modal);
141
- //$modal.Close(e);
 
142
  },
143
  error: function () {
144
  alert('Error!');
145
  },
146
  success: function (response) {
147
  console.log(response);
148
- //$modal.$el.attr('tabindex', '0');
149
- //$modal.$el.html($modal.templates.window(response.data));
150
- //$(document).on('focusin', $modal.preserveFocus);
151
- //$modal.$el.focus().trigger('wc-init-tabbed-panels');
152
  }
153
  });
154
  return false;
155
- },
156
- Delete: function (e) {
157
- 'use strict';
158
- e.preventDefault();
159
- var $modal = this;
160
- $modal.Close(e);
161
  }
162
  });
163
- $('#wooccm_billing_settings_add').on('click', function (e) {
164
- e.preventDefault();
165
- if (wpmi.__instance === undefined) {
166
- wpmi.__instance = new wpmi.Application(e);
167
- }
 
 
 
 
 
 
 
 
 
 
 
 
168
  });
 
169
  $('.wooccm_billing_settings_edit').on('click', function (e) {
170
  e.preventDefault();
171
- if (wpmi.__instance === undefined) {
172
- wpmi.__instance = new wpmi.Application(e);
173
- }
174
  });
 
 
175
  })(jQuery);
1
  (function ($) {
2
 
3
+ var count = 0,
4
+ timer;
5
+
6
  var is_blocked = function ($node) {
7
  return $node.is('.processing') || $node.parents('.processing').length;
8
  };
9
+
10
  var block = function ($node) {
11
  if (!is_blocked($node)) {
12
  $node.addClass('processing').block({
18
  });
19
  }
20
  };
21
+
22
  var unblock = function ($node) {
23
  $node.removeClass('processing').unblock();
24
  };
25
+
26
+ var Field = Backbone.Model.extend({
27
+ defaults: wooccm.fields.args
28
+ });
29
+
30
+ var FieldView = Backbone.View.extend({
31
+ id: 'wooccm_modal',
32
  events: {
33
+ 'click .media-modal-backdrop': 'close',
34
+ 'click .media-modal-close': 'close',
35
  'click .media-modal-delete': 'Delete',
36
  'click .media-modal-prev': 'update',
37
  'click .media-modal-next': 'update',
38
+ 'change .media-modal-change': 'change',
39
+ 'submit .media-modal-form': 'save',
40
  },
41
  templates: {},
42
+ initialize: function () {
43
+ _.bindAll(this, 'open', 'update', 'change', 'load', 'render', 'close', 'save');
 
44
  this.init();
45
+ this.open();
46
  },
47
  init: function () {
48
  this.templates.window = wp.template('wpmi-modal-window');
49
  },
50
+ render: function () {
51
+ this.$el.attr('tabindex', '0');
52
+ this.$el.html(this.templates.window(this.model.attributes));
53
+ this.$el.focus().trigger('wc-init-tabbed-panels');
54
+ this.$el.focus().trigger('init_tooltips');
55
+ this.$el.focus().trigger('wooccm-enhanced-select');
56
+ },
57
+ load: function () {
58
+
59
  var $modal = this;
60
  $.ajax({
61
  url: woocommerce_admin.ajax_url,
64
  nonce: wooccm.nonce,
65
  //options_name: $tr.data('options_name'),
66
  //options_key: $tr.data('options_key'),
67
+ field_id: this.model.attributes.id
68
  },
69
  dataType: 'json',
70
  type: 'POST',
79
  },
80
  success: function (response) {
81
  console.log(response);
82
+ $modal.model.set(response.data)
83
+ $modal.render();
 
 
 
 
 
84
  }
85
  });
86
  },
87
  update: function (e) {
 
 
88
  e.preventDefault();
89
 
90
+ var $modal = this,
91
+ $button = $(e.target),
92
+ field_id = $modal.model.get('id');
93
+
94
+ count++;
95
+
96
+ if (timer) {
97
+ clearTimeout(timer);
98
+ }
99
+
100
+ timer = setTimeout(function () {
101
+
102
+ if ($button.hasClass('media-modal-next')) {
103
+ field_id = field_id + count;
104
+ } else {
105
+ field_id = field_id - count;
106
+ }
107
+
108
+ $modal.model.set({
109
+ id: field_id
110
+ });
111
+
112
+ count = 0;
113
+
114
+ $modal.load();
115
+
116
+ }, 300);
117
  },
118
  open: function (e) {
119
+
120
+ this.load();
121
+
 
 
122
  $('body').addClass('modal-open').append(this.$el);
123
  },
124
+ change: function (e) {
125
+
126
+ e.preventDefault();
127
+
128
+ var $field = $(e.target),
129
+ name = $field.attr('name'),
130
+ value = $field.val();
131
+
132
+ this.model.attributes[name] = value;
133
+
134
+ this.render();
135
+ },
136
+ close: function (e) {
137
  e.preventDefault();
138
  this.undelegateEvents();
139
  $(document).off('focusin');
140
  $('body').removeClass('modal-open');
141
  this.remove();
142
+ //wpmi.__instance = undefined;
143
  },
144
+ save: function (e) {
145
+
146
  e.preventDefault();
147
  var $form = $(e.target),
148
  $modal = this.$el,
149
+ $details = $modal.find('.attachment-details');
 
 
150
 
151
  $.ajax({
152
  url: woocommerce_admin.ajax_url,
153
  data: {
154
  action: 'wooccm_save_field',
155
  nonce: wooccm.nonce,
156
+ field_id: this.model.attributes.id,
157
  //options_name: $tr.data('options_name'),
158
  //options_key: $tr.data('options_key'),
159
  field_data: $form.serializeArrayAll()
160
  },
 
161
  dataType: 'json',
162
  type: 'POST',
163
  beforeSend: function () {
164
+ $details.addClass('save-waiting');
165
+ //block($modal);
166
  },
167
  complete: function () {
168
+ $details.addClass('save-complete');
169
+ $details.removeClass('save-waiting');
170
+ //unblock($modal);
171
+ //$modal.close(e);
172
  },
173
  error: function () {
174
  alert('Error!');
175
  },
176
  success: function (response) {
177
  console.log(response);
 
 
 
 
178
  }
179
  });
180
  return false;
 
 
 
 
 
 
181
  }
182
  });
183
+
184
+ var FieldModal = Backbone.View.extend({
185
+ initialize: function (e) {
186
+
187
+ var $button = $(e.target),
188
+ field_id = $button.closest('[data-field_id]').data('field_id');
189
+
190
+ var model = new Field();
191
+
192
+ model.set({
193
+ id: field_id
194
+ });
195
+
196
+ new FieldView({
197
+ model: model
198
+ });
199
+ },
200
  });
201
+
202
  $('.wooccm_billing_settings_edit').on('click', function (e) {
203
  e.preventDefault();
204
+
205
+ new FieldModal(e);
 
206
  });
207
+
208
+
209
  })(jQuery);
assets/js/wooccm-modal.min.js CHANGED
@@ -1 +1 @@
1
- (function(c){var d=function(f){return f.is(".processing")||f.parents(".processing").length};var e=function(f){if(!d(f)){f.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var b=function(f){f.removeClass("processing").unblock()};var a={__instance:undefined};a.Application=Backbone.View.extend({id:"wpmi_modal",events:{"click .media-modal-backdrop":"Close","click .media-modal-close":"Close","click .media-modal-delete":"Delete","click .media-modal-prev":"update","click .media-modal-next":"update","submit .media-modal-form":"Save",},templates:{},initialize:function(f){_.bindAll(this,"open","update","render","Close","Save");this.init();this.open(f)},init:function(){this.templates.window=wp.template("wpmi-modal-window")},render:function(g){var f=this;c.ajax({url:woocommerce_admin.ajax_url,data:{action:"wooccm_edit_field",nonce:wooccm.nonce,field_id:g},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(h){console.log(h);f.$el.attr("tabindex","0");f.$el.html(f.templates.window(h.data));f.$el.focus().trigger("wc-init-tabbed-panels");f.$el.focus().trigger("init_tooltips");f.$el.focus().trigger("wooccm-enhanced-select")}})},update:function(h){h.preventDefault();var g=c(h.target),f=g.data("field_id");this.render(f)},open:function(i){var h=c(i.target),g=h.closest("tr"),f=g.data("field_id");this.render(f);c("body").addClass("modal-open").append(this.$el)},Close:function(f){f.preventDefault();this.undelegateEvents();c(document).off("focusin");c("body").removeClass("modal-open");this.remove();a.__instance=undefined},Save:function(i){i.preventDefault();var f=c(i.target),g=this.$el,h=g.find(".settings-save-status .spinner");c.ajax({url:woocommerce_admin.ajax_url,data:{action:"wooccm_save_field",nonce:wooccm.nonce,field_id:f.data("field_id"),field_data:f.serializeArrayAll()},dataType:"json",type:"POST",beforeSend:function(){h.addClass("is-active");e(g)},complete:function(){h.removeClass("is-active");b(g)},error:function(){alert("Error!")},success:function(j){console.log(j)}});return false},Delete:function(g){g.preventDefault();var f=this;f.Close(g)}});c("#wooccm_billing_settings_add").on("click",function(f){f.preventDefault();if(a.__instance===undefined){a.__instance=new a.Application(f)}});c(".wooccm_billing_settings_edit").on("click",function(f){f.preventDefault();if(a.__instance===undefined){a.__instance=new a.Application(f)}})})(jQuery);
1
+ (function(e){var g=0,b;var d=function(j){return j.is(".processing")||j.parents(".processing").length};var c=function(j){if(!d(j)){j.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var f=function(j){j.removeClass("processing").unblock()};var h=Backbone.Model.extend({defaults:wooccm.fields.args});var i=Backbone.View.extend({id:"wooccm_modal",events:{"click .media-modal-backdrop":"close","click .media-modal-close":"close","click .media-modal-delete":"Delete","click .media-modal-prev":"update","click .media-modal-next":"update","change .media-modal-change":"change","submit .media-modal-form":"save",},templates:{},initialize:function(){_.bindAll(this,"open","update","change","load","render","close","save");this.init();this.open()},init:function(){this.templates.window=wp.template("wpmi-modal-window")},render:function(){this.$el.attr("tabindex","0");this.$el.html(this.templates.window(this.model.attributes));this.$el.focus().trigger("wc-init-tabbed-panels");this.$el.focus().trigger("init_tooltips");this.$el.focus().trigger("wooccm-enhanced-select")},load:function(){var j=this;e.ajax({url:woocommerce_admin.ajax_url,data:{action:"wooccm_edit_field",nonce:wooccm.nonce,field_id:this.model.attributes.id},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(k){console.log(k);j.model.set(k.data);j.render()}})},update:function(m){m.preventDefault();var j=this,l=e(m.target),k=j.model.get("id");g++;if(b){clearTimeout(b)}b=setTimeout(function(){if(l.hasClass("media-modal-next")){k=k+g}else{k=k-g}j.model.set({id:k});g=0;j.load()},300)},open:function(j){this.load();e("body").addClass("modal-open").append(this.$el)},change:function(m){m.preventDefault();var k=e(m.target),j=k.attr("name"),l=k.val();this.model.attributes[j]=l;this.render()},close:function(j){j.preventDefault();this.undelegateEvents();e(document).off("focusin");e("body").removeClass("modal-open");this.remove()},save:function(m){m.preventDefault();var k=e(m.target),l=this.$el,j=l.find(".attachment-details");e.ajax({url:woocommerce_admin.ajax_url,data:{action:"wooccm_save_field",nonce:wooccm.nonce,field_id:this.model.attributes.id,field_data:k.serializeArrayAll()},dataType:"json",type:"POST",beforeSend:function(){j.addClass("save-waiting")},complete:function(){j.addClass("save-complete");j.removeClass("save-waiting")},error:function(){alert("Error!")},success:function(n){console.log(n)}});return false}});var a=Backbone.View.extend({initialize:function(m){var l=e(m.target),k=l.closest("[data-field_id]").data("field_id");var j=new h();j.set({id:k});new i({model:j})},});e(".wooccm_billing_settings_edit").on("click",function(j){j.preventDefault();new a(j)})})(jQuery);
assets/js/wooccm-order-upload.js CHANGED
@@ -47,11 +47,11 @@
47
  all_attachments_ids: $('#all_attachments_ids').val()
48
  },
49
  beforeSend: function (response) {
50
- $('.wccm_results').html(wooccm.saving);
51
  },
52
  success: function (response) {
53
  if (response.success) {
54
- $('.wccm_results').html(wooccm.deleted);
55
  } else {
56
  $('.wccm_results').html(response.data);
57
  }
@@ -110,7 +110,7 @@
110
  contentType: false,
111
  beforeSend: function (response) {
112
 
113
- $('.wccm_results').html(wooccm.uploading);
114
 
115
  block($('#wooccm_order_attachment_inner'));
116
  },
@@ -118,7 +118,7 @@
118
 
119
  if (response.success) {
120
  $('#wooccm_order_attachment_inner').replaceWith(response.data);
121
- $('.wccm_results').html(wooccm.success);
122
  } else {
123
  $('.wccm_results').html(response.data);
124
  }
47
  all_attachments_ids: $('#all_attachments_ids').val()
48
  },
49
  beforeSend: function (response) {
50
+ $('.wccm_results').html(wooccm.message.saving);
51
  },
52
  success: function (response) {
53
  if (response.success) {
54
+ $('.wccm_results').html(wooccm.message.deleted);
55
  } else {
56
  $('.wccm_results').html(response.data);
57
  }
110
  contentType: false,
111
  beforeSend: function (response) {
112
 
113
+ $('.wccm_results').html(wooccm.message.uploading);
114
 
115
  block($('#wooccm_order_attachment_inner'));
116
  },
118
 
119
  if (response.success) {
120
  $('#wooccm_order_attachment_inner').replaceWith(response.data);
121
+ $('.wccm_results').html(wooccm.message.success);
122
  } else {
123
  $('.wccm_results').html(response.data);
124
  }
assets/js/wooccm-order-upload.min.js CHANGED
@@ -1 +1 @@
1
- (function(b){var c=function(e){return e.is(".processing")||e.parents(".processing").length};var d=function(e){if(!c(e)){e.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var a=function(e){e.removeClass("processing").unblock()};b(document).ready(function(e){e(document).on("click",".wooccm_delete_attachment",function(h){var g=e(this).closest("tr"),f=e(this).data("attachment_id");g.hide();e("#wooccm_order_attachment_update").prop("disabled",false);e("#delete_attachments_ids").val(e("#delete_attachments_ids").val().replace(f,""))});e(document).on("click","#wooccm_order_attachment_update",function(f){e.ajax({url:wooccm.ajaxurl,type:"POST",cache:false,data:{action:"wooccm_order_attachment_update",nonce:wooccm.nonce,delete_attachments_ids:e("#delete_attachments_ids").val(),all_attachments_ids:e("#all_attachments_ids").val()},beforeSend:function(g){e(".wccm_results").html(wooccm.saving)},success:function(g){if(g.success){e(".wccm_results").html(wooccm.deleted)}else{e(".wccm_results").html(g.data)}}})});e(document).on("change","#wooccm_order_attachment_upload",function(m){var l=false,n=e(this).data("order_id");if(window.FormData){l=new FormData()}var k=0,g=this.files.length,h,f,j;for(;k<g;k++){j=this.files[k];if(l){l.append("wooccm_order_attachment_upload[]",j)}}if(l){l.append("action","wooccm_order_attachment_upload");l.append("nonce",wooccm.nonce);l.append("order_id",n);e.ajax({url:wooccm.ajaxurl,type:"POST",cache:false,data:l,processData:false,contentType:false,beforeSend:function(i){e(".wccm_results").html(wooccm.uploading);d(e("#wooccm_order_attachment_inner"))},success:function(i){if(i.success){e("#wooccm_order_attachment_inner").replaceWith(i.data);e(".wccm_results").html(wooccm.success)}else{e(".wccm_results").html(i.data)}a(e("#wooccm_order_attachment_inner"))}})}})})})(jQuery);
1
+ (function(b){var c=function(e){return e.is(".processing")||e.parents(".processing").length};var d=function(e){if(!c(e)){e.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}};var a=function(e){e.removeClass("processing").unblock()};b(document).ready(function(e){e(document).on("click",".wooccm_delete_attachment",function(h){var g=e(this).closest("tr"),f=e(this).data("attachment_id");g.hide();e("#wooccm_order_attachment_update").prop("disabled",false);e("#delete_attachments_ids").val(e("#delete_attachments_ids").val().replace(f,""))});e(document).on("click","#wooccm_order_attachment_update",function(f){e.ajax({url:wooccm.ajaxurl,type:"POST",cache:false,data:{action:"wooccm_order_attachment_update",nonce:wooccm.nonce,delete_attachments_ids:e("#delete_attachments_ids").val(),all_attachments_ids:e("#all_attachments_ids").val()},beforeSend:function(g){e(".wccm_results").html(wooccm.message.saving)},success:function(g){if(g.success){e(".wccm_results").html(wooccm.message.deleted)}else{e(".wccm_results").html(g.data)}}})});e(document).on("change","#wooccm_order_attachment_upload",function(m){var l=false,n=e(this).data("order_id");if(window.FormData){l=new FormData()}var k=0,g=this.files.length,h,f,j;for(;k<g;k++){j=this.files[k];if(l){l.append("wooccm_order_attachment_upload[]",j)}}if(l){l.append("action","wooccm_order_attachment_upload");l.append("nonce",wooccm.nonce);l.append("order_id",n);e.ajax({url:wooccm.ajaxurl,type:"POST",cache:false,data:l,processData:false,contentType:false,beforeSend:function(i){e(".wccm_results").html(wooccm.message.uploading);d(e("#wooccm_order_attachment_inner"))},success:function(i){if(i.success){e("#wooccm_order_attachment_inner").replaceWith(i.data);e(".wccm_results").html(wooccm.message.success)}else{e(".wccm_results").html(i.data)}a(e("#wooccm_order_attachment_inner"))}})}})})})(jQuery);
includes/checkout.php CHANGED
@@ -1,57 +1,5 @@
1
  <?php
2
 
3
- // Decides where the Additional Checkout fields appear on the Checkout page
4
- /*
5
- * 1326
6
- * function wooccm_checkout_additional_positioning() {
7
-
8
- $options = get_option( 'wccs_settings' );
9
- // Defaults to after_order_notes
10
- $position = ( !empty( $options['checkness']['position'] ) ? sanitize_text_field( $options['checkness']['position'] ) : 'after_order_notes' );
11
- switch( $position ) {
12
-
13
- case 'before_shipping_form':
14
- case 'after_shipping_form':
15
- case 'before_billing_form':
16
- case 'after_billing_form':
17
- case 'after_order_notes':
18
- return $position;
19
- break;
20
-
21
- }
22
-
23
- } */
24
-
25
- /*
26
- * 1326
27
- * break i18 address required field
28
- * function wooccm_checkout_default_address_fields( $fields = array() ) {
29
-
30
-
31
- // Billing fields
32
- $options = get_option( 'wccs_settings3' );
33
- $buttons = ( isset( $options['billing_buttons'] ) ? $options['billing_buttons'] : false );
34
-
35
- if( empty( $buttons ) )
36
- return $fields;
37
-
38
- foreach( $buttons as $btn ) {
39
-
40
- if( !empty( $btn['cow'] ) && empty( $btn['deny_checkout'] ) ) {
41
- $key = $btn['cow'];
42
-
43
- if( isset( $fields[$key] ) )
44
- $fields[$key]['required'] = ( isset( $btn['checkbox'] ) ? absint( $btn['checkbox'] ) : ( isset( $fields[$key]['required'] ) ? absint( $fields[$key]['required'] ) : false ) );
45
-
46
- }
47
-
48
- }
49
-
50
- return $fields;
51
-
52
- }
53
- */
54
-
55
  function wooccm_autocreate_account($fields) {
56
 
57
  $options = get_option('wccs_settings');
1
  <?php
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  function wooccm_autocreate_account($fields) {
4
 
5
  $options = get_option('wccs_settings');
includes/templates/admin/woocheckout-additional-clone.php CHANGED
@@ -133,11 +133,11 @@ if ( !defined( 'ABSPATH' ) )
133
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e( 'Options Toggler', 'woocommerce-checkout-manager' ); ?></td>
134
 
135
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change_tog hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e( 'Swapper Toggler', 'woocommerce-checkout-manager' ); ?></td>
136
-
137
  <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e( 'Time Toggler', 'woocommerce-checkout-manager' ); ?></td>
138
 
139
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;"><?php _e( 'Date Toggler', 'woocommerce-checkout-manager' ); ?></td>
140
-
141
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1"><?php _e( 'Hidden Toggler', 'woocommerce-checkout-manager' ); ?></td>
142
 
143
  <td class="filter_field add_amount_field condition_tick hide_stuff_time hide_stuff_change hide_stuff_opcheck hide_stuff_color hide_stuff_op more_toggler more_toggler1c"><?php _e( 'More Toggler', 'woocommerce-checkout-manager' ); ?></td>
133
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e( 'Options Toggler', 'woocommerce-checkout-manager' ); ?></td>
134
 
135
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change_tog hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e( 'Swapper Toggler', 'woocommerce-checkout-manager' ); ?></td>
136
+ <!--
137
  <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e( 'Time Toggler', 'woocommerce-checkout-manager' ); ?></td>
138
 
139
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;"><?php _e( 'Date Toggler', 'woocommerce-checkout-manager' ); ?></td>
140
+ -->
141
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1"><?php _e( 'Hidden Toggler', 'woocommerce-checkout-manager' ); ?></td>
142
 
143
  <td class="filter_field add_amount_field condition_tick hide_stuff_time hide_stuff_change hide_stuff_opcheck hide_stuff_color hide_stuff_op more_toggler more_toggler1c"><?php _e( 'More Toggler', 'woocommerce-checkout-manager' ); ?></td>
includes/templates/admin/woocheckout-billing-clone.php CHANGED
@@ -127,11 +127,11 @@ if ( !defined( 'ABSPATH' ) )
127
  <td class="hide_stuff_op wccm1" style="display:none;"><input type="text" name="wccs_settings3[billing_buttons][<?php echo $i; ?>][option_array]" value="" placeholder="Option 1||Option 2||Option 3" /></td>
128
 
129
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Options Toggler', 'woocommerce-checkout-manager' ); ?></td>
130
-
131
  <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Time Toggler', 'woocommerce-checkout-manager' ); ?></td>
132
 
133
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;"><?php _e('Date Toggler', 'woocommerce-checkout-manager' ); ?></td>
134
-
135
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1"><?php _e('Hidden Toggler', 'woocommerce-checkout-manager' ); ?></td>
136
 
137
  <td class="filter_field add_amount_field condition_tick hide_stuff_time hide_stuff_change hide_stuff_opcheck hide_stuff_color hide_stuff_op more_toggler more_toggler1c"><?php _e('More Toggler', 'woocommerce-checkout-manager' ); ?></td>
127
  <td class="hide_stuff_op wccm1" style="display:none;"><input type="text" name="wccs_settings3[billing_buttons][<?php echo $i; ?>][option_array]" value="" placeholder="Option 1||Option 2||Option 3" /></td>
128
 
129
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Options Toggler', 'woocommerce-checkout-manager' ); ?></td>
130
+ <!--
131
  <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Time Toggler', 'woocommerce-checkout-manager' ); ?></td>
132
 
133
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;"><?php _e('Date Toggler', 'woocommerce-checkout-manager' ); ?></td>
134
+ -->
135
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1"><?php _e('Hidden Toggler', 'woocommerce-checkout-manager' ); ?></td>
136
 
137
  <td class="filter_field add_amount_field condition_tick hide_stuff_time hide_stuff_change hide_stuff_opcheck hide_stuff_color hide_stuff_op more_toggler more_toggler1c"><?php _e('More Toggler', 'woocommerce-checkout-manager' ); ?></td>
includes/templates/admin/woocheckout-billing-tbody.php CHANGED
@@ -230,14 +230,15 @@ if ( !defined( 'ABSPATH' ) ) exit;
230
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;">
231
  <?php _e('Options Toggler', 'woocommerce-checkout-manager' ); ?>
232
  </td>
233
-
234
- <!--<td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;">
235
  <?php _e('Time Toggler', 'woocommerce-checkout-manager' ); ?>
236
  </td>
237
 
238
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;">
239
- <?php _e('Date Toggler', 'woocommerce-checkout-manager' ); ?>-->
240
  </td>
 
241
 
242
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1">
243
  <?php _e('Hidden Toggler', 'woocommerce-checkout-manager' ); ?>
230
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;">
231
  <?php _e('Options Toggler', 'woocommerce-checkout-manager' ); ?>
232
  </td>
233
+ <!--
234
+ <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;">
235
  <?php _e('Time Toggler', 'woocommerce-checkout-manager' ); ?>
236
  </td>
237
 
238
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;">
239
+ <?php _e('Date Toggler', 'woocommerce-checkout-manager' ); ?>
240
  </td>
241
+ -->
242
 
243
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1">
244
  <?php _e('Hidden Toggler', 'woocommerce-checkout-manager' ); ?>
includes/templates/admin/woocheckout-billing-thead.php CHANGED
@@ -116,7 +116,8 @@ if ( !defined( 'ABSPATH' ) ) exit;
116
 
117
  <th style="cursor:pointer;text-align:center;font-size:30px;display:none;" class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_time hide_stuff_opcheck hide_stuff_tog hide_stuff_color more_toggler1 more_toggler1c" width="2%"><span class="toggle_shower">&equiv;</span></th>
118
 
119
- <!--<th style="cursor:pointer;text-align:center;font-size:30px;display:none;" class="filter_field add_amount_field condition_tick hide_stuff_opcheck hide_stuff_op hide_stuff_change hide_stuff_time_tog hide_stuff_color more_toggler1 more_toggler1c" width="2%"><span class="toggle_shower">&equiv;</span></th>
 
120
 
121
  <th style="cursor:pointer;text-align:center;font-size:30px;display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_days hide_stuff_color_tog hide_stuff_op more_toggler1 more_toggler1c" width="2%"><span class="toggle_shower">&equiv;</span></th>
122
  -->
116
 
117
  <th style="cursor:pointer;text-align:center;font-size:30px;display:none;" class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_time hide_stuff_opcheck hide_stuff_tog hide_stuff_color more_toggler1 more_toggler1c" width="2%"><span class="toggle_shower">&equiv;</span></th>
118
 
119
+ <!--
120
+ <th style="cursor:pointer;text-align:center;font-size:30px;display:none;" class="filter_field add_amount_field condition_tick hide_stuff_opcheck hide_stuff_op hide_stuff_change hide_stuff_time_tog hide_stuff_color more_toggler1 more_toggler1c" width="2%"><span class="toggle_shower">&equiv;</span></th>
121
 
122
  <th style="cursor:pointer;text-align:center;font-size:30px;display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_days hide_stuff_color_tog hide_stuff_op more_toggler1 more_toggler1c" width="2%"><span class="toggle_shower">&equiv;</span></th>
123
  -->
includes/templates/admin/woocheckout-shipping-clone.php CHANGED
@@ -128,11 +128,11 @@ if ( !defined( 'ABSPATH' ) )
128
  <td class="hide_stuff_op wccm1" style="display:none;"><input type="text" name="wccs_settings2[shipping_buttons][<?php echo $i; ?>][option_array]" value="" placeholder="Option 1||Option 2||Option 3" /></td>
129
 
130
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Options Toggler', 'woocommerce-checkout-manager' ); ?></td>
131
-
132
  <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Time Toggler', 'woocommerce-checkout-manager' ); ?></td>
133
 
134
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;"><?php _e('Date Toggler', 'woocommerce-checkout-manager' ); ?></td>
135
-
136
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1"><?php _e('Hidden Toggler', 'woocommerce-checkout-manager' ); ?></td>
137
 
138
  <td class="filter_field add_amount_field condition_tick hide_stuff_time hide_stuff_change hide_stuff_opcheck hide_stuff_color hide_stuff_op more_toggler more_toggler1c"><?php _e('More Toggler', 'woocommerce-checkout-manager' ); ?></td>
128
  <td class="hide_stuff_op wccm1" style="display:none;"><input type="text" name="wccs_settings2[shipping_buttons][<?php echo $i; ?>][option_array]" value="" placeholder="Option 1||Option 2||Option 3" /></td>
129
 
130
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Options Toggler', 'woocommerce-checkout-manager' ); ?></td>
131
+ <!--
132
  <td class="filter_field add_amount_field condition_tick hide_stuff_change hide_stuff_timef hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1 more_toggler1c" style="display:none;"><?php _e('Time Toggler', 'woocommerce-checkout-manager' ); ?></td>
133
 
134
  <td class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op more_toggler1 more_toggler1c hide_stuff_days" style="display:none;"><?php _e('Date Toggler', 'woocommerce-checkout-manager' ); ?></td>
135
+ -->
136
  <td style="display:none;" class="filter_field add_amount_field hide_stuff_time condition_tick hide_stuff_change hide_stuff_opcheck hide_stuff_op hide_stuff_color more_toggler1"><?php _e('Hidden Toggler', 'woocommerce-checkout-manager' ); ?></td>
137
 
138
  <td class="filter_field add_amount_field condition_tick hide_stuff_time hide_stuff_change hide_stuff_opcheck hide_stuff_color hide_stuff_op more_toggler more_toggler1c"><?php _e('More Toggler', 'woocommerce-checkout-manager' ); ?></td>
includes/templates/functions/add_functions.php DELETED
@@ -1,337 +0,0 @@
1
- <?php
2
- /**
3
- * WooCommerce Checkout Manager
4
- */
5
- // Exit if accessed directly
6
- if (!defined('ABSPATH'))
7
- exit;
8
-
9
- function wooccm_scripts() {
10
-
11
- global $woocommerce;
12
-
13
- $options = get_option('wccs_settings');
14
-
15
- $saved = WC()->session->get('wooccm_retain', array());
16
-
17
- // Check if we have any buttons
18
- if (empty($options['buttons']))
19
- return;
20
-
21
- foreach ($options['buttons'] as $btn) {
22
-
23
- if ($btn['type'] == 'datepicker') {
24
- echo '
25
- <script type="text/javascript">
26
- jQuery(document).ready(function() {
27
- var today = new Date();
28
- if( jQuery.isFunction(jQuery.fn.datepicker) ) {
29
- jQuery("input#' . $btn['cow'] . '").datepicker({
30
- ';
31
- // Default date format
32
- if (empty($btn['format_date']))
33
- $btn['format_date'] = apply_filters('wooccm_datepicker_default_date_format', 'dd-mm-yy');
34
- if (!empty($btn['format_date'])) {
35
- echo 'dateFormat : "' . str_replace(' ', '', $btn['format_date']) . '",';
36
- }
37
- if (!empty($btn['single_yy'])) {
38
- echo 'minDate: new Date( ' . $btn['single_yy'] . ', ' . $btn['single_mm'] . ' - 1, ' . $btn['single_dd'] . '),';
39
- }
40
- if (!empty($btn['min_before'])) {
41
- echo 'minDate: ' . $btn['min_before'] . ',';
42
- }
43
- if (!empty($btn['single_max_yy'])) {
44
- echo 'maxDate: new Date( ' . $btn['single_max_yy'] . ', ' . $btn['single_max_mm'] . ' - 1, ' . $btn['single_max_dd'] . '),';
45
- }
46
- if (!empty($btn['max_after'])) {
47
- echo 'maxDate: ' . $btn['max_after'] . ',';
48
- }
49
- if (!empty($btn['days_disabler'])) {
50
- echo 'beforeShowDay: function(date) { var day = date.getDay(); return [(';
51
- if (!empty($btn['days_disabler0'])) {
52
- echo 'day == 0';
53
- } else {
54
- echo 'day == "x"';
55
- }
56
- if (!empty($btn['days_disabler1'])) {
57
- echo ' || day == 1';
58
- }
59
- if (!empty($btn['days_disabler2'])) {
60
- echo ' || day == 2';
61
- }
62
- if (!empty($btn['days_disabler3'])) {
63
- echo ' || day == 3';
64
- }
65
- if (!empty($btn['days_disabler4'])) {
66
- echo ' || day == 4';
67
- }
68
- if (!empty($btn['days_disabler5'])) {
69
- echo ' || day == 5';
70
- }
71
- if (!empty($btn['days_disabler6'])) {
72
- echo '|| day == 6';
73
- }
74
- echo ')]; }';
75
- }
76
- do_action('wooccm_js_datepicker_additional_args', $btn);
77
- echo '
78
- });
79
- }
80
- });
81
- </script>
82
- ';
83
- }
84
-
85
- if ($btn['type'] == 'time') {
86
- $args = '
87
- showPeriod: true,';
88
- if (!empty($btn['start_hour'])) {
89
- $args .= '
90
- hours: { starts: ' . $btn['start_hour'] . ', ends: ' . $btn['end_hour'] . ' },';
91
- }
92
- if (!empty($btn['interval_min'])) {
93
- $args .= '
94
- minutes: {interval: ' . $btn['interval_min'] . ', manual: [' . $btn['manual_min'] . '] },';
95
- }
96
- $args .= '
97
- showLeadingZero: true';
98
- $args = apply_filters('wooccm_timepicker_jquery_args', $args, $btn);
99
- echo '
100
- <!-- Additional section: TimePicker -->
101
- <script type="text/javascript">
102
- jQuery(document).ready(function() {
103
- if( jQuery.isFunction(jQuery.fn.timepicker) ) {
104
- jQuery("#' . $btn['cow'] . '_field input#' . $btn['cow'] . '").timepicker({'
105
- ;
106
- echo $args;
107
- echo '
108
- });
109
- }
110
- });
111
- </script>
112
- ';
113
- }
114
-
115
- if ($btn['type'] == 'password') {
116
- echo '
117
- <script type="text/javascript">
118
- jQuery(document).ready(function() {
119
- jQuery("p#' . $btn['cow'] . '_field").css("display");
120
- });
121
- </script>
122
- ';
123
- }
124
-
125
- /*if ($btn['type'] == 'colorpicker') {
126
- switch ($btn['colorpickertype']) {
127
-
128
- case 'farbtastic':
129
- ?>
130
- <script type="text/javascript">
131
- jQuery(document).ready(function ($) {
132
- jQuery('#<?php echo $btn['cow']; ?>_colorpickerdiv').hide();
133
- if (jQuery.isFunction(jQuery.fn.farbtastic)) {
134
- jQuery('#<?php echo $btn['cow']; ?>_colorpickerdiv').farbtastic("#<?php echo $btn['cow']; ?>_colorpicker");
135
- jQuery("#<?php echo $btn['cow']; ?>_colorpicker").click(function () {
136
- jQuery('#<?php echo $btn['cow']; ?>_colorpickerdiv').slideToggle()
137
- });
138
- }
139
- });
140
- </script>
141
- <?php
142
- break;
143
-
144
- case 'iris':
145
- ?>
146
- <script type="text/javascript">
147
- jQuery(document).ready(function ($) {
148
-
149
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('color', '#fff');
150
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('background', '<?php echo $btn['colorpickerd']; ?>');
151
-
152
- var options = {
153
- wccmclass: "<?php echo $btn['cow']; ?>_colorpickerdiv",
154
- palettes: true,
155
- color: "",
156
- hide: false,
157
- change: function (event, ui) {
158
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('color', '#000');
159
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('background', ui.color.toString());
160
- }
161
- };
162
-
163
- jQuery('#<?php echo $btn['cow']; ?>_colorpicker').iris(options);
164
- jQuery('.<?php echo $btn['cow']; ?>_colorpickerdiv').hide();
165
- jQuery("#<?php echo $btn['cow']; ?>_colorpicker").click(function () {
166
- jQuery('.<?php echo $btn['cow']; ?>_colorpickerdiv').slideToggle()
167
- });
168
-
169
- });
170
- </script>
171
- <?php
172
- break;
173
- }
174
- }*/
175
-
176
- // ============================== radio button & checkbox ===========================================
177
-
178
- /*if (( $btn['type'] == 'wooccmradio' || $btn['type'] == 'checkbox_wccm' ) && !empty($btn['tax_remove'])) {
179
- ?>
180
- <script type="text/javascript">
181
- jQuery(document).ready(function ($) {
182
-
183
- <?php if (!empty($saved['wooccm_tax_save_method'])) { ?>
184
- jQuery('#<?php echo $btn['cow']; ?>_field input[name=<?php echo $btn['cow']; ?>]').prop("checked", true);
185
- <?php } ?>
186
-
187
- jQuery('#<?php echo $btn['cow']; ?>_field input').click(function () {
188
-
189
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
190
-
191
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
192
- data = {
193
- action: 'remove_tax_wccm',
194
- tax_remove_aj: jQuery('#<?php echo $btn['cow']; ?>_field input[name=<?php echo $btn['cow']; ?>]:checked').val()
195
- };
196
-
197
- jQuery.post(ajaxurl, data, function (response) {
198
- $('body').trigger('update_checkout');
199
- jQuery('form.checkout').unblock();
200
- });
201
-
202
- });
203
- });
204
- </script>
205
- <?php
206
- }*/
207
-
208
- /*if (( $btn['type'] == 'wooccmradio' || $btn['type'] == 'checkbox_wccm' ) && !empty($btn['add_amount']) && !empty($btn['fee_name']) && !empty($btn['add_amount_field'])) {
209
- ?>
210
- <script type="text/javascript">
211
- jQuery(document).ready(function ($) {
212
-
213
- <?php if (!empty($saved['wooccm_addamount453user'])) { ?>
214
- jQuery('#<?php echo $btn['cow']; ?>_field input[name=<?php echo $btn['cow']; ?>]').prop("checked", true);
215
- <?php } ?>
216
- jQuery('#<?php echo $btn['cow']; ?>_field input').click(function () {
217
-
218
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
219
-
220
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
221
- data = {
222
- action: 'remove_tax_wccm',
223
- add_amount_aj: jQuery('#<?php echo $btn['cow']; ?>_field input[name=<?php echo $btn['cow']; ?>]:checked').val()
224
- };
225
-
226
- jQuery.post(ajaxurl, data, function (response) {
227
- $('body').trigger('update_checkout');
228
- jQuery('form.checkout').unblock();
229
- });
230
-
231
- });
232
- });
233
- </script>
234
- <?php
235
- }*/
236
-
237
- // =========================================== select options =========================================
238
-
239
- /*if (($btn['type'] == 'wooccmselect') && !empty($btn['tax_remove'])) {
240
- ?>
241
- <script type="text/javascript">
242
- jQuery(document).ready(function ($) {
243
-
244
- <?php if (!empty($saved['wooccm_tax_save_method'])) { ?>
245
- jQuery('#<?php echo $btn['cow']; ?>_field select').val('<?php echo $saved['wooccm_tax_save_method']; ?>');
246
- <?php } ?>
247
- jQuery('#<?php echo $btn['cow']; ?>_field select').change(function () {
248
-
249
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
250
-
251
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
252
- data = {
253
- action: 'remove_tax_wccm',
254
- tax_remove_aj: jQuery('#<?php echo $btn['cow']; ?> option:selected').val()
255
- };
256
-
257
- jQuery.post(ajaxurl, data, function (response) {
258
- $('body').trigger('update_checkout');
259
- jQuery('form.checkout').unblock();
260
- });
261
-
262
- });
263
- });
264
- </script>
265
- <?php
266
- }*/
267
-
268
- /*if (($btn['type'] == 'wooccmselect') && !empty($btn['add_amount']) && !empty($btn['fee_name']) && !empty($btn['add_amount_field'])) {
269
- ?>
270
- <script type="text/javascript">
271
- jQuery(document).ready(function ($) {
272
-
273
- <?php if (!empty($saved['wooccm_addamount453user'])) { ?>
274
- jQuery('#<?php echo $btn['cow']; ?>_field select').val('<?php echo $saved['wooccm_addamount453user']; ?>');
275
- <?php } ?>
276
-
277
- jQuery('#<?php echo $btn['cow']; ?>_field select').change(function () {
278
-
279
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
280
-
281
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
282
- data = {
283
- action: 'remove_tax_wccm',
284
- add_amount_aj: jQuery('#<?php echo $btn['cow']; ?> option:selected').val()
285
- };
286
-
287
- jQuery.post(ajaxurl, data, function (response) {
288
- $('body').trigger('update_checkout');
289
- jQuery('form.checkout').unblock();
290
- });
291
-
292
- });
293
- });
294
- </script>
295
- <?php
296
- }*/
297
-
298
- // =========================================== add apply button ==========================================
299
-
300
- /*if (($btn['type'] == 'text') && !empty($btn['add_amount']) && !empty($btn['fee_name']) && empty($btn['add_amount_field'])) {
301
- ?>
302
- <script type="text/javascript">
303
- jQuery(document).ready(function () {
304
- jQuery("#<?php echo $btn['cow']; ?>_field").append('<span id="<?php echo $btn['cow']; ?>_applynow"><?php _e('Apply', 'woocommerce-checkout-manager'); ?></span>');
305
- });
306
-
307
- jQuery(document).ready(function ($) {
308
-
309
- <?php if (!empty($saved['wooccm_addamount453userf'])) { ?>
310
- jQuery('input#<?php echo $btn['cow']; ?>').val('<?php echo $saved['wooccm_addamount453userf']; ?>');
311
- <?php } ?>
312
-
313
- jQuery('#<?php echo $btn['cow']; ?>_field #<?php echo $btn['cow']; ?>_applynow').click(function () {
314
-
315
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
316
-
317
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
318
- data = {
319
- action: 'remove_tax_wccm',
320
- add_amount_faj: jQuery('input#<?php echo $btn['cow']; ?>').val()
321
- };
322
-
323
- jQuery.post(ajaxurl, data, function (response) {
324
- $('body').trigger('update_checkout');
325
- jQuery('form.checkout').unblock();
326
- });
327
-
328
- });
329
-
330
- });
331
- </script>
332
- <?php
333
- }*/
334
-
335
- // =====================================================
336
- }
337
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/templates/functions/billing_functions.php DELETED
@@ -1,367 +0,0 @@
1
- <?php
2
- /**
3
- * WooCommerce Checkout Manager
4
- */
5
- // Exit if accessed directly
6
- if (!defined('ABSPATH'))
7
- exit;
8
-
9
- function wooccm_billing_hide_required() {
10
-
11
- global $woocommerce;
12
-
13
- $options = get_option('wccs_settings3');
14
-
15
- $billing = array(
16
- 'address_1',
17
- 'address_2',
18
- 'city',
19
- 'state',
20
- 'postcode'
21
- );
22
-
23
- if (!empty($options['billing_buttons'])) {
24
- echo '
25
- <style>
26
- ';
27
- foreach ($options['billing_buttons'] as $btn) {
28
- if (in_array($btn['cow'], $billing) && empty($btn['checkbox'])) {
29
- echo '
30
- p#billing_' . $btn['cow'] . '_field .required{
31
- display:none;
32
- }';
33
- }
34
- }
35
- echo '
36
- </style>';
37
- }
38
- }
39
-
40
- function wooccm_billing_scripts() {
41
-
42
- global $woocommerce;
43
-
44
- $options = get_option('wccs_settings3');
45
-
46
- $saved = WC()->session->get('wooccm_retain', array());
47
-
48
- // Check if we have any buttons
49
- if (empty($options['billing_buttons']))
50
- return;
51
-
52
- foreach ($options['billing_buttons'] as $btn) {
53
-
54
- if ($btn['type'] == 'datepicker') {
55
- echo '
56
- <script type="text/javascript">
57
- jQuery(document).ready(function() {
58
- var today = new Date();
59
- if( jQuery.isFunction(jQuery.fn.datepicker) ) {
60
- jQuery("input#billing_' . $btn['cow'] . '").datepicker({
61
- ';
62
- // Default date format
63
- if (empty($btn['format_date']))
64
- $btn['format_date'] = apply_filters('wooccm_datepicker_default_date_format', 'dd-mm-yy');
65
- if (!empty($btn['format_date'])) {
66
- echo 'dateFormat : "' . str_replace(' ', '', $btn['format_date']) . '",';
67
- }
68
- if (!empty($btn['single_yy'])) {
69
- echo 'minDate: new Date( ' . $btn['single_yy'] . ', ' . $btn['single_mm'] . ' - 1, ' . $btn['single_dd'] . '),';
70
- }
71
- if (!empty($btn['min_before'])) {
72
- echo 'minDate: ' . $btn['min_before'] . ',';
73
- }
74
- if (!empty($btn['single_max_yy'])) {
75
- echo 'maxDate: new Date( ' . $btn['single_max_yy'] . ', ' . $btn['single_max_mm'] . ' - 1, ' . $btn['single_max_dd'] . '),';
76
- }
77
- if (!empty($btn['max_after'])) {
78
- echo 'maxDate: ' . $btn['max_after'] . ',';
79
- }
80
- if (!empty($btn['days_disabler'])) {
81
- echo 'beforeShowDay: function(date) { var day = date.getDay(); return [(';
82
- if (!empty($btn['days_disabler0'])) {
83
- echo 'day == 0';
84
- } else {
85
- echo 'day == "x"';
86
- }
87
- if (!empty($btn['days_disabler1'])) {
88
- echo ' || day == 1';
89
- }
90
- if (!empty($btn['days_disabler2'])) {
91
- echo ' || day == 2';
92
- }
93
- if (!empty($btn['days_disabler3'])) {
94
- echo ' || day == 3';
95
- }
96
- if (!empty($btn['days_disabler4'])) {
97
- echo ' || day == 4';
98
- }
99
- if (!empty($btn['days_disabler5'])) {
100
- echo ' || day == 5';
101
- }
102
- if (!empty($btn['days_disabler6'])) {
103
- echo '|| day == 6';
104
- }
105
- echo ')]; }';
106
- }
107
- do_action('wooccm_js_datepicker_billing_args', $btn);
108
- echo '
109
- });
110
- }
111
- });
112
- </script>
113
- ';
114
- }
115
-
116
- if ($btn['type'] == 'time') {
117
- $args = '
118
- showPeriod: true,';
119
- if (!empty($btn['start_hour'])) {
120
- $args .= '
121
- hours: { starts: ' . $btn['start_hour'] . ', ends: ' . $btn['end_hour'] . ' },';
122
- }
123
- if (!empty($btn['interval_min'])) {
124
- $args .= '
125
- minutes: {interval: ' . $btn['interval_min'] . ', manual: [' . $btn['manual_min'] . '] },';
126
- }
127
- $args .= '
128
- showLeadingZero: true';
129
- $args = apply_filters('wooccm_timepicker_jquery_args', $args, $btn);
130
- echo '
131
- <!-- Billing section: TimePicker -->
132
- <script type="text/javascript">
133
- jQuery(document).ready(function() {
134
- if( jQuery.isFunction(jQuery.fn.timepicker) ) {
135
- jQuery("#billing_' . $btn['cow'] . '_field input#billing_' . $btn['cow'] . '").timepicker({
136
- ';
137
- echo $args;
138
- echo '
139
- });
140
- }
141
- });
142
- </script>
143
- ';
144
- }
145
-
146
- if ($btn['type'] == 'password') {
147
- echo '
148
- <script type="text/javascript">
149
- jQuery(document).ready(function() {
150
- jQuery("p#billing_' . $btn['cow'] . '_field").css("display");
151
- });
152
- </script>
153
- ';
154
- }
155
-
156
- /*if ($btn['type'] == 'colorpicker') {
157
- switch ($btn['colorpickertype']) {
158
- case 'farbtastic':
159
- ?>
160
- <script type="text/javascript">
161
- jQuery(document).ready(function ($) {
162
- jQuery('#billing_<?php echo $btn['cow']; ?>_colorpicker').hide();
163
- if (jQuery.isFunction(jQuery.fn.farbtastic)) {
164
- jQuery('#billing_<?php echo $btn['cow']; ?>_colorpicker').farbtastic("#billing_<?php echo $btn['cow']; ?>_colorpicker");
165
- jQuery("#billing_<?php echo $btn['cow']; ?>_colorpicker").click(function () {
166
- jQuery('#billing_<?php echo $btn['cow']; ?>_colorpicker').slideToggle()
167
- });
168
- }
169
- });
170
- </script>
171
- <?php
172
- break;
173
-
174
- case 'iris':
175
- ?>
176
- <script type="text/javascript">
177
- jQuery(document).ready(function ($) {
178
-
179
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('color', '#fff');
180
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('background', '<?php echo $btn['colorpickerd']; ?>');
181
-
182
- var options = {
183
- wccmclass: "billing_<?php echo $btn['cow']; ?>_colorpicker",
184
- palettes: true,
185
- color: "",
186
- hide: false,
187
- change: function (event, ui) {
188
- $('#billing_<?php echo $btn['cow']; ?>_colorpicker').css('color', '#000');
189
- $('#billing_<?php echo $btn['cow']; ?>_colorpicker').css('background', ui.color.toString());
190
- }
191
- };
192
-
193
- jQuery('#billing_<?php echo $btn['cow']; ?>_colorpicker').iris(options);
194
- jQuery('.billing_<?php echo $btn['cow']; ?>_colorpicker').hide();
195
- jQuery("#billing_<?php echo $btn['cow']; ?>_colorpicker").click(function () {
196
- jQuery('.billing_<?php echo $btn['cow']; ?>_colorpicker').slideToggle()
197
- });
198
-
199
- });
200
- </script>
201
- <?php
202
- break;
203
- }
204
- }*/
205
-
206
- // ============================== radio button & checkbox ===========================================
207
-
208
- /* if (( $btn['type'] == 'wooccmradio' || $btn['type'] == 'checkbox_wccm' ) && !empty($btn['tax_remove'])) {
209
- ?>
210
- <script type="text/javascript">
211
- jQuery(document).ready(function ($) {
212
-
213
- <?php if (!empty($saved['wooccm_tax_save_method'])) { ?>
214
- jQuery('#billing_<?php echo $btn['cow']; ?>_field input[name=billing_<?php echo $btn['cow']; ?>]').prop("checked", true);
215
- <?php } ?>
216
-
217
- jQuery('#billing_<?php echo $btn['cow']; ?>_field input').click(function () {
218
-
219
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
220
-
221
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
222
- data = {
223
- action: 'remove_tax_wccm',
224
- tax_remove_aj: jQuery('#billing_<?php echo $btn['cow']; ?>_field input[name=billing_<?php echo $btn['cow']; ?>]:checked').val()
225
- };
226
-
227
- jQuery.post(ajaxurl, data, function (response) {
228
- $('body').trigger('update_checkout');
229
- jQuery('form.checkout').unblock();
230
- });
231
-
232
- });
233
- });
234
- </script>
235
- <?php
236
- } */
237
-
238
- /* if (( $btn['type'] == 'wooccmradio' || $btn['type'] == 'checkbox_wccm' ) && !empty($btn['add_amount']) && !empty($btn['fee_name']) && !empty($btn['add_amount_field'])) {
239
- ?>
240
- <script type="text/javascript">
241
- jQuery(document).ready(function ($) {
242
-
243
- <?php if (!empty($saved['wooccm_addamount453user'])) { ?>
244
- jQuery('#billing_<?php echo $btn['cow']; ?>_field input[name=billing_<?php echo $btn['cow']; ?>]').prop("checked", true);
245
- <?php } ?>
246
- jQuery('#billing_<?php echo $btn['cow']; ?>_field input').click(function () {
247
-
248
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
249
-
250
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
251
- data = {
252
- action: 'remove_tax_wccm',
253
- add_amount_aj: jQuery('#billing_<?php echo $btn['cow']; ?>_field input[name=billing_<?php echo $btn['cow']; ?>]:checked').val()
254
- };
255
-
256
- jQuery.post(ajaxurl, data, function (response) {
257
- $('body').trigger('update_checkout');
258
- jQuery('form.checkout').unblock();
259
- });
260
-
261
- });
262
- });
263
- </script>
264
- <?php
265
- } */
266
-
267
- // =========================================== select options =========================================
268
-
269
- /* if ($btn['type'] == 'wooccmselect' && !empty($btn['tax_remove'])) {
270
- ?>
271
- <script type="text/javascript">
272
- jQuery(document).ready(function ($) {
273
-
274
- <?php if (!empty($saved['wooccm_tax_save_method'])) { ?>
275
- jQuery('#billing_<?php echo $btn['cow']; ?>_field select').val('<?php echo $saved['wooccm_tax_save_method']; ?>');
276
- <?php } ?>
277
- jQuery('#billing_<?php echo $btn['cow']; ?>_field select').change(function () {
278
-
279
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
280
-
281
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
282
- data = {
283
- action: 'remove_tax_wccm',
284
- tax_remove_aj: jQuery('#billing_<?php echo $btn['cow']; ?> option:selected').val()
285
- };
286
-
287
- jQuery.post(ajaxurl, data, function (response) {
288
- $('body').trigger('update_checkout');
289
- jQuery('form.checkout').unblock();
290
- });
291
-
292
- });
293
- });
294
- </script>
295
- <?php
296
- } */
297
-
298
- /* if ($btn['type'] == 'wooccmselect' && !empty($btn['add_amount']) && !empty($btn['fee_name']) && !empty($btn['add_amount_field'])) {
299
- ?>
300
- <script type="text/javascript">
301
- jQuery(document).ready(function ($) {
302
-
303
- <?php if (!empty($saved['wooccm_addamount453user'])) { ?>
304
- jQuery('#billing_<?php echo $btn['cow']; ?>_field select').val('<?php echo $saved['wooccm_addamount453user']; ?>');
305
- <?php } ?>
306
-
307
- jQuery('#billing_<?php echo $btn['cow']; ?>_field select').change(function () {
308
-
309
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
310
-
311
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
312
- data = {
313
- action: 'remove_tax_wccm',
314
- add_amount_aj: jQuery('#billing_<?php echo $btn['cow']; ?> option:selected').val()
315
- };
316
-
317
- jQuery.post(ajaxurl, data, function (response) {
318
- $('body').trigger('update_checkout');
319
- jQuery('form.checkout').unblock();
320
- });
321
-
322
- });
323
- });
324
- </script>
325
- <?php
326
- } */
327
-
328
- // =========================================== add apply button ==========================================
329
-
330
- /* if ($btn['type'] == 'text' && !empty($btn['add_amount']) && !empty($btn['fee_name']) && empty($btn['add_amount_field'])) {
331
- ?>
332
- <script type="text/javascript">
333
- jQuery(document).ready(function () {
334
- jQuery("#billing_<?php echo $btn['cow']; ?>_field").append('<span id="billing_<?php echo $btn['cow']; ?>_applynow"><?php _e('Apply', 'woocommerce-checkout-manager'); ?></span>');
335
- });
336
-
337
- jQuery(document).ready(function ($) {
338
-
339
- <?php if (!empty($saved['wooccm_addamount453userf'])) { ?>
340
- jQuery('input#billing_<?php echo $btn['cow']; ?>').val('<?php echo $saved['wooccm_addamount453userf']; ?>');
341
- <?php } ?>
342
-
343
- jQuery('#billing_<?php echo $btn['cow']; ?>_field #billing_<?php echo $btn['cow']; ?>_applynow').click(function () {
344
-
345
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
346
-
347
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
348
- data = {
349
- action: 'remove_tax_wccm',
350
- add_amount_faj: jQuery('input#billing_<?php echo $btn['cow']; ?>').val()
351
- };
352
-
353
- jQuery.post(ajaxurl, data, function (response) {
354
- $('body').trigger('update_checkout');
355
- jQuery('form.checkout').unblock();
356
- });
357
-
358
- });
359
-
360
- });
361
- </script>
362
- <?php
363
- } */
364
-
365
- // =====================================================
366
- }
367
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/templates/functions/shipping_functions.php DELETED
@@ -1,371 +0,0 @@
1
- <?php
2
- /**
3
- * WooCommerce Checkout Manager
4
- */
5
- // Exit if accessed directly
6
- if (!defined('ABSPATH'))
7
- exit;
8
-
9
- function wooccm_shipping_hide_required() {
10
-
11
- global $woocommerce;
12
-
13
- $options = get_option('wccs_settings2');
14
-
15
- $billing = array(
16
- 'address_1',
17
- 'address_2',
18
- 'city',
19
- 'state',
20
- 'postcode'
21
- );
22
-
23
- if (!empty($options['shipping_buttons'])) {
24
- echo '
25
- <style>
26
- ';
27
- foreach ($options['shipping_buttons'] as $btn) {
28
- if (in_array($btn['cow'], $billing) && empty($btn['checkbox'])) {
29
- echo '
30
- p#shipping_' . $btn['cow'] . '_field .required{
31
- display:none;
32
- }';
33
- }
34
- }
35
- echo '
36
- </style>';
37
- }
38
- }
39
-
40
- function wooccm_shipping_scripts() {
41
-
42
- global $woocommerce;
43
-
44
- $options = get_option('wccs_settings2');
45
-
46
- if (WC()->cart->needs_shipping_address() !== true)
47
- return;
48
-
49
- $saved = WC()->session->get('wooccm_retain', array());
50
-
51
- // Check if we have any buttons
52
- if (empty($options['shipping_buttons']))
53
- return;
54
-
55
- foreach ($options['shipping_buttons'] as $btn) {
56
-
57
- if ($btn['type'] == 'datepicker') {
58
- echo '
59
- <script type="text/javascript">
60
- jQuery(document).ready(function() {
61
- var today = new Date();
62
- if( jQuery.isFunction(jQuery.fn.datepicker) ) {
63
- jQuery("input#shipping_' . $btn['cow'] . '").datepicker({
64
- ';
65
- // Default date format
66
- if (empty($btn['format_date']))
67
- $btn['format_date'] = apply_filters('wooccm_datepicker_default_date_format', 'dd-mm-yy');
68
- if (!empty($btn['format_date'])) {
69
- echo 'dateFormat : "' . str_replace(' ', '', $btn['format_date']) . '",';
70
- }
71
- if (!empty($btn['single_yy'])) {
72
- echo 'minDate: new Date( ' . $btn['single_yy'] . ', ' . $btn['single_mm'] . ' - 1, ' . $btn['single_dd'] . '),';
73
- }
74
- if (!empty($btn['min_before'])) {
75
- echo 'minDate: ' . $btn['min_before'] . ',';
76
- }
77
- if (!empty($btn['single_max_yy'])) {
78
- echo 'maxDate: new Date( ' . $btn['single_max_yy'] . ', ' . $btn['single_max_mm'] . ' - 1, ' . $btn['single_max_dd'] . '),';
79
- }
80
- if (!empty($btn['max_after'])) {
81
- echo 'maxDate: ' . $btn['max_after'] . ',';
82
- }
83
- if (!empty($btn['days_disabler'])) {
84
- echo 'beforeShowDay: function(date) { var day = date.getDay(); return [(';
85
- if (!empty($btn['days_disabler0'])) {
86
- echo 'day == 0';
87
- } else {
88
- echo 'day == "x"';
89
- }
90
- if (!empty($btn['days_disabler1'])) {
91
- echo ' || day == 1';
92
- }
93
- if (!empty($btn['days_disabler2'])) {
94
- echo ' || day == 2';
95
- }
96
- if (!empty($btn['days_disabler3'])) {
97
- echo ' || day == 3';
98
- }
99
- if (!empty($btn['days_disabler4'])) {
100
- echo ' || day == 4';
101
- }
102
- if (!empty($btn['days_disabler5'])) {
103
- echo ' || day == 5';
104
- }
105
- if (!empty($btn['days_disabler6'])) {
106
- echo '|| day == 6';
107
- }
108
- echo ')]; }';
109
- }
110
- do_action('wooccm_js_datepicker_shipping_args', $btn);
111
- echo '
112
- });
113
- }
114
- });
115
- </script>
116
- ';
117
- }
118
-
119
- if ($btn['type'] == 'time') {
120
- $args = '
121
- showPeriod: true,';
122
- if (!empty($btn['start_hour'])) {
123
- $args .= '
124
- hours: { starts: ' . $btn['start_hour'] . ', ends: ' . $btn['end_hour'] . ' },';
125
- }
126
- if (!empty($btn['interval_min'])) {
127
- $args .= '
128
- minutes: {interval: ' . $btn['interval_min'] . ', manual: [' . $btn['manual_min'] . '] },';
129
- }
130
- $args .= '
131
- showLeadingZero: true';
132
- $args = apply_filters('wooccm_timepicker_jquery_args', $args, $btn);
133
- echo '
134
- <!-- Shipping section: TimePicker -->
135
- <script type="text/javascript">
136
- jQuery(document).ready(function() {
137
- if( jQuery.isFunction(jQuery.fn.timepicker) ) {
138
- jQuery("#shipping_' . $btn['cow'] . '_field input#shipping_' . $btn['cow'] . '").timepicker({
139
- ';
140
- echo $args;
141
- echo '
142
- });
143
- }
144
- });
145
- </script>
146
- ';
147
- }
148
-
149
- if ($btn['type'] == 'password') {
150
- echo '
151
- <script type="text/javascript">
152
- jQuery(document).ready(function() {
153
- jQuery("p#shipping_' . $btn['cow'] . '_field").css("display");
154
- });
155
- </script>
156
- ';
157
- }
158
-
159
- /*if ($btn['type'] == 'colorpicker') {
160
- switch ($btn['colorpickertype']) {
161
-
162
- case 'farbtastic':
163
- ?>
164
- <script type="text/javascript">
165
- jQuery(document).ready(function ($) {
166
- jQuery('#shipping_<?php echo $btn['cow']; ?>_colorpickerdiv').hide();
167
- if (jQuery.isFunction(jQuery.fn.farbtastic)) {
168
- jQuery('#shipping_<?php echo $btn['cow']; ?>_colorpickerdiv').farbtastic("#shipping_<?php echo $btn['cow']; ?>_colorpicker");
169
- jQuery("#shipping_<?php echo $btn['cow']; ?>_colorpicker").click(function () {
170
- jQuery('#shipping_<?php echo $btn['cow']; ?>_colorpickerdiv').slideToggle()
171
- });
172
- }
173
- });
174
- </script>
175
- <?php
176
- break;
177
-
178
- case 'iris':
179
- ?>
180
- <script type="text/javascript">
181
- jQuery(document).ready(function ($) {
182
-
183
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('color', '#fff');
184
- $('#<?php echo $btn['cow']; ?>_colorpicker').css('background', '<?php echo $btn['colorpickerd']; ?>');
185
-
186
- var options = {
187
- wccmclass: "shipping_<?php echo $btn['cow']; ?>_colorpickerdiv",
188
- palettes: true,
189
- color: "",
190
- hide: false,
191
- change: function (event, ui) {
192
- $('#shipping_<?php echo $btn['cow']; ?>_colorpicker').css('color', '#000');
193
- $('#shipping_<?php echo $btn['cow']; ?>_colorpicker').css('background', ui.color.toString());
194
- }
195
- };
196
-
197
- jQuery('#shipping_<?php echo $btn['cow']; ?>_colorpicker').iris(options);
198
- jQuery('.shipping_<?php echo $btn['cow']; ?>_colorpickerdiv').hide();
199
- jQuery("#shipping_<?php echo $btn['cow']; ?>_colorpicker").click(function () {
200
- jQuery('.shipping_<?php echo $btn['cow']; ?>_colorpickerdiv').slideToggle()
201
- });
202
-
203
- });
204
- </script>
205
- <?php
206
- break;
207
- }
208
- }*/
209
-
210
- // ============================== radio button & checkbox ===========================================
211
-
212
- /* if (( $btn['type'] == 'wooccmradio' || $btn['type'] == 'checkbox_wccm' ) && !empty($btn['tax_remove'])) {
213
- ?>
214
- <script type="text/javascript">
215
- jQuery(document).ready(function ($) {
216
-
217
- <?php if (!empty($saved['wooccm_tax_save_method'])) { ?>
218
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field input[name=shipping_<?php echo $btn['cow']; ?>]').prop("checked", true);
219
- <?php } ?>
220
-
221
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field input').click(function () {
222
-
223
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
224
-
225
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
226
- data = {
227
- action: 'remove_tax_wccm',
228
- tax_remove_aj: jQuery('#shipping_<?php echo $btn['cow']; ?>_field input[name=shipping_<?php echo $btn['cow']; ?>]:checked').val()
229
- };
230
-
231
- jQuery.post(ajaxurl, data, function (response) {
232
- $('body').trigger('update_checkout');
233
- jQuery('form.checkout').unblock();
234
- });
235
-
236
- });
237
- });
238
- </script>
239
- <?php
240
- } */
241
-
242
- /* if (( $btn['type'] == 'wooccmradio' || $btn['type'] == 'checkbox_wccm' ) && !empty($btn['add_amount']) && !empty($btn['fee_name']) && !empty($btn['add_amount_field'])) {
243
- ?>
244
- <script type="text/javascript">
245
- jQuery(document).ready(function ($) {
246
-
247
- <?php if (!empty($saved['wooccm_addamount453user'])) { ?>
248
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field input[name=shipping_<?php echo $btn['cow']; ?>]').prop("checked", true);
249
- <?php } ?>
250
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field input').click(function () {
251
-
252
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
253
-
254
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
255
- data = {
256
- action: 'remove_tax_wccm',
257
- add_amount_aj: jQuery('#shipping_<?php echo $btn['cow']; ?>_field input[name=shipping_<?php echo $btn['cow']; ?>]:checked').val()
258
- };
259
-
260
- jQuery.post(ajaxurl, data, function (response) {
261
- $('body').trigger('update_checkout');
262
- jQuery('form.checkout').unblock();
263
- });
264
-
265
- });
266
- });
267
- </script>
268
- <?php
269
- } */
270
-
271
- // =========================================== select options =========================================
272
-
273
- /* if ($btn['type'] == 'wooccmselect' && !empty($btn['tax_remove'])) {
274
- ?>
275
- <script type="text/javascript">
276
- jQuery(document).ready(function ($) {
277
-
278
- <?php if (!empty($saved['wooccm_tax_save_method'])) { ?>
279
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field select').val('<?php echo $saved['wooccm_tax_save_method']; ?>');
280
- <?php } ?>
281
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field select').change(function () {
282
-
283
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
284
-
285
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
286
- data = {
287
- action: 'remove_tax_wccm',
288
- tax_remove_aj: jQuery('#shipping_<?php echo $btn['cow']; ?> option:selected').val()
289
- };
290
-
291
- jQuery.post(ajaxurl, data, function (response) {
292
- $('body').trigger('update_checkout');
293
- jQuery('form.checkout').unblock();
294
- });
295
-
296
- });
297
- });
298
- </script>
299
- <?php
300
- } */
301
-
302
- /* if ($btn['type'] == 'wooccmselect' && !empty($btn['add_amount']) && !empty($btn['fee_name']) && !empty($btn['add_amount_field'])) {
303
- ?>
304
- <script type="text/javascript">
305
- jQuery(document).ready(function ($) {
306
-
307
- <?php if (!empty($saved['wooccm_addamount453user'])) { ?>
308
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field select').val('<?php echo $saved['wooccm_addamount453user']; ?>');
309
- <?php } ?>
310
-
311
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field select').change(function () {
312
-
313
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
314
-
315
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
316
- data = {
317
- action: 'remove_tax_wccm',
318
- add_amount_aj: jQuery('#shipping_<?php echo $btn['cow']; ?> option:selected').val()
319
- };
320
-
321
- jQuery.post(ajaxurl, data, function (response) {
322
- $('body').trigger('update_checkout');
323
- jQuery('form.checkout').unblock();
324
- });
325
-
326
- });
327
- });
328
- </script>
329
- <?php
330
- } */
331
-
332
- // =========================================== add apply button ==========================================
333
-
334
- /* if ($btn['type'] == 'text' && !empty($btn['add_amount']) && !empty($btn['fee_name']) && empty($btn['add_amount_field'])) {
335
- ?>
336
- <script type="text/javascript">
337
- jQuery(document).ready(function () {
338
- jQuery("#shipping_<?php echo $btn['cow']; ?>_field").append('<span id="shipping_<?php echo $btn['cow']; ?>_applynow"><?php _e('Apply', 'woocommerce-checkout-manager'); ?></span>');
339
- });
340
-
341
- jQuery(document).ready(function ($) {
342
-
343
- <?php if (!empty($saved['wooccm_addamount453userf'])) { ?>
344
- jQuery('input#shipping_<?php echo $btn['cow']; ?>').val('<?php echo $saved['wooccm_addamount453userf']; ?>');
345
- <?php } ?>
346
-
347
- jQuery('#shipping_<?php echo $btn['cow']; ?>_field #shipping_<?php echo $btn['cow']; ?>_applynow').click(function () {
348
-
349
- $('form.checkout').block({message: null, overlayCSS: {background: '#fff url(' + woocommerce_get_script_data.ajax_loader_url + ') no-repeat center', backgroundSize: '16px 16px', opacity: 0.6}});
350
-
351
- var ajaxurl = '<?php echo admin_url('/admin-ajax.php'); ?>';
352
- data = {
353
- action: 'remove_tax_wccm',
354
- add_amount_faj: jQuery('input#shipping_<?php echo $btn['cow']; ?>').val()
355
- };
356
-
357
- jQuery.post(ajaxurl, data, function (response) {
358
- $('body').trigger('update_checkout');
359
- jQuery('form.checkout').unblock();
360
- });
361
-
362
- });
363
-
364
- });
365
- </script>
366
- <?php
367
- } */
368
-
369
- // =====================================================
370
- }
371
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
new/fields_conditional.php CHANGED
@@ -6,143 +6,18 @@ if (!class_exists('WOOCCM_Fields_Conditional')) {
6
  protected static $instance;
7
  protected static $i = 0;
8
 
9
- function add_field_class($field, $key) {
10
  if (!empty($field['conditional_parent_use']) && !empty($field['conditional_tie']) && !empty($field['chosen_valt']) && ($field['conditional_tie'] != $field['cow'])) {
11
  $field['class'][] = 'wooccm-conditional-child';
12
  $field['custom_attributes']['data-conditional-parent'] = $field['conditional_tie'];
13
  $field['custom_attributes']['data-conditional-parent-value'] = $field['chosen_valt'];
14
  }
15
  return $field;
16
- }
17
-
18
- /*
19
- *
20
- * function add_conditional_interaction($fields, $name, $key, $prefix = '') {
21
-
22
- if ($options = get_option($name)) {
23
-
24
- if (array_key_exists($key, $options)) {
25
-
26
- if ($fields = $options[$key]) {
27
-
28
- foreach ($fields as $id => $field) {
29
-
30
- if (!empty($field['cow']) && empty($field['disabled'])) {
31
-
32
- if (!empty($field['conditional_tie']) && empty($field['conditional_parent']) && !empty($field['conditional_parent_use'])) :
33
- ?>
34
- <style type="text/css">
35
- #billing_<?php echo esc_attr($field['cow']); ?>_field.<?php echo esc_attr($field['conditional_tie']); ?> {
36
- display: none;
37
- }
38
- </style>
39
- <?php endif; ?>
40
-
41
- <script>
42
- (function ($) {
43
- <?php
44
- if ($field['type'] == 'checkbox_wccm') :
45
- if (!empty($field['conditional_parent']) && !empty($field['conditional_parent_use']) && !empty($field['chosen_valt'])) :
46
- ?>
47
- $("#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie']; ?> input[name=billing_<?php echo $field['cow']; ?>]").on('click', function (e) {
48
- <?php
49
- foreach ($options['billing_buttons'] as $field3) :
50
- if (empty($field3['conditional_parent']) && !empty($field3['conditional_parent_use']) && !empty($field3['conditional_tie'])) :
51
- ?>
52
- if ($('#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie']; ?> input[name=billing_<?php echo $field['cow']; ?>]:checked').val() === '<?php echo $field3['chosen_valt']; ?>') {
53
- $("#billing_<?php echo $field3['cow'] . '_field.' . $field['conditional_tie']; ?>").fadeIn();
54
- }
55
- if ($('#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie']; ?> input[name=billing_<?php echo $field['cow']; ?>]:checked').val() !== '<?php echo $field3['chosen_valt']; ?>') {
56
- $("#billing_<?php echo $field3['cow'] . '_field.' . $field['conditional_tie']; ?>").fadeOut();
57
- }
58
- <?php
59
- endif;
60
- endforeach;
61
- ?>
62
- });
63
- <?php
64
- endif;
65
- endif;
66
- ?>
67
- <?php
68
- if ($field['type'] == 'wooccmselect') :
69
- if (!empty($field['conditional_parent']) && !empty($field['conditional_parent_use']) && !empty($field['chosen_valt'])) :
70
- ?>
71
- $("#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie']; ?> select").on('change', function () {
72
- <?php
73
- foreach ($options['billing_buttons'] as $field3) :
74
- if (empty($field3['conditional_parent']) && !empty($field3['conditional_parent_use']) && !empty($field3['conditional_tie'])) :
75
- ?>
76
- if ($('#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie'] . ' #billing_' . $field['cow']; ?> option:selected').val() === '<?php echo $field3['chosen_valt']; ?>') {
77
- $("#billing_<?php echo $field3['cow'] . '_field.' . $field['conditional_tie']; ?>").fadeIn();
78
- }
79
- if ($('#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie'] . ' #billing_' . $field['cow']; ?> option:selected').val() !== '<?php echo $field3['chosen_valt']; ?>') {
80
- $("#billing_<?php echo $field3['cow'] . '_field.' . $field['conditional_tie']; ?>").fadeOut();
81
- }
82
- <?php
83
- endif;
84
- endforeach;
85
- ?>
86
- });
87
- <?php
88
- endif;
89
- endif;
90
- ?>
91
-
92
- <?php
93
- if ($field['type'] == 'wooccmradio') :
94
- if (!empty($field['conditional_parent']) && !empty($field['conditional_parent_use']) && !empty($field['chosen_valt'])) :
95
- ?>
96
- $("#billing_<?php echo '' . $field['cow'] . '_field.' . $field['conditional_tie']; ?> input").on('click', function (e) {
97
- <?php
98
- foreach ($options['billing_buttons'] as $field3) :
99
- if (empty($field3['conditional_parent']) && !empty($field3['conditional_parent_use']) && !empty($field3['conditional_tie'])) :
100
- ?>
101
- if ($('#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie']; ?> input[name=billing_<?php echo $field['cow']; ?>]:checked').val() === '<?php echo $field3['chosen_valt']; ?>') {
102
- $("#billing_<?php echo $field3['cow'] . '_field.' . $field['conditional_tie']; ?>").fadeIn();
103
- }
104
-
105
- if ($('#billing_<?php echo $field['cow'] . '_field.' . $field['conditional_tie']; ?> input[name=billing_<?php echo $field['cow']; ?>]:checked').val() !== '<?php echo $field3['chosen_valt']; ?>') {
106
- $("#billing_<?php echo $field3['cow'] . '_field.' . $field['conditional_tie']; ?>").fadeOut();
107
- }
108
- <?php
109
- endif;
110
- endforeach;
111
- ?>
112
- });
113
- <?php
114
- endif;
115
- endif;
116
- ?>
117
- })(jQuery);
118
- </script>
119
- <?php
120
- }
121
- }
122
- }
123
- }
124
- }
125
- }
126
-
127
- function add_checkout_additional_conditional($fields) {
128
- $this->add_conditional_interaction($fields, 'wccs_settings', 'buttons');
129
- }
130
-
131
- function add_checkout_shipping_conditional($fields) {
132
- $this->add_conditional_interaction($fields, 'wccs_settings2', 'shipping_buttons', 'shipping_');
133
- }
134
-
135
- function add_checkout_billing_conditional($fields) {
136
- $this->add_conditional_interaction($fields, 'wccs_settings3', 'billing_buttons', 'billing_');
137
- }*/
138
 
139
  function init() {
140
- // Add field class
141
- add_filter('wooccm_checkout_field_filter', array($this, 'add_field_class'), 10, 2);
142
-
143
- //add_action('woocommerce_after_checkout_form', array($this, 'add_checkout_additional_conditional'));
144
- //add_action('woocommerce_after_checkout_form', array($this, 'add_checkout_shipping_conditional'));
145
- //add_action('woocommerce_after_checkout_form', array($this, 'add_checkout_billing_conditional'));
146
  }
147
 
148
  public static function instance() {
6
  protected static $instance;
7
  protected static $i = 0;
8
 
9
+ function add_field_attributes($field, $key) {
10
  if (!empty($field['conditional_parent_use']) && !empty($field['conditional_tie']) && !empty($field['chosen_valt']) && ($field['conditional_tie'] != $field['cow'])) {
11
  $field['class'][] = 'wooccm-conditional-child';
12
  $field['custom_attributes']['data-conditional-parent'] = $field['conditional_tie'];
13
  $field['custom_attributes']['data-conditional-parent-value'] = $field['chosen_valt'];
14
  }
15
  return $field;
16
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  function init() {
19
+ // Add field attributes
20
+ add_filter('wooccm_checkout_field_filter', array($this, 'add_field_attributes'), 10, 2);
 
 
 
 
21
  }
22
 
23
  public static function instance() {
new/fields_display.php CHANGED
@@ -14,11 +14,13 @@ if (!class_exists('WOOCCM_Fields_Display')) {
14
 
15
  $user_role = array_shift($user_roles);
16
 
17
- if (!empty($field['user_role']) && (!empty($field['role_options']) || !empty($field['role_options2']))) {
18
 
19
  $rolekeys = explode('||', $field['role_options']);
20
 
21
  $rolekeys2 = explode('||', $field['role_options2']);
 
 
22
 
23
  if (!empty($field['role_options']) && !in_array($user_role, $rolekeys)) {
24
  $field['disabled'] = true;
@@ -28,7 +30,7 @@ if (!class_exists('WOOCCM_Fields_Display')) {
28
  $field['disabled'] = true;
29
  }
30
  }
31
-
32
  return $field;
33
  }
34
 
14
 
15
  $user_role = array_shift($user_roles);
16
 
17
+ if (/* !empty($field['user_role']) && */(!empty($field['role_options']) || !empty($field['role_options2']))) {
18
 
19
  $rolekeys = explode('||', $field['role_options']);
20
 
21
  $rolekeys2 = explode('||', $field['role_options2']);
22
+
23
+ //error_log(json_encode($rolekeys));
24
 
25
  if (!empty($field['role_options']) && !in_array($user_role, $rolekeys)) {
26
  $field['disabled'] = true;
30
  $field['disabled'] = true;
31
  }
32
  }
33
+
34
  return $field;
35
  }
36
 
new/fields_filters.php CHANGED
@@ -11,23 +11,6 @@ if (!defined('ABSPATH'))
11
 
12
  function wooccm_checkout_field_upload_handler($field = '', $key, $args, $value) {
13
 
14
- global $current_user;
15
-
16
- $user_roles = $current_user->roles;
17
-
18
- $user_role = array_shift($user_roles);
19
-
20
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
21
- $rolekeys = explode('||', $args['role_options']);
22
- $rolekeys2 = explode('||', $args['role_options2']);
23
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
24
- return;
25
- }
26
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
27
- return;
28
- }
29
- }
30
-
31
  $upload_name = (!empty($args['placeholder']) ? esc_attr($args['placeholder']) : __('Upload Files', 'woocommerce-checkout-manager') );
32
 
33
  if ($args['wooccm_required']) {
@@ -88,253 +71,9 @@ function wooccm_checkout_field_upload_handler($field = '', $key, $args, $value)
88
 
89
  add_filter('woocommerce_form_field_wooccmupload', 'wooccm_checkout_field_upload_handler', 10, 4);
90
 
91
- // Text Input
92
- function wooccm_checkout_field_text_handler($field = '', $key, $args, $value) {
93
-
94
- global $current_user;
95
-
96
- $user_roles = $current_user->roles;
97
- $user_role = array_shift($user_roles);
98
-
99
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
100
- $rolekeys = explode('||', $args['role_options']);
101
- $rolekeys2 = explode('||', $args['role_options2']);
102
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
103
- return;
104
- }
105
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
106
- return;
107
- }
108
- }
109
-
110
- if (!empty($args['clear']))
111
- $after = '<div class="clear"></div>';
112
- else
113
- $after = '';
114
-
115
- $required = false;
116
- if ($args['wooccm_required']) {
117
- $args['class'][] = 'validate-required';
118
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
119
- }
120
-
121
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
122
-
123
- if (is_string($args['label_class'])) {
124
- $args['label_class'] = array($args['label_class']);
125
- }
126
-
127
- if (is_null($value)) {
128
- $value = $args['default'];
129
- }
130
-
131
- // Custom attribute handling
132
- $custom_attributes = array();
133
-
134
- if (!empty($args['custom_attributes']) && is_array($args['custom_attributes'])) {
135
- foreach ($args['custom_attributes'] as $attribute => $attribute_value) {
136
- $custom_attributes[] = esc_attr($attribute) . '="' . esc_attr($attribute_value) . '"';
137
- }
138
- }
139
-
140
- if (!empty($args['validate'])) {
141
- foreach ($args['validate'] as $validate) {
142
- $args['class'][] = 'validate-' . $validate;
143
- }
144
- }
145
-
146
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">';
147
-
148
- if ($args['label'] || $required) {
149
- $field .= '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>';
150
- }
151
-
152
- $field .= '<input type="text" class="input-text ' . esc_attr(implode(' ', $args['input_class'])) . '" name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" placeholder="' . esc_attr($args['placeholder']) . '" ' . $args['maxlength'] . ' value="' . esc_attr($value) . '" ' . implode(' ', $custom_attributes) . ' />';
153
-
154
- if ($args['description']) {
155
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
156
- }
157
-
158
- $field .= '</p>' . $after;
159
-
160
- return $field;
161
- }
162
-
163
- add_filter('woocommerce_form_field_wooccmtext', 'wooccm_checkout_field_text_handler', 10, 4);
164
-
165
- /* Textarea
166
- function wooccm_checkout_field_textarea_handler($field = '', $key, $args, $value) {
167
-
168
- global $current_user;
169
-
170
- $user_roles = $current_user->roles;
171
- $user_role = array_shift($user_roles);
172
-
173
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
174
- $rolekeys = explode('||', $args['role_options']);
175
- $rolekeys2 = explode('||', $args['role_options2']);
176
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
177
- return;
178
- }
179
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
180
- return;
181
- }
182
- }
183
-
184
- if (!empty($args['clear']))
185
- $after = '<div class="clear"></div>';
186
- else
187
- $after = '';
188
-
189
- if ($args['wooccm_required']) {
190
- $args['class'][] = 'validate-required';
191
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
192
- } else {
193
- $required = '';
194
- }
195
-
196
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
197
-
198
- if (is_string($args['label_class'])) {
199
- $args['label_class'] = array($args['label_class']);
200
- }
201
-
202
- if (is_null($value)) {
203
- $value = $args['default'];
204
- }
205
-
206
- // Custom attribute handling
207
- $custom_attributes = array();
208
-
209
- if (!empty($args['custom_attributes']) && is_array($args['custom_attributes'])) {
210
- foreach ($args['custom_attributes'] as $attribute => $attribute_value) {
211
- $custom_attributes[] = esc_attr($attribute) . '="' . esc_attr($attribute_value) . '"';
212
- }
213
- }
214
-
215
- if (!empty($args['validate'])) {
216
- foreach ($args['validate'] as $validate) {
217
- $args['class'][] = 'validate-' . $validate;
218
- }
219
- }
220
-
221
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">';
222
-
223
- if ($args['label']) {
224
- $field .= '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>';
225
- }
226
-
227
- // WordPress Filters to override default row and column counts
228
- $rows = apply_filters('wooccm_checkout_field_texarea_rows', 2, $key, $args);
229
- $columns = apply_filters('wooccm_checkout_field_texarea_columns', 5, $key, $args);
230
-
231
- $field .= '<textarea name="' . esc_attr($key) . '" class="input-text ' . esc_attr(implode(' ', $args['input_class'])) . '" id="' . esc_attr($args['id']) . '" placeholder="' . esc_attr($args['placeholder']) . '" ' . $args['maxlength'] . ' ' . ( empty($args['custom_attributes']['rows']) ? ' rows="' . $rows . '"' : '' ) . ( empty($args['custom_attributes']['cols']) ? ' cols="' . $columns . '"' : '' ) . implode(' ', $custom_attributes) . '>' . esc_textarea($value) . '</textarea>';
232
-
233
- if ($args['description']) {
234
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
235
- }
236
-
237
- $field .= '</p>' . $after;
238
-
239
- return $field;
240
- }
241
-
242
- add_filter('woocommerce_form_field_wooccmtextarea', 'wooccm_checkout_field_textarea_handler', 10, 4); */
243
-
244
- // Password
245
- function wooccm_checkout_field_password_handler($field = '', $key, $args, $value) {
246
-
247
- global $current_user;
248
-
249
- $user_roles = $current_user->roles;
250
- $user_role = array_shift($user_roles);
251
-
252
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
253
- $rolekeys = explode('||', $args['role_options']);
254
- $rolekeys2 = explode('||', $args['role_options2']);
255
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
256
- return;
257
- }
258
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
259
- return;
260
- }
261
- }
262
-
263
- if (!empty($args['clear']))
264
- $after = '<div class="clear"></div>';
265
- else
266
- $after = '';
267
-
268
- if ($args['wooccm_required']) {
269
- $args['class'][] = 'validate-required';
270
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
271
- } else {
272
- $required = '';
273
- }
274
-
275
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
276
-
277
- if (is_string($args['label_class'])) {
278
- $args['label_class'] = array($args['label_class']);
279
- }
280
-
281
- if (is_null($value)) {
282
- $value = $args['default'];
283
- }
284
-
285
- // Custom attribute handling
286
- $custom_attributes = array();
287
-
288
- if (!empty($args['custom_attributes']) && is_array($args['custom_attributes'])) {
289
- foreach ($args['custom_attributes'] as $attribute => $attribute_value) {
290
- $custom_attributes[] = esc_attr($attribute) . '="' . esc_attr($attribute_value) . '"';
291
- }
292
- }
293
-
294
- if (!empty($args['validate'])) {
295
- foreach ($args['validate'] as $validate) {
296
- $args['class'][] = 'validate-' . $validate;
297
- }
298
- }
299
-
300
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">';
301
-
302
- if ($args['label']) {
303
- $field .= '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>';
304
- }
305
-
306
- $field .= '<input type="password" class="input-text ' . esc_attr(implode(' ', $args['input_class'])) . '" name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" placeholder="' . esc_attr($args['placeholder']) . '" value="' . esc_attr($value) . '" ' . implode(' ', $custom_attributes) . ' />';
307
-
308
- if ($args['description']) {
309
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
310
- }
311
-
312
- $field .= '</p>' . $after;
313
-
314
- return $field;
315
- }
316
-
317
- add_filter('woocommerce_form_field_wooccmpassword', 'wooccm_checkout_field_password_handler', 10, 4);
318
-
319
  // Radio Buttons
320
  function wooccm_checkout_field_radio_handler($field = '', $key, $args, $value) {
321
 
322
- global $current_user;
323
-
324
- $user_roles = $current_user->roles;
325
- $user_role = array_shift($user_roles);
326
-
327
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
328
- $rolekeys = explode('||', $args['role_options']);
329
- $rolekeys2 = explode('||', $args['role_options2']);
330
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
331
- return;
332
- }
333
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
334
- return;
335
- }
336
- }
337
-
338
  if (!empty($args['clear']))
339
  $after = '<div class="clear"></div>';
340
  else
@@ -366,396 +105,6 @@ function wooccm_checkout_field_radio_handler($field = '', $key, $args, $value) {
366
 
367
  add_filter('woocommerce_form_field_wooccmradio', 'wooccm_checkout_field_radio_handler', 10, 4);
368
 
369
- /* Select Options
370
- function wooccm_checkout_field_select_handler($field = '', $key, $args, $value) {
371
-
372
- global $current_user;
373
-
374
- $user_roles = $current_user->roles;
375
- $user_role = array_shift($user_roles);
376
-
377
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
378
- $rolekeys = explode('||', $args['role_options']);
379
- $rolekeys2 = explode('||', $args['role_options2']);
380
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
381
- return;
382
- }
383
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
384
- return;
385
- }
386
- }
387
-
388
- if (!empty($args['clear']))
389
- $after = '<div class="clear"></div>';
390
- else
391
- $after = '';
392
-
393
- if ($args['wooccm_required']) {
394
- $args['class'][] = 'validate-required';
395
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
396
- } else {
397
- $required = '';
398
- }
399
-
400
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
401
-
402
- $options = '';
403
-
404
- if (!empty($args['options'])) {
405
- //$options .= ( $args['default'] ? '<option value="">' . $args['default'] . '</option>' : '' );
406
-
407
- var_dump($value);
408
-
409
- foreach (explode('||', $args['options']) as $option_key => $option_text) {
410
- $options .= '<option value="' . $option_text . '" ' . selected($value, $option_text, false) . '>' . wooccm_wpml_string(esc_attr($option_text)) . '</option>';
411
- }
412
- }
413
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($key) . '_field">';
414
-
415
- if ($args['label'])
416
- $field .= '<label for="' . esc_attr($key) . '" class="' . implode(' ', $args['label_class']) . '">' . $args['label'] . $required . '</label>';
417
-
418
- $field .= '
419
- <select class="' . esc_attr($args['fancy']) . '" data-placeholder="' . (!empty($args['default']) ? __($args['default'], 'woocommerce-checkout-manager') : '' ) . '" name="' . esc_attr($key) . '" id="' . esc_attr($key) . '" >
420
- ' . $options . '
421
- </select>
422
- </p>' . $after;
423
-
424
- return $field;
425
- }
426
-
427
- add_filter('woocommerce_form_field_wooccmselect', 'wooccm_checkout_field_select_handler', 10, 4); */
428
-
429
- /* Check Box
430
- function wooccm_checkout_field_checkbox_handler($field = '', $key, $args, $value) {
431
-
432
- global $current_user;
433
-
434
- $user_roles = $current_user->roles;
435
- $user_role = array_shift($user_roles);
436
-
437
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
438
- $rolekeys = explode('||', $args['role_options']);
439
- $rolekeys2 = explode('||', $args['role_options2']);
440
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
441
- return;
442
- }
443
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
444
- return;
445
- }
446
- }
447
-
448
- $args['options'] = explode('||', $args['options']);
449
-
450
- if (!empty($args['clear']))
451
- $after = '<div class="clear"></div>';
452
- else
453
- $after = '';
454
-
455
- if ($args['wooccm_required']) {
456
- $args['class'][] = 'validate-required';
457
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
458
- } else {
459
- $required = '';
460
- }
461
-
462
- $field = '
463
- <p class="form-row ' . implode(' ', $args['class']) . '" id="' . $key . '_field">
464
- <label for="' . $key . '_checkbox" class="woocommerce-form__label woocommerce-form__label-for-checkbox ' . implode(' ', $args['label_class']) . '">
465
- <input type="checkbox" id="' . $key . '_checkbox" name="' . $key . '" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" value="1" />
466
- <span>' . $args['label'] . '</span>' . $required . '
467
- </label>
468
- </p>' . $after;
469
-
470
- return $field;
471
- }
472
-
473
- add_filter('woocommerce_form_field_checkbox_wccm', 'wooccm_checkout_field_checkbox_handler', 10, 4);*/
474
-
475
- /* State
476
- function wooccm_checkout_field_state_handler($field = '', $key, $args, $value) {
477
-
478
- global $current_user;
479
-
480
- $user_roles = $current_user->roles;
481
- $user_role = array_shift($user_roles);
482
-
483
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
484
- $rolekeys = explode('||', $args['role_options']);
485
- $rolekeys2 = explode('||', $args['role_options2']);
486
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
487
- return;
488
- }
489
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
490
- return;
491
- }
492
- }
493
-
494
- if (!empty($args['clear']))
495
- $after = '<div class="clear"></div>';
496
- else
497
- $after = '';
498
-
499
- $args['class'][] = 'address-field';
500
-
501
- $country_key = $key == 'billing_state' ? 'billing_country' : 'shipping_country';
502
- $current_cc = WC()->checkout->get_value($country_key);
503
- $states = WC()->countries->get_states($current_cc);
504
-
505
- if ($args['wooccm_required']) {
506
- if (!empty($states)) {
507
- if (!in_array('validate-required', $args['class']))
508
- $args['class'][] = 'validate-required';
509
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
510
- } else {
511
- $args['class'][] = 'woocommerce-validated';
512
- }
513
- } else {
514
- $required = '';
515
- $args['class'][] = 'woocommerce-validated';
516
- }
517
-
518
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
519
-
520
- if (is_string($args['label_class'])) {
521
- $args['label_class'] = array($args['label_class']);
522
- }
523
-
524
- if (is_null($value)) {
525
- $value = $args['default'];
526
- }
527
-
528
- // Custom attribute handling
529
- $custom_attributes = array();
530
-
531
- if (!empty($args['custom_attributes']) && is_array($args['custom_attributes'])) {
532
- foreach ($args['custom_attributes'] as $attribute => $attribute_value) {
533
- $custom_attributes[] = esc_attr($attribute) . '="' . esc_attr($attribute_value) . '"';
534
- }
535
- }
536
-
537
- if (!empty($states) && !empty($args['validate'])) {
538
- foreach ($args['validate'] as $validate) {
539
- $args['class'][] = 'validate-' . $validate;
540
- }
541
- }
542
-
543
- if (is_array($states) && empty($states)) {
544
-
545
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field" style="display: none">';
546
-
547
- if ($args['label']) {
548
- $field .= '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>';
549
- }
550
- $field .= '<input type="hidden" class="hidden" name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" value="" ' . implode(' ', $custom_attributes) . ' placeholder="' . esc_attr($args['placeholder']) . '" />';
551
-
552
- if ($args['description']) {
553
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
554
- }
555
-
556
- $field .= '</p>' . $after;
557
- } elseif (is_array($states)) {
558
-
559
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">';
560
-
561
- if ($args['label'])
562
- $field .= '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>';
563
- $field .= '<select name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" class="state_select ' . esc_attr(implode(' ', $args['input_class'])) . '" ' . implode(' ', $custom_attributes) . ' placeholder="' . esc_attr($args['placeholder']) . '">
564
- <option value="">' . __('Select a state&hellip;', 'woocommerce-checkout-manager') . '</option>';
565
-
566
- foreach ($states as $ckey => $cvalue) {
567
- $field .= '<option value="' . esc_attr($ckey) . '" ' . selected($value, $ckey, false) . '>' . (!empty($cvalue) ? __($cvalue, 'woocommerce-checkout-manager') : '' ) . '</option>';
568
- }
569
-
570
- $field .= '</select>';
571
-
572
- if ($args['description']) {
573
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
574
- }
575
-
576
- $field .= '</p>' . $after;
577
- } else {
578
-
579
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">';
580
-
581
- if ($args['label']) {
582
- $field .= '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>';
583
- }
584
- $field .= '<input type="text" class="input-text ' . esc_attr(implode(' ', $args['input_class'])) . '" value="' . esc_attr($value) . '" placeholder="' . esc_attr($args['placeholder']) . '" name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" ' . implode(' ', $custom_attributes) . ' />';
585
-
586
- if ($args['description']) {
587
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
588
- }
589
-
590
- $field .= '</p>' . $after;
591
- }
592
-
593
- return $field;
594
- }
595
-
596
- add_filter('woocommerce_form_field_wooccmstate', 'wooccm_checkout_field_state_handler', 10, 4);
597
- */
598
- /* Country
599
- function wooccm_checkout_field_country_handler($field = '', $key, $args, $value) {
600
-
601
- global $current_user;
602
-
603
- $user_roles = $current_user->roles;
604
- $user_role = array_shift($user_roles);
605
-
606
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
607
- $rolekeys = explode('||', $args['role_options']);
608
- $rolekeys2 = explode('||', $args['role_options2']);
609
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
610
- return;
611
- }
612
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
613
- return;
614
- }
615
- }
616
-
617
- if (!empty($args['clear']))
618
- $after = '<div class="clear"></div>';
619
- else
620
- $after = '';
621
-
622
- $args['class'][] = 'address-field';
623
-
624
- if ($args['wooccm_required']) {
625
- $args['class'][] = 'validate-required';
626
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
627
- } else {
628
- $required = '';
629
- }
630
-
631
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
632
-
633
- if (is_string($args['label_class'])) {
634
- $args['label_class'] = array($args['label_class']);
635
- }
636
-
637
- if (is_null($value)) {
638
- $value = $args['default'];
639
- }
640
-
641
- // Custom attribute handling
642
- $custom_attributes = array();
643
-
644
- if (!empty($args['custom_attributes']) && is_array($args['custom_attributes'])) {
645
- foreach ($args['custom_attributes'] as $attribute => $attribute_value) {
646
- $custom_attributes[] = esc_attr($attribute) . '="' . esc_attr($attribute_value) . '"';
647
- }
648
- }
649
-
650
- if (!empty($args['validate'])) {
651
- foreach ($args['validate'] as $validate) {
652
- $args['class'][] = 'validate-' . $validate;
653
- }
654
- }
655
-
656
- $countries = $key == 'shipping_country' ? WC()->countries->get_shipping_countries() : WC()->countries->get_allowed_countries();
657
-
658
- if (sizeof($countries) == 1) {
659
-
660
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">';
661
-
662
- if ($args['label']) {
663
- $field .= '<label class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . '</label>';
664
- }
665
-
666
- $field .= '<strong>' . current(array_values($countries)) . '</strong>';
667
-
668
- $field .= '<input type="hidden" name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" value="' . current(array_keys($countries)) . '" ' . implode(' ', $custom_attributes) . ' class="country_to_state" />';
669
-
670
- if ($args['description']) {
671
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
672
- }
673
-
674
- $field .= '</p>' . $after;
675
- } else {
676
-
677
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($args['id']) . '_field">'
678
- . '<label for="' . esc_attr($args['id']) . '" class="' . esc_attr(implode(' ', $args['label_class'])) . '">' . $args['label'] . $required . '</label>'
679
- . '<select name="' . esc_attr($key) . '" id="' . esc_attr($args['id']) . '" class="country_to_state country_select ' . esc_attr(implode(' ', $args['input_class'])) . '" ' . implode(' ', $custom_attributes) . '>'
680
- . '<option value="">' . __('Select a country&hellip;', 'woocommerce-checkout-manager') . '</option>';
681
-
682
- foreach ($countries as $ckey => $cvalue) {
683
- $field .= '<option value="' . esc_attr($ckey) . '" ' . selected($value, $ckey, false) . '>' . (!empty($cvalue) ? __($cvalue, 'woocommerce-checkout-manager') : '' ) . '</option>';
684
- }
685
-
686
- $field .= '</select>';
687
-
688
- $field .= '<noscript><input type="submit" name="woocommerce_checkout_update_totals" value="' . __('Update country', 'woocommerce-checkout-manager') . '" /></noscript>';
689
-
690
- if ($args['description']) {
691
- $field .= '<span class="description">' . esc_attr($args['description']) . '</span>';
692
- }
693
-
694
- $field .= '</p>' . $after;
695
- }
696
-
697
- return $field;
698
- }
699
-
700
- add_filter('woocommerce_form_field_wooccmcountry', 'wooccm_checkout_field_country_handler', 10, 4);
701
- */
702
-
703
- // Multi-Select
704
- function wooccm_checkout_field_multiselect_handler($field = '', $key, $args, $value) {
705
-
706
- global $current_user;
707
-
708
- $user_roles = $current_user->roles;
709
- $user_role = array_shift($user_roles);
710
-
711
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
712
- $rolekeys = explode('||', $args['role_options']);
713
- $rolekeys2 = explode('||', $args['role_options2']);
714
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
715
- return;
716
- }
717
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
718
- return;
719
- }
720
- }
721
-
722
- if (!empty($args['clear']))
723
- $after = '<div class="clear"></div>';
724
- else
725
- $after = '';
726
-
727
- if ($args['wooccm_required']) {
728
- $args['class'][] = 'validate-required';
729
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
730
- } else {
731
- $required = '';
732
- }
733
-
734
- $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint($args['maxlength']) . '"' : '';
735
-
736
- $options = '';
737
-
738
- if (!empty($args['options'])) {
739
- foreach ($args['options'] as $option_key => $option_text) {
740
- $options .= '<option value="' . wooccm_wpml_string(esc_attr($option_text)) . '" ' . selected($value, $option_key, false) . '>' . wooccm_wpml_string(esc_attr($option_text)) . '</option>';
741
- }
742
- }
743
-
744
- $field = '<p class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($key) . '_field">';
745
-
746
- if ($args['label'])
747
- $field .= '<label for="' . esc_attr($key) . '" class="' . implode(' ', $args['label_class']) . '">' . $args['label'] . $required . '</label>';
748
-
749
- $field .= '<select data-placeholder="' . __('Select some options', 'woocommerce-checkout-manager') . '" multiple="multiple" name="' . esc_attr($key) . '[]" id="' . esc_attr($key) . '" class="checkout_chosen_select select">
750
- ' . $options . '
751
- </select>
752
- </p>' . $after;
753
-
754
- return $field;
755
- }
756
-
757
- add_filter('woocommerce_form_field_multiselect', 'wooccm_checkout_field_multiselect_handler', 10, 4);
758
-
759
  // Multi-Checkbox
760
  function wooccm_checkout_field_multicheckbox_handler($field = '', $key, $args, $value) {
761
 
@@ -794,158 +143,77 @@ function wooccm_checkout_field_multicheckbox_handler($field = '', $key, $args, $
794
 
795
  add_filter('woocommerce_form_field_multicheckbox', 'wooccm_checkout_field_multicheckbox_handler', 10, 4);
796
 
797
- // Color Picker
798
- function wooccm_checkout_field_colorpicker_handler($field = '', $key, $args, $value) {
 
799
 
800
- global $current_user;
801
 
802
- $user_roles = $current_user->roles;
803
- $user_role = array_shift($user_roles);
804
 
805
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
806
- $rolekeys = explode('||', $args['role_options']);
807
- $rolekeys2 = explode('||', $args['role_options2']);
808
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
809
- return;
810
- }
811
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
812
- return;
813
- }
814
- }
815
 
816
- if (!empty($args['clear']))
817
- $after = '<div class="clear"></div>';
818
- else
819
- $after = '';
820
 
821
- if ($args['wooccm_required']) {
822
- $args['class'][] = 'validate-required';
823
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
824
- } else {
825
- $required = '';
826
- }
827
 
828
- //if ( isset($value) ) {
829
- $value = $args['color'];
830
- //}
831
 
832
- $field = '
833
- <p class="form-row ' . implode(' ', $args['class']) . ' wccs_colorpicker" id="' . $key . '_field">
834
- <label for="' . $key . '" class="' . implode(' ', $args['label_class']) . '">' . $args['label'] . $required . '</label>
835
- <input type="text" class="input-text" maxlength="7" size="6" name="' . $key . '" id="' . $key . '_colorpicker" placeholder="' . $args['placeholder'] . '" value="' . $value . '" />
836
- <span class="wooccmcolorpicker_container" class="spec_shootd"></span>
837
- </p>' . $after;
838
 
839
- return $field;
 
 
 
 
 
 
 
840
  }
841
 
842
  add_filter('woocommerce_form_field_colorpicker', 'wooccm_checkout_field_colorpicker_handler', 10, 4);
843
 
844
- // Date Picker
 
845
  function wooccm_checkout_field_datepicker_handler($field = '', $key, $args, $value) {
846
 
847
- global $current_user;
848
-
849
- $user_roles = $current_user->roles;
850
- $user_role = array_shift($user_roles);
851
 
852
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
853
- $rolekeys = explode('||', $args['role_options']);
854
- $rolekeys2 = explode('||', $args['role_options2']);
855
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
856
- return;
857
- }
858
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
859
- return;
860
- }
861
- }
862
-
863
- if (!empty($args['clear']))
864
- $after = '<div class="clear"></div>';
865
- else
866
- $after = '';
867
-
868
- if ($args['wooccm_required']) {
869
- $args['class'][] = 'validate-required';
870
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
871
- } else {
872
- $required = '';
873
- }
874
 
875
- $field = '<p class="form-row ' . implode(' ', $args['class']) . 'MyDate' . $args['cow'] . ' wccs-form-row-wide" id="' . $key . '_field">
876
- <label for="' . $key . '" class="' . implode(' ', $args['label_class']) . '">' . $args['label'] . $required . '</label>
877
- <input type="text" class="input-text" name="' . $key . '" id="' . $key . '" placeholder="' . $args['placeholder'] . '" value="' . $value . '" />
878
- </p>' . $after;
879
 
880
- return $field;
881
  }
882
 
883
  add_filter('woocommerce_form_field_datepicker', 'wooccm_checkout_field_datepicker_handler', 10, 4);
884
 
885
- // Time Picker
 
886
  function wooccm_checkout_field_timepicker_handler($field = '', $key, $args, $value) {
887
 
888
- global $current_user;
889
-
890
- $user_roles = $current_user->roles;
891
- $user_role = array_shift($user_roles);
892
-
893
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
894
- $rolekeys = explode('||', $args['role_options']);
895
- $rolekeys2 = explode('||', $args['role_options2']);
896
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
897
- return;
898
- }
899
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
900
- return;
901
- }
902
- }
903
-
904
- if (!empty($args['clear']))
905
- $after = '<div class="clear"></div>';
906
- else
907
- $after = '';
908
 
909
- if ($args['wooccm_required']) {
910
- $args['class'][] = 'validate-required';
911
- $required = '&nbsp;<abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
912
- } else {
913
- $required = '';
914
- }
915
 
916
- $field = '<p class="form-row ' . implode(' ', $args['class']) . 'MyTime' . $args['cow'] . ' wccs-form-row-wide" id="' . $key . '_field">
917
- <label for="' . $key . '" class="' . implode(' ', $args['label_class']) . '">' . $args['label'] . $required . '</label>
918
- <input type="text" class="input-text" name="' . $key . '" id="' . $key . '" placeholder="' . $args['placeholder'] . '" value="' . $value . '" />
919
- </p>' . $after;
920
 
921
- return $field;
922
  }
923
 
924
- add_filter('woocommerce_form_field_time', 'wooccm_checkout_field_timepicker_handler', 10, 4);
925
 
926
  // Heading
 
927
  function wooccm_checkout_field_heading_handler($field = '', $key, $args, $value) {
928
 
929
- global $current_user;
930
-
931
- $user_roles = $current_user->roles;
932
- $user_role = array_shift($user_roles);
933
-
934
- if (!empty($args['user_role']) && (!empty($args['role_options']) || !empty($args['role_options2']))) {
935
- $rolekeys = explode('||', $args['role_options']);
936
- $rolekeys2 = explode('||', $args['role_options2']);
937
- if (!empty($args['role_options']) && !in_array($user_role, $rolekeys)) {
938
- return;
939
- }
940
- if (!empty($args['role_options2']) && in_array($user_role, $rolekeys2)) {
941
- return;
942
- }
943
- }
944
-
945
  $field = '<h3 class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($key) . '_field">' . $args['label'] . '</h3>';
946
 
947
  return $field;
948
  }
949
 
950
  add_filter('woocommerce_form_field_heading', 'wooccm_checkout_field_heading_handler', 10, 4);
951
- ?>
11
 
12
  function wooccm_checkout_field_upload_handler($field = '', $key, $args, $value) {
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  $upload_name = (!empty($args['placeholder']) ? esc_attr($args['placeholder']) : __('Upload Files', 'woocommerce-checkout-manager') );
15
 
16
  if ($args['wooccm_required']) {
71
 
72
  add_filter('woocommerce_form_field_wooccmupload', 'wooccm_checkout_field_upload_handler', 10, 4);
73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  // Radio Buttons
75
  function wooccm_checkout_field_radio_handler($field = '', $key, $args, $value) {
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  if (!empty($args['clear']))
78
  $after = '<div class="clear"></div>';
79
  else
105
 
106
  add_filter('woocommerce_form_field_wooccmradio', 'wooccm_checkout_field_radio_handler', 10, 4);
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  // Multi-Checkbox
109
  function wooccm_checkout_field_multicheckbox_handler($field = '', $key, $args, $value) {
110
 
143
 
144
  add_filter('woocommerce_form_field_multicheckbox', 'wooccm_checkout_field_multicheckbox_handler', 10, 4);
145
 
146
+ // Multiselect
147
+ // -----------------------------------------------------------------------------
148
+ function wooccm_checkout_field_multiselect_handler($field = '', $key, $args, $value) {
149
 
150
+ $args['type'] = 'select';
151
 
152
+ ob_start();
 
153
 
154
+ woocommerce_form_field($key, $args, $value);
 
 
 
 
 
 
 
 
 
155
 
156
+ $field = str_replace('<select ', ' <select multiple="multiple" ', ob_get_clean());
157
+ $field = str_replace('name="' . esc_attr($key) . '"', 'name="' . esc_attr($key) . '[]"', $field);
 
 
158
 
159
+ return $field;
160
+ }
 
 
 
 
161
 
162
+ add_filter('woocommerce_form_field_multiselect', 'wooccm_checkout_field_multiselect_handler', 10, 4);
 
 
163
 
164
+ // Colorpicker
165
+ // -----------------------------------------------------------------------------
166
+ function wooccm_checkout_field_colorpicker_handler($field = '', $key, $args, $value) {
 
 
 
167
 
168
+ $args['type'] = 'text';
169
+ $args['maxlength'] = 7;
170
+
171
+ ob_start();
172
+
173
+ woocommerce_form_field($key, $args, $value);
174
+
175
+ return str_replace('</p>', ' <span class="wooccmcolorpicker_container" class="spec_shootd"></span></p>', ob_get_clean());
176
  }
177
 
178
  add_filter('woocommerce_form_field_colorpicker', 'wooccm_checkout_field_colorpicker_handler', 10, 4);
179
 
180
+ // Datepicker
181
+ // -----------------------------------------------------------------------------
182
  function wooccm_checkout_field_datepicker_handler($field = '', $key, $args, $value) {
183
 
184
+ $args['type'] = 'text';
 
 
 
185
 
186
+ ob_start();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
 
188
+ woocommerce_form_field($key, $args, $value);
 
 
 
189
 
190
+ return ob_get_clean();
191
  }
192
 
193
  add_filter('woocommerce_form_field_datepicker', 'wooccm_checkout_field_datepicker_handler', 10, 4);
194
 
195
+ // Timepicker
196
+ // -----------------------------------------------------------------------------
197
  function wooccm_checkout_field_timepicker_handler($field = '', $key, $args, $value) {
198
 
199
+ $args['type'] = 'text';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
+ ob_start();
 
 
 
 
 
202
 
203
+ woocommerce_form_field($key, $args, $value);
 
 
 
204
 
205
+ return ob_get_clean();
206
  }
207
 
208
+ add_filter('woocommerce_form_field_timepicker', 'wooccm_checkout_field_timepicker_handler', 10, 4);
209
 
210
  // Heading
211
+ // -----------------------------------------------------------------------------
212
  function wooccm_checkout_field_heading_handler($field = '', $key, $args, $value) {
213
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  $field = '<h3 class="form-row ' . esc_attr(implode(' ', $args['class'])) . '" id="' . esc_attr($key) . '_field">' . $args['label'] . '</h3>';
215
 
216
  return $field;
217
  }
218
 
219
  add_filter('woocommerce_form_field_heading', 'wooccm_checkout_field_heading_handler', 10, 4);
 
new/fields_handler.php CHANGED
@@ -46,6 +46,13 @@ if (!class_exists('WOOCCM_Fields_Handler')) {
46
  $field['class'][] = 'wooccm-clearfix';
47
  }
48
 
 
 
 
 
 
 
 
49
  return $field;
50
  }
51
 
@@ -71,14 +78,17 @@ if (!class_exists('WOOCCM_Fields_Handler')) {
71
  return $fields;
72
  }
73
 
74
- function woocommerce_checkout_address_2_field($option) {
75
- return 'required';
76
- }
77
 
78
  function remove_fields_priority($fields) {
79
 
80
  foreach ($fields as $key => $field) {
 
 
81
  unset($fields[$key]['priority']);
 
82
  }
83
 
84
  return $fields;
@@ -114,10 +124,10 @@ if (!class_exists('WOOCCM_Fields_Handler')) {
114
 
115
  // Fix address_2 field
116
  // -----------------------------------------------------------------------
117
- add_filter('default_option_woocommerce_checkout_address_2_field', array($this, 'woocommerce_checkout_address_2_field'));
118
-
119
  // Fix address fields priority
120
  add_filter('woocommerce_get_country_locale_default', array($this, 'remove_fields_priority'));
 
121
 
122
  // Fix required country notice when shipping address is activated
123
  // -----------------------------------------------------------------------
46
  $field['class'][] = 'wooccm-clearfix';
47
  }
48
 
49
+ // Required
50
+ // -----------------------------------------------------------------------
51
+
52
+ if (isset($field['required'])) {
53
+ $field['custom_attributes']['data-required'] = (int) $field['required'];
54
+ }
55
+
56
  return $field;
57
  }
58
 
78
  return $fields;
79
  }
80
 
81
+ //function woocommerce_checkout_address_2_field($option) {
82
+ // return 'required';
83
+ //}
84
 
85
  function remove_fields_priority($fields) {
86
 
87
  foreach ($fields as $key => $field) {
88
+ unset($fields[$key]['label']);
89
+ unset($fields[$key]['placeholder']);
90
  unset($fields[$key]['priority']);
91
+ unset($fields[$key]['required']);
92
  }
93
 
94
  return $fields;
124
 
125
  // Fix address_2 field
126
  // -----------------------------------------------------------------------
127
+ //add_filter('default_option_woocommerce_checkout_address_2_field', array($this, 'woocommerce_checkout_address_2_field'));
 
128
  // Fix address fields priority
129
  add_filter('woocommerce_get_country_locale_default', array($this, 'remove_fields_priority'));
130
+ add_filter('woocommerce_get_country_locale_base', array($this, 'remove_fields_priority'));
131
 
132
  // Fix required country notice when shipping address is activated
133
  // -----------------------------------------------------------------------
new/fields_init.php CHANGED
@@ -25,25 +25,23 @@ if (!class_exists('WOOCCM_Fields')) {
25
  return array_merge(array_keys(WC()->countries->get_default_address_fields()), $defaults);
26
  }
27
 
28
- public static function get_fields_parent_types() {
 
 
 
 
 
 
 
 
 
 
29
 
30
  return array(
31
- 'text',
32
- 'textarea',
33
- 'password',
34
- 'select',
35
- 'multiselect',
36
- 'radio',
37
- 'checkbox',
38
  'multicheckbox',
39
- 'datepicker',
40
- 'timepicker',
41
- 'colorpicker',
42
- 'country',
43
- 'state',
44
- //'heading',
45
- //'button' => __('Button', 'woocommerce-checkout-manager'),
46
- 'file'
47
  );
48
  }
49
 
@@ -72,6 +70,8 @@ if (!class_exists('WOOCCM_Fields')) {
72
  static function get_field_args() {
73
 
74
  $args = array(
 
 
75
  // Defaults
76
  // -------------------------------------------------------------------
77
  'disabled' => false,
@@ -97,7 +97,7 @@ if (!class_exists('WOOCCM_Fields')) {
97
  'extra_class' => null,
98
  // Display
99
  // -------------------------------------------------------------------
100
- 'user_role' => null,
101
  'role_options' => array(),
102
  'role_options2' => array(),
103
  'more_content' => null,
@@ -114,6 +114,7 @@ if (!class_exists('WOOCCM_Fields')) {
114
  'min_before' => null,
115
  'max_after' => null,
116
  'format_date' => null,
 
117
  'single_dd' => null,
118
  'single_max_dd' => null,
119
  'single_max_mm' => null,
@@ -142,6 +143,8 @@ if (!class_exists('WOOCCM_Fields')) {
142
  'listable' => null,
143
  'sortable' => null,
144
  'filterable' => null,
 
 
145
  //
146
  // Email
147
  // -------------------------------------------------------------------
@@ -153,19 +156,19 @@ if (!class_exists('WOOCCM_Fields')) {
153
  return $args;
154
  }
155
 
156
- public static function get_billing_fields() {
157
- return self::get_fields('wccs_settings3', 'billing', self::get_default_address_fields());
158
  }
159
 
160
- public static function get_shipping_fields() {
161
- return self::get_fields('wccs_settings2', 'shipping', self::get_default_address_fields());
162
  }
163
 
164
- public static function get_additional_fields() {
165
- return self::get_fields('wccs_settings', '', self::get_default_address_fields());
166
  }
167
 
168
- protected static function get_fields($name, $prefix = 'additional', $defaults = array()) {
169
 
170
  if ($fields = get_option($name, $prefix, $defaults)) {
171
 
@@ -185,10 +188,10 @@ if (!class_exists('WOOCCM_Fields')) {
185
 
186
  $key = sprintf("%s_%s", $prefix, $field['cow']);
187
 
188
- if (isset($_GET['page']) && strpos($_GET['page'], 'woocommerce-checkout-manager') !== false) {
189
- $fields[$id] = self::old_panel_compatibility($field, $key);
190
  } else {
191
- $fields[$id] = self::new_panel_compatibility($field, $key);
192
  }
193
  }
194
 
@@ -203,7 +206,23 @@ if (!class_exists('WOOCCM_Fields')) {
203
  return $fields;
204
  }
205
 
206
- protected static function new_panel_compatibility($field, $key) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
 
208
  if ($field['type'] == 'wooccmtext') {
209
  $field['type'] = 'text';
@@ -223,16 +242,16 @@ if (!class_exists('WOOCCM_Fields')) {
223
  if ($field['type'] == 'checkbox_wccm') {
224
  $field['type'] = 'checkbox';
225
  }
226
-
227
- $field['slug'] = @$field['cow'];
228
- $field['id'] = $key;
229
-
230
  if ($field['type'] == 'colorpicker') {
231
  $field['default'] = @$field['colorpickerd'];
232
  } else {
233
  $field['default'] = @$field['force_title2'];
234
  }
235
 
 
236
  if (!empty($field['role_options']) && !is_array($field['role_options'])) {
237
  if (strpos($field['role_options'], '||') !== false) {
238
  $field['role_options'] = explode('||', $field['role_options']);
@@ -249,6 +268,7 @@ if (!class_exists('WOOCCM_Fields')) {
249
  }
250
  }
251
 
 
252
  if (!empty($field['days_disabler'])) {
253
 
254
  $field['days_disabler'] = array();
@@ -261,35 +281,58 @@ if (!class_exists('WOOCCM_Fields')) {
261
  }
262
  }
263
 
264
- $field['clear'] = @$field['clear_row'];
265
- $field['required'] = @$field['checkbox'];
266
- $field['conditional'] = @$field['conditional_parent_use'];
267
- $field['conditional_tie'] = @$field['conditional_parent_slug'];
268
- $field['conditional_value'] = @$field['chosen_valt'];
269
- $field['add_amount_name'] = @$field['fee_name'];
270
- $field['add_amount_tax'] = !@$field['tax_remove'];
 
 
 
 
271
 
272
  return $field;
273
  }
274
 
275
  protected static function old_panel_compatibility($field) {
276
 
277
- foreach ($field as $id => $key) {
 
 
 
 
 
278
 
279
- if (is_array($field[$id]) && in_array('key', array('single_p', 'single_p_cat', 'single_px', 'single_px_cat'))) {
280
- $field[$id] = implode('||', $field[$id]);
 
 
281
  }
 
 
282
 
283
- if (is_array(@$field['days_disabler'])) {
 
284
 
285
- foreach ($field['days_disabler'] as $day_index => $day) {
286
- $field['days_disabler' . strval($day_index)] = 1;
287
- }
288
 
289
- $field['days_disabler'] = 1;
290
- }
 
291
  }
292
 
 
 
 
 
 
 
 
 
 
 
293
  return $field;
294
  }
295
 
25
  return array_merge(array_keys(WC()->countries->get_default_address_fields()), $defaults);
26
  }
27
 
28
+ public static function get_fields_conditional_types() {
29
+
30
+ $fields = self::get_fields_types();
31
+
32
+ unset($fields['heading']);
33
+ unset($fields['button']);
34
+
35
+ return array_keys($fields);
36
+ }
37
+
38
+ public static function get_fields_option_types() {
39
 
40
  return array(
 
 
 
 
 
 
 
41
  'multicheckbox',
42
+ 'multiselect',
43
+ 'wooccmselect',
44
+ 'select'
 
 
 
 
 
45
  );
46
  }
47
 
70
  static function get_field_args() {
71
 
72
  $args = array(
73
+ 'id' => null,
74
+ 'cow' => null,
75
  // Defaults
76
  // -------------------------------------------------------------------
77
  'disabled' => false,
97
  'extra_class' => null,
98
  // Display
99
  // -------------------------------------------------------------------
100
+ //'user_role' => null,
101
  'role_options' => array(),
102
  'role_options2' => array(),
103
  'more_content' => null,
114
  'min_before' => null,
115
  'max_after' => null,
116
  'format_date' => null,
117
+ 'date_limit' => null,
118
  'single_dd' => null,
119
  'single_max_dd' => null,
120
  'single_max_mm' => null,
143
  'listable' => null,
144
  'sortable' => null,
145
  'filterable' => null,
146
+ 'single_min_date' => null,
147
+ 'single_max_date' => null,
148
  //
149
  // Email
150
  // -------------------------------------------------------------------
156
  return $args;
157
  }
158
 
159
+ public static function get_billing_fields($new = false) {
160
+ return self::get_fields('wccs_settings3', 'billing', self::get_default_address_fields(), $new);
161
  }
162
 
163
+ public static function get_shipping_fields($new = false) {
164
+ return self::get_fields('wccs_settings2', 'shipping', self::get_default_address_fields(), $new);
165
  }
166
 
167
+ public static function get_additional_fields($new = false) {
168
+ return self::get_fields('wccs_settings', '', self::get_default_address_fields(), $new);
169
  }
170
 
171
+ protected static function get_fields($name, $prefix = 'additional', $defaults = array(), $new) {
172
 
173
  if ($fields = get_option($name, $prefix, $defaults)) {
174
 
188
 
189
  $key = sprintf("%s_%s", $prefix, $field['cow']);
190
 
191
+ if ($new === 'new') {
192
+ $fields[$id] = self::new_panel_compatibility($field, $key, $id);
193
  } else {
194
+ $fields[$id] = self::old_panel_compatibility($field, $key, $id);
195
  }
196
  }
197
 
206
  return $fields;
207
  }
208
 
209
+ protected static function new_panel_compatibility($field, $key, $id) {
210
+
211
+ $field = wp_parse_args($field, self::get_field_args());
212
+
213
+ $field['id'] = $id;
214
+ $field['key'] = $key;
215
+ $field['name'] = @$field['cow'];
216
+
217
+ // General
218
+ $field['placeholder'] = @$field['placeholder'];
219
+ $field['clear'] = @$field['clear_row'];
220
+ $field['required'] = @$field['checkbox'];
221
+ $field['conditional'] = @$field['conditional_parent_use'];
222
+ $field['conditional_tie'] = @$field['conditional_parent_slug'];
223
+ $field['conditional_value'] = @$field['chosen_valt'];
224
+ $field['add_amount_name'] = @$field['fee_name'];
225
+ $field['add_amount_tax'] = !@$field['tax_remove'];
226
 
227
  if ($field['type'] == 'wooccmtext') {
228
  $field['type'] = 'text';
242
  if ($field['type'] == 'checkbox_wccm') {
243
  $field['type'] = 'checkbox';
244
  }
245
+ if ($field['type'] == 'time') {
246
+ $field['type'] = 'timepicker';
247
+ }
 
248
  if ($field['type'] == 'colorpicker') {
249
  $field['default'] = @$field['colorpickerd'];
250
  } else {
251
  $field['default'] = @$field['force_title2'];
252
  }
253
 
254
+ // Roles
255
  if (!empty($field['role_options']) && !is_array($field['role_options'])) {
256
  if (strpos($field['role_options'], '||') !== false) {
257
  $field['role_options'] = explode('||', $field['role_options']);
268
  }
269
  }
270
 
271
+ // Days
272
  if (!empty($field['days_disabler'])) {
273
 
274
  $field['days_disabler'] = array();
281
  }
282
  }
283
 
284
+ // Dates
285
+ if (!empty($field['single_yy']) && !empty($field['single_mm']) && !empty($field['single_dd'])) {
286
+ $field['single_min_date'] = $field['single_yy'] . '-' . $field['single_mm'] . '-' . $field['single_dd'];
287
+ } else {
288
+ $field['single_min_date'] = '';
289
+ }
290
+ if (!empty($field['single_max_yy']) && !empty($field['single_max_mm']) && !empty($field['single_max_dd'])) {
291
+ $field['single_max_date'] = $field['single_max_yy'] . '-' . $field['single_max_mm'] . '-' . $field['single_max_dd'];
292
+ } else {
293
+ $field['single_max_date'] = '';
294
+ }
295
 
296
  return $field;
297
  }
298
 
299
  protected static function old_panel_compatibility($field) {
300
 
301
+ // Display
302
+ foreach ($field as $i => $key) {
303
+ if (is_array($field[$i]) && in_array('key', array('single_p', 'single_p_cat', 'single_px', 'single_px_cat'))) {
304
+ $field[$i] = implode('||', $field[$i]);
305
+ }
306
+ }
307
 
308
+ // Days
309
+ if (is_array(@$field['days_disabler'])) {
310
+ foreach ($field['days_disabler'] as $day_index => $day) {
311
+ $field['days_disabler' . strval($day_index)] = 1;
312
  }
313
+ $field['days_disabler'] = 1;
314
+ }
315
 
316
+ // Dates
317
+ if (!empty($field['single_min_date'])) {
318
 
319
+ $min = explode('-', $field['single_min_date']);
 
 
320
 
321
+ $field['single_yy'] = $min[0];
322
+ $field['single_mm'] = $min[1];
323
+ $field['single_dd'] = $min[2];
324
  }
325
 
326
+ if (!empty($field['single_max_date'])) {
327
+
328
+ $max = explode('-', $field['single_max_date']);
329
+
330
+ $field['single_max_yy'] = $max[0];
331
+ $field['single_max_mm'] = $max[1];
332
+ $field['single_max_dd'] = $max[2];
333
+ }
334
+
335
+
336
  return $field;
337
  }
338
 
new/fields_register.php CHANGED
@@ -12,7 +12,6 @@ if (!class_exists('WOOCCM_Fields_Register')) {
12
  $fields[$key] = wp_parse_args($custom_field, (array) @$fields[$key]);
13
 
14
  //$fields[$key]['key'] = $key;
15
-
16
  // Class
17
  // -----------------------------------------------------------------------
18
  if (!is_array(@$fields[$key]['class'])) {
@@ -62,6 +61,9 @@ if (!class_exists('WOOCCM_Fields_Register')) {
62
  if ($fields[$key]['type'] == 'wooccmtext') {
63
  $fields[$key]['type'] = 'text';
64
  }
 
 
 
65
  if ($fields[$key]['type'] == 'wooccmstate') {
66
  $fields[$key]['type'] = 'state';
67
  }
@@ -77,6 +79,9 @@ if (!class_exists('WOOCCM_Fields_Register')) {
77
  if ($fields[$key]['type'] == 'checkbox_wccm') {
78
  $fields[$key]['type'] = 'checkbox';
79
  }
 
 
 
80
 
81
  // Required
82
  // -----------------------------------------------------------------------
12
  $fields[$key] = wp_parse_args($custom_field, (array) @$fields[$key]);
13
 
14
  //$fields[$key]['key'] = $key;
 
15
  // Class
16
  // -----------------------------------------------------------------------
17
  if (!is_array(@$fields[$key]['class'])) {
61
  if ($fields[$key]['type'] == 'wooccmtext') {
62
  $fields[$key]['type'] = 'text';
63
  }
64
+ if ($fields[$key]['type'] == 'wooccmpassword') {
65
+ $fields[$key]['type'] = 'password';
66
+ }
67
  if ($fields[$key]['type'] == 'wooccmstate') {
68
  $fields[$key]['type'] = 'state';
69
  }
79
  if ($fields[$key]['type'] == 'checkbox_wccm') {
80
  $fields[$key]['type'] = 'checkbox';
81
  }
82
+ if ($fields[$key]['type'] == 'time') {
83
+ $fields[$key]['type'] = 'timepicker';
84
+ }
85
 
86
  // Required
87
  // -----------------------------------------------------------------------
new/install.php CHANGED
@@ -24,7 +24,7 @@ if (!class_exists('WOOCCM_Install')) {
24
  'clear_row' => '',
25
  'options' => '',
26
  'options_array' => '',
27
- 'user_role' => '',
28
  'role_options' => '',
29
  'role_options2' => '',
30
  'required' => '',
24
  'clear_row' => '',
25
  'options' => '',
26
  'options_array' => '',
27
+ //'user_role' => '',
28
  'role_options' => '',
29
  'role_options2' => '',
30
  'required' => '',
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.3
7
- Stable tag: 4.4.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -137,6 +137,11 @@ Example:
137
 
138
  == Changelog ==
139
 
 
 
 
 
 
140
  = 4.4.8 =
141
  * Improvement: backward compatibility with new panel
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.3
7
+ Stable tag: 4.4.9
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
137
 
138
  == Changelog ==
139
 
140
+ = 4.4.9 =
141
+ * Improvement: unnecessary files removed
142
+ * Improvement: woocommerce checkout address fields required
143
+ * Improvement: woocommerce checkout address fields names
144
+
145
  = 4.4.8 =
146
  * Improvement: backward compatibility with new panel
147
 
woocommerce-checkout-manager.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: WooCommerce Checkout Manager
4
  * Description: Manages WooCommerce Checkout, the advanced way.
5
- * Version: 4.4.8
6
  * Author: QuadLayers
7
  * Author URI: https://www.quadlayers.com
8
  * Copyright: 2019 QuadLayers (https://www.quadlayers.com)
@@ -16,7 +16,7 @@ if (!defined('WOOCCM_PLUGIN_NAME')) {
16
  define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
17
  }
18
  if (!defined('WOOCCM_PLUGIN_VERSION')) {
19
- define('WOOCCM_PLUGIN_VERSION', '4.4.8');
20
  }
21
  if (!defined('WOOCCM_PLUGIN_FILE')) {
22
  define('WOOCCM_PLUGIN_FILE', __FILE__);
@@ -197,10 +197,12 @@ if (!class_exists('WOOCCM')) {
197
  wp_localize_script('wooccm-admin', 'wooccm', array(
198
  'ajaxurl' => admin_url('admin-ajax.php'),
199
  'nonce' => wp_create_nonce('wooccm_admin'),
200
- 'uploading' => esc_html__('Uploading, please wait...', 'woocommerce-checkout-manager'),
201
- 'saving' => esc_html__('Saving, please wait...', 'woocommerce-checkout-manager'),
202
- 'success' => esc_html__('Files uploaded successfully.', 'woocommerce-checkout-manager'),
203
- 'deleted' => esc_html__('Deleted successfully.', 'woocommerce-checkout-manager'),
 
 
204
  'icons' => array(
205
  'interactive' => site_url('wp-includes/images/media/interactive.png'),
206
  'spreadsheet' => site_url('wp-includes/images/media/spreadsheet.png'),
@@ -208,6 +210,10 @@ if (!class_exists('WOOCCM')) {
208
  'audio' => site_url('wp-includes/images/media/audio.png'),
209
  'text' => site_url('wp-includes/images/media/text.png'),
210
  'video' => site_url('wp-includes/images/media/video.png')
 
 
 
 
211
  )
212
  ));
213
 
@@ -231,10 +237,12 @@ if (!class_exists('WOOCCM')) {
231
  'text' => site_url('wp-includes/images/media/text.png'),
232
  'video' => site_url('wp-includes/images/media/video.png')
233
  ),
234
- 'uploading' => esc_html__('Uploading, please wait...', 'woocommerce-checkout-manager'),
235
- 'saving' => esc_html__('Saving, please wait...', 'woocommerce-checkout-manager'),
236
- 'success' => esc_html__('Files uploaded successfully.', 'woocommerce-checkout-manager'),
237
- 'deleted' => esc_html__('Deleted successfully.', 'woocommerce-checkout-manager')
 
 
238
  ));
239
  }
240
 
@@ -244,12 +252,12 @@ if (!class_exists('WOOCCM')) {
244
 
245
  //1326
246
  // only for panel
247
- wp_enqueue_media();
248
  wp_enqueue_style('wooccm-admin');
249
- wp_enqueue_script('wooccm-modal');
250
  // 1326
251
  // only for orders
252
  wp_enqueue_script('wooccm-admin');
 
253
  // only for backend maybe orders
254
  wp_enqueue_script('wooccm-order-upload');
255
  }
@@ -290,8 +298,6 @@ if (!class_exists('WOOCCM')) {
290
 
291
  if (is_checkout()) {
292
 
293
- wp_enqueue_script('wooccm-checkout');
294
-
295
  // UI
296
  // ---------------------------------------------------------------------
297
  wp_enqueue_style('jquery-ui-style', WC()->plugin_url() . '/assets/css/jquery-ui/jquery-ui.min.css', array(), WC_VERSION);
@@ -331,6 +337,8 @@ if (!class_exists('WOOCCM')) {
331
  // Dashicons
332
  // ---------------------------------------------------------------------
333
  wp_enqueue_style('dashicons');
 
 
334
  }
335
  }
336
 
@@ -357,9 +365,9 @@ if (!class_exists('WOOCCM')) {
357
  //1326
358
  //include( WOOCCM_PLUGIN_DIR . 'includes/classes/field_filters.php' );
359
  // @mod - We need to load the templates conditionally
360
- include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/add_functions.php' );
361
- include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/billing_functions.php' );
362
- include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/shipping_functions.php' );
363
  //1326
364
  //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/add_wooccmupload.php' );
365
  //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/billing_wooccmupload.php' );
@@ -382,6 +390,8 @@ if (!class_exists('WOOCCM')) {
382
  include( WOOCCM_PLUGIN_DIR . 'new/fields_conditional.php' );
383
  include( WOOCCM_PLUGIN_DIR . 'new/fields_handler.php' );
384
  include( WOOCCM_PLUGIN_DIR . 'new/fields_filters.php' );
 
 
385
  //include( WOOCCM_PLUGIN_DIR . 'new/premium/fields_amount.php' );
386
  }
387
 
@@ -438,8 +448,8 @@ add_action('woocommerce_checkout_before_customer_details', 'wooccm_checkout_text
438
  add_filter('woocommerce_checkout_fields', 'wooccm_remove_fields_filter_billing', 15);
439
  add_filter('woocommerce_checkout_fields', 'wooccm_remove_fields_filter_shipping', 1);
440
  add_action('wp_head', 'wooccm_display_front');
441
- add_action('wp_head', 'wooccm_billing_hide_required');
442
- add_action('wp_head', 'wooccm_shipping_hide_required');
443
  // @mod - wooccm_run_color_inner does not exist
444
  // add_action( 'wooccm_run_color_innerpicker', 'wooccm_run_color_inner' ); run color inside options page (proto)
445
  //add_action('woocommerce_before_checkout_form', 'wooccm_override_this');
@@ -457,11 +467,11 @@ add_action('woocommerce_checkout_process', 'wooccm_billing_custom_checkout_proce
457
  add_action('woocommerce_checkout_process', 'wooccm_shipping_custom_checkout_process');
458
 
459
  //1326
460
- add_action('woocommerce_before_checkout_form', 'wooccm_billing_scripts');
461
  //add_action('woocommerce_before_checkout_form', 'wooccm_billing_override_this');
462
- add_action('woocommerce_before_checkout_form', 'wooccm_shipping_scripts');
463
  //add_action('woocommerce_before_checkout_form', 'wooccm_shipping_override_this');
464
- add_action('woocommerce_before_checkout_form', 'wooccm_scripts');
465
  //add_action('woocommerce_before_checkout_form', 'wooccm_upload_scripts');
466
 
467
  add_action('woocommerce_checkout_fields', 'wooccm_order_notes');
2
  /**
3
  * Plugin Name: WooCommerce Checkout Manager
4
  * Description: Manages WooCommerce Checkout, the advanced way.
5
+ * Version: 4.4.9
6
  * Author: QuadLayers
7
  * Author URI: https://www.quadlayers.com
8
  * Copyright: 2019 QuadLayers (https://www.quadlayers.com)
16
  define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
17
  }
18
  if (!defined('WOOCCM_PLUGIN_VERSION')) {
19
+ define('WOOCCM_PLUGIN_VERSION', '4.4.9');
20
  }
21
  if (!defined('WOOCCM_PLUGIN_FILE')) {
22
  define('WOOCCM_PLUGIN_FILE', __FILE__);
197
  wp_localize_script('wooccm-admin', 'wooccm', array(
198
  'ajaxurl' => admin_url('admin-ajax.php'),
199
  'nonce' => wp_create_nonce('wooccm_admin'),
200
+ 'message' => array(
201
+ 'uploading' => esc_html__('Uploading, please wait...', 'woocommerce-checkout-manager'),
202
+ 'saving' => esc_html__('Saving, please wait...', 'woocommerce-checkout-manager'),
203
+ 'success' => esc_html__('Files uploaded successfully.', 'woocommerce-checkout-manager'),
204
+ 'deleted' => esc_html__('Deleted successfully.', 'woocommerce-checkout-manager'),
205
+ ),
206
  'icons' => array(
207
  'interactive' => site_url('wp-includes/images/media/interactive.png'),
208
  'spreadsheet' => site_url('wp-includes/images/media/spreadsheet.png'),
210
  'audio' => site_url('wp-includes/images/media/audio.png'),
211
  'text' => site_url('wp-includes/images/media/text.png'),
212
  'video' => site_url('wp-includes/images/media/video.png')
213
+ ),
214
+ 'fields' => array(
215
+ 'args' => WOOCCM_Fields::get_field_args(),
216
+ 'option' => WOOCCM_Fields::get_fields_option_types(),
217
  )
218
  ));
219
 
237
  'text' => site_url('wp-includes/images/media/text.png'),
238
  'video' => site_url('wp-includes/images/media/video.png')
239
  ),
240
+ 'message' => array(
241
+ 'uploading' => esc_html__('Uploading, please wait...', 'woocommerce-checkout-manager'),
242
+ 'saving' => esc_html__('Saving, please wait...', 'woocommerce-checkout-manager'),
243
+ 'success' => esc_html__('Files uploaded successfully.', 'woocommerce-checkout-manager'),
244
+ 'deleted' => esc_html__('Deleted successfully.', 'woocommerce-checkout-manager'),
245
+ )
246
  ));
247
  }
248
 
252
 
253
  //1326
254
  // only for panel
255
+ wp_enqueue_media();
256
  wp_enqueue_style('wooccm-admin');
 
257
  // 1326
258
  // only for orders
259
  wp_enqueue_script('wooccm-admin');
260
+ wp_enqueue_script('wooccm-modal');
261
  // only for backend maybe orders
262
  wp_enqueue_script('wooccm-order-upload');
263
  }
298
 
299
  if (is_checkout()) {
300
 
 
 
301
  // UI
302
  // ---------------------------------------------------------------------
303
  wp_enqueue_style('jquery-ui-style', WC()->plugin_url() . '/assets/css/jquery-ui/jquery-ui.min.css', array(), WC_VERSION);
337
  // Dashicons
338
  // ---------------------------------------------------------------------
339
  wp_enqueue_style('dashicons');
340
+
341
+ wp_enqueue_script('wooccm-checkout');
342
  }
343
  }
344
 
365
  //1326
366
  //include( WOOCCM_PLUGIN_DIR . 'includes/classes/field_filters.php' );
367
  // @mod - We need to load the templates conditionally
368
+ //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/add_functions.php' );
369
+ //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/billing_functions.php' );
370
+ //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/shipping_functions.php' );
371
  //1326
372
  //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/add_wooccmupload.php' );
373
  //include( WOOCCM_PLUGIN_DIR . 'includes/templates/functions/billing_wooccmupload.php' );
390
  include( WOOCCM_PLUGIN_DIR . 'new/fields_conditional.php' );
391
  include( WOOCCM_PLUGIN_DIR . 'new/fields_handler.php' );
392
  include( WOOCCM_PLUGIN_DIR . 'new/fields_filters.php' );
393
+ //include( WOOCCM_PLUGIN_DIR . 'new/premium/fields_datepicker.php' );
394
+ //include( WOOCCM_PLUGIN_DIR . 'new/premium/fields_timepicker.php' );
395
  //include( WOOCCM_PLUGIN_DIR . 'new/premium/fields_amount.php' );
396
  }
397
 
448
  add_filter('woocommerce_checkout_fields', 'wooccm_remove_fields_filter_billing', 15);
449
  add_filter('woocommerce_checkout_fields', 'wooccm_remove_fields_filter_shipping', 1);
450
  add_action('wp_head', 'wooccm_display_front');
451
+ //add_action('wp_head', 'wooccm_billing_hide_required');
452
+ //add_action('wp_head', 'wooccm_shipping_hide_required');
453
  // @mod - wooccm_run_color_inner does not exist
454
  // add_action( 'wooccm_run_color_innerpicker', 'wooccm_run_color_inner' ); run color inside options page (proto)
455
  //add_action('woocommerce_before_checkout_form', 'wooccm_override_this');
467
  add_action('woocommerce_checkout_process', 'wooccm_shipping_custom_checkout_process');
468
 
469
  //1326
470
+ //add_action('woocommerce_before_checkout_form', 'wooccm_billing_scripts');
471
  //add_action('woocommerce_before_checkout_form', 'wooccm_billing_override_this');
472
+ //add_action('woocommerce_before_checkout_form', 'wooccm_shipping_scripts');
473
  //add_action('woocommerce_before_checkout_form', 'wooccm_shipping_override_this');
474
+ //add_action('woocommerce_before_checkout_form', 'wooccm_scripts');
475
  //add_action('woocommerce_before_checkout_form', 'wooccm_upload_scripts');
476
 
477
  add_action('woocommerce_checkout_fields', 'wooccm_order_notes');