WooCommerce Checkout Manager - Version 4.5.3

Version Description

  • Fix: woocommerce checkout new admin panel reset option
Download this release

Release Info

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

Code changes from version 4.5.2 to 4.5.3

assets/css/wooccm.css CHANGED
@@ -1,9 +1,9 @@
1
- .woocommerce form .form-row.wooccm-clearfix:before,
2
- .woocommerce form .form-row.wooccm-clearfix:after {
3
  content: '';
4
  display: table;
5
  }
6
- .woocommerce form .form-row.wooccm-clearfix:after {
7
  clear: both;
8
  }
9
  .button.fileinput-button {
1
+ .woocommerce form .wooccm-clearfix:before,
2
+ .woocommerce form .wooccm-clearfix:after {
3
  content: '';
4
  display: table;
5
  }
6
+ .woocommerce form .wooccm-clearfix:after {
7
  clear: both;
8
  }
9
  .button.fileinput-button {
assets/css/wooccm.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../less/wooccm.less"],"names":[],"mappings":"AAKI,YALS,KAAK,UAEf,gBAGE;AACC,YANO,KAAK,UAEf,gBAII;EACD,SAAQ,EAAR;EACA,cAAA;;AAEF,YAVS,KAAK,UAEf,gBAQE;EACC,WAAA;;AAOJ,OAAC;EACC,kBAAA;EACA,0BAAA;;AAFF,OAAC,iBAIC;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,YAAW,kBAAX;EACA,gBAAA;EACA,cAAA;EACA,eAAA;;AAMN;EACE,cAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;EACA,sBAAA;;AANF,kBAQE;EACE,aAAA;EACA,uBAAA;EACA,oBAAA;EACA,sBAAA;EACA,uBAAA;EACA,UAAA;EAEA,kBAAA;;AAhBJ,kBAQE,mBAWE;EACE,UAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,iBAAA;;AAnCN,kBAQE,mBA8BE;EACE,WAAA;EACA,gBAAA;;AAxCN,kBAQE,mBAmCE;EACE,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;;AAnDN,kBAQE,mBAmCE,mCAUE;EACE,gBAAA;EACA,iBAAA;EACA,kBAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;;AAEA,kBAtDN,mBAmCE,mCAUE,MASG;EACC,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EAEA,gBAAA;EACA,YAAA;EACA,WAAA","file":"wooccm.css"}
1
+ {"version":3,"sources":["../less/wooccm.less"],"names":[],"mappings":"AAKI,YALS,KAEX,iBAGG;AACC,YANO,KAEX,iBAIK;EACD,SAAQ,EAAR;EACA,cAAA;;AAEF,YAVS,KAEX,iBAQG;EACC,WAAA;;AAOJ,OAAC;EACC,kBAAA;EACA,0BAAA;;AAFF,OAAC,iBAIC;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,YAAW,kBAAX;EACA,gBAAA;EACA,cAAA;EACA,eAAA;;AAMN;EACE,cAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;EACA,sBAAA;;AANF,kBAQE;EACE,aAAA;EACA,uBAAA;EACA,oBAAA;EACA,sBAAA;EACA,uBAAA;EACA,UAAA;EAEA,kBAAA;;AAhBJ,kBAQE,mBAWE;EACE,UAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,iBAAA;;AAnCN,kBAQE,mBA8BE;EACE,WAAA;EACA,gBAAA;;AAxCN,kBAQE,mBAmCE;EACE,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;;AAnDN,kBAQE,mBAmCE,mCAUE;EACE,gBAAA;EACA,iBAAA;EACA,kBAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;;AAEA,kBAtDN,mBAmCE,mCAUE,MASG;EACC,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EAEA,gBAAA;EACA,YAAA;EACA,WAAA","file":"wooccm.css"}
assets/js/wooccm-admin.js CHANGED
@@ -225,74 +225,4 @@
225
 
226
  });
227
 
228
- $(document).on('click', '.wooccm-field-toggle-attribute', function (e) {
229
- e.preventDefault();
230
-
231
- var $link = $(this),
232
- $tr = $link.closest('tr'),
233
- $toggle = $link.find('.woocommerce-input-toggle');
234
-
235
- $.ajax({
236
- url: wooccm_admin.ajax_url,
237
- data: {
238
- action: 'wooccm_toggle_field_attribute',
239
- nonce: wooccm_admin.nonce,
240
- field_attr: $(this).data('field_attr'),
241
- field_id: $tr.data('field_id')
242
- },
243
- dataType: 'json',
244
- type: 'POST',
245
- beforeSend: function (response) {
246
- $toggle.addClass('woocommerce-input-toggle--loading');
247
- },
248
- success: function (response) {
249
-
250
- if (true === response.data) {
251
- $toggle.removeClass('woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled');
252
- $toggle.addClass('woocommerce-input-toggle--enabled');
253
- $toggle.removeClass('woocommerce-input-toggle--loading');
254
- } else if (true !== response.data) {
255
- $toggle.removeClass('woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled');
256
- $toggle.addClass('woocommerce-input-toggle--disabled');
257
- $toggle.removeClass('woocommerce-input-toggle--loading');
258
- } //else if ('needs_setup' === response.data) {
259
- //window.location.href = $link.attr('href');
260
- //}
261
- }
262
-
263
- });
264
-
265
- return false;
266
- });
267
-
268
- $(document).on('change', '.wooccm-field-change-attribute', function (e) {
269
- e.preventDefault();
270
-
271
- var $change = $(this),
272
- $tr = $change.closest('tr');
273
-
274
- $.ajax({
275
- url: wooccm_admin.ajax_url,
276
- data: {
277
- action: 'wooccm_change_field_attribute',
278
- nonce: wooccm_admin.nonce,
279
- field_attr: $change.data('field_attr'),
280
- field_value: $change.val(),
281
- field_id: $tr.data('field_id'),
282
- },
283
- dataType: 'json',
284
- type: 'POST',
285
- beforeSend: function (response) {
286
- $change.prop('disabled', true);
287
- },
288
- success: function (response) {
289
- console.log(response.data);
290
- },
291
- complete: function (response) {
292
- $change.prop('disabled', false);
293
- },
294
- });
295
- return false;
296
- });
297
-
298
  })(jQuery);
225
 
226
  });
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  })(jQuery);
assets/js/wooccm-admin.min.js CHANGED
@@ -1 +1 @@
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-tab-panels",function(i,h){var g=b(i.target),f=g.find("ul.wc-tabs"),d=f.find('a[href="'+h+'"]');f.show();f.find("a").click(function(k){k.preventDefault();var j=b(this).closest("div.panel-wrap");f.find("li",j).removeClass("active");b(this).parent().addClass("active");b("div.panel",j).hide();b(b(this).attr("href")).show()});if(d.length&&b(d.attr("href")).length){d.click()}else{f.find("li.active").find("a").click()}});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-attribute",function(h){h.preventDefault();var d=b(this),g=d.closest("tr"),f=d.find(".woocommerce-input-toggle");b.ajax({url:wooccm_admin.ajax_url,data:{action:"wooccm_toggle_field_attribute",nonce:wooccm_admin.nonce,field_attr:b(this).data("field_attr"),field_id:g.data("field_id")},dataType:"json",type:"POST",beforeSend:function(e){f.addClass("woocommerce-input-toggle--loading")},success:function(e){if(true===e.data){f.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");f.addClass("woocommerce-input-toggle--enabled");f.removeClass("woocommerce-input-toggle--loading")}else{if(true!==e.data){f.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");f.addClass("woocommerce-input-toggle--disabled");f.removeClass("woocommerce-input-toggle--loading")}}}});return false});b(document).on("change",".wooccm-field-change-attribute",function(g){g.preventDefault();var d=b(this),f=d.closest("tr");b.ajax({url:wooccm_admin.ajax_url,data:{action:"wooccm_change_field_attribute",nonce:wooccm_admin.nonce,field_attr:d.data("field_attr"),field_value:d.val(),field_id:f.data("field_id"),},dataType:"json",type:"POST",beforeSend:function(e){d.prop("disabled",true)},success:function(e){console.log(e.data)},complete:function(e){d.prop("disabled",false)},});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-tab-panels",function(i,h){var g=b(i.target),f=g.find("ul.wc-tabs"),d=f.find('a[href="'+h+'"]');f.show();f.find("a").click(function(k){k.preventDefault();var j=b(this).closest("div.panel-wrap");f.find("li",j).removeClass("active");b(this).parent().addClass("active");b("div.panel",j).hide();b(b(this).attr("href")).show()});if(d.length&&b(d.attr("href")).length){d.click()}else{f.find("li.active").find("a").click()}});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)})}}})})})(jQuery);
assets/js/{wooccm-modal.js → wooccm-field.js} RENAMED
@@ -24,7 +24,7 @@
24
  };
25
 
26
  var Field = Backbone.Model.extend({
27
- defaults: wooccm_admin.field.args
28
  });
29
 
30
  var FieldView = Backbone.View.extend({
@@ -79,10 +79,10 @@
79
  }
80
 
81
  $.ajax({
82
- url: wooccm_admin.ajax_url,
83
  data: {
84
  action: 'wooccm_load_field',
85
- nonce: wooccm_admin.nonce,
86
  field_id: this.model.attributes.id
87
  },
88
  dataType: 'json',
@@ -205,10 +205,10 @@
205
  //console.log(modal.model.attributes);
206
 
207
  $.ajax({
208
- url: wooccm_admin.ajax_url,
209
  data: {
210
  action: 'wooccm_save_field',
211
- nonce: wooccm_admin.nonce,
212
  field_id: modal.model.attributes.id,
213
  field_data: modal.model.attributes//$form.serializeArrayAll()
214
  },
@@ -272,6 +272,48 @@
272
  new FieldModal(e);
273
  });
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  $('.wooccm_billing_settings_edit, .wooccm_shipping_settings_edit, .wooccm_additional_settings_edit').on('click', function (e) {
276
  e.preventDefault();
277
 
@@ -285,17 +327,17 @@
285
  $field = $button.closest('[data-field_id]'),
286
  field_id = $field.data('field_id');
287
 
288
- var c = confirm(wooccm_admin.message.remove);
289
 
290
  if (!c) {
291
  return false;
292
  }
293
 
294
  $.ajax({
295
- url: wooccm_admin.ajax_url,
296
  data: {
297
  action: 'wooccm_delete_field',
298
- nonce: wooccm_admin.nonce,
299
  field_id: field_id,
300
  },
301
  dataType: 'json',
@@ -322,5 +364,76 @@
322
  return false;
323
  });
324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
325
 
326
  })(jQuery);
24
  };
25
 
26
  var Field = Backbone.Model.extend({
27
+ defaults: wooccm_field.args
28
  });
29
 
30
  var FieldView = Backbone.View.extend({
79
  }
80
 
81
  $.ajax({
82
+ url: wooccm_field.ajax_url,
83
  data: {
84
  action: 'wooccm_load_field',
85
+ nonce: wooccm_field.nonce,
86
  field_id: this.model.attributes.id
87
  },
88
  dataType: 'json',
205
  //console.log(modal.model.attributes);
206
 
207
  $.ajax({
208
+ url: wooccm_field.ajax_url,
209
  data: {
210
  action: 'wooccm_save_field',
211
+ nonce: wooccm_field.nonce,
212
  field_id: modal.model.attributes.id,
213
  field_data: modal.model.attributes//$form.serializeArrayAll()
214
  },
272
  new FieldModal(e);
273
  });
274
 
275
+
276
+ $('#wooccm_billing_settings_reset, #wooccm_shipping_settings_reset, #wooccm_additional_settings_reset').on('click', function (e) {
277
+ e.preventDefault();
278
+
279
+ var $button = $(e.target);
280
+
281
+ var c = confirm(wooccm_field.message.reset);
282
+
283
+ if (!c) {
284
+ return false;
285
+ }
286
+
287
+ $.ajax({
288
+ url: wooccm_field.ajax_url,
289
+ data: {
290
+ action: 'wooccm_reset_fields',
291
+ nonce: wooccm_field.nonce
292
+ },
293
+ dataType: 'json',
294
+ type: 'POST',
295
+ beforeSend: function () {
296
+ },
297
+ complete: function () {
298
+ //$('table.form-table').trigger('wooccm-panel-reload');
299
+ },
300
+ error: function () {
301
+ alert('Error!');
302
+ },
303
+ success: function (response) {
304
+ if (response.success) {
305
+
306
+ location.reload();
307
+
308
+ } else {
309
+ alert(response.data);
310
+ }
311
+ }
312
+ });
313
+
314
+ return false;
315
+ });
316
+
317
  $('.wooccm_billing_settings_edit, .wooccm_shipping_settings_edit, .wooccm_additional_settings_edit').on('click', function (e) {
318
  e.preventDefault();
319
 
327
  $field = $button.closest('[data-field_id]'),
328
  field_id = $field.data('field_id');
329
 
330
+ var c = confirm(wooccm_field.message.remove);
331
 
332
  if (!c) {
333
  return false;
334
  }
335
 
336
  $.ajax({
337
+ url: wooccm_field.ajax_url,
338
  data: {
339
  action: 'wooccm_delete_field',
340
+ nonce: wooccm_field.nonce,
341
  field_id: field_id,
342
  },
343
  dataType: 'json',
364
  return false;
365
  });
366
 
367
+ $(document).on('click', '.wooccm-field-toggle-attribute', function (e) {
368
+ e.preventDefault();
369
+
370
+ var $link = $(this),
371
+ $tr = $link.closest('tr'),
372
+ $toggle = $link.find('.woocommerce-input-toggle');
373
+
374
+ $.ajax({
375
+ url: wooccm_field.ajax_url,
376
+ data: {
377
+ action: 'wooccm_toggle_field_attribute',
378
+ nonce: wooccm_field.nonce,
379
+ field_attr: $(this).data('field_attr'),
380
+ field_id: $tr.data('field_id')
381
+ },
382
+ dataType: 'json',
383
+ type: 'POST',
384
+ beforeSend: function (response) {
385
+ $toggle.addClass('woocommerce-input-toggle--loading');
386
+ },
387
+ success: function (response) {
388
+
389
+ if (true === response.data) {
390
+ $toggle.removeClass('woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled');
391
+ $toggle.addClass('woocommerce-input-toggle--enabled');
392
+ $toggle.removeClass('woocommerce-input-toggle--loading');
393
+ } else if (true !== response.data) {
394
+ $toggle.removeClass('woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled');
395
+ $toggle.addClass('woocommerce-input-toggle--disabled');
396
+ $toggle.removeClass('woocommerce-input-toggle--loading');
397
+ } //else if ('needs_setup' === response.data) {
398
+ //window.location.href = $link.attr('href');
399
+ //}
400
+ }
401
+
402
+ });
403
+
404
+ return false;
405
+ });
406
+
407
+ $(document).on('change', '.wooccm-field-change-attribute', function (e) {
408
+ e.preventDefault();
409
+
410
+ var $change = $(this),
411
+ $tr = $change.closest('tr');
412
+
413
+ $.ajax({
414
+ url: wooccm_field.ajax_url,
415
+ data: {
416
+ action: 'wooccm_change_field_attribute',
417
+ nonce: wooccm_field.nonce,
418
+ field_attr: $change.data('field_attr'),
419
+ field_value: $change.val(),
420
+ field_id: $tr.data('field_id'),
421
+ },
422
+ dataType: 'json',
423
+ type: 'POST',
424
+ beforeSend: function (response) {
425
+ $change.prop('disabled', true);
426
+ },
427
+ success: function (response) {
428
+ console.log(response.data);
429
+ },
430
+ complete: function (response) {
431
+ $change.prop('disabled', false);
432
+ },
433
+ });
434
+ return false;
435
+ });
436
+
437
+
438
 
439
  })(jQuery);
assets/js/wooccm-field.min.js ADDED
@@ -0,0 +1 @@
 
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_field.args});var i=Backbone.View.extend({events:{"click .media-modal-backdrop":"close","click .media-modal-close":"close","click .media-modal-prev":"edit","click .media-modal-next":"edit","change input":"change","change textarea":"change","change select":"change","change .media-modal-change":"render","submit .media-modal-form":"save",},templates:{},initialize:function(){_.bindAll(this,"open","edit","change","load","render","close","save");this.init();this.open()},init:function(){this.templates.window=wp.template("wooccm-modal-window")},render:function(){var k=this;var j=this.$el.find("ul.wc-tabs li.active a").attr("href");k.$el.html(k.templates.window(k.model.attributes));_.delay(function(){k.$el.trigger("wooccm-enhanced-select");k.$el.trigger("wooccm-tab-panels",j);k.$el.trigger("init_tooltips")},100)},load:function(){var j=this;if(j.model.attributes.id==undefined){j.render();return}e.ajax({url:wooccm_field.ajax_url,data:{action:"wooccm_load_field",nonce:wooccm_field.nonce,field_id:this.model.attributes.id},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(k){if(k.success){j.model.set(k.data);j.render()}else{alert(k.data)}}})},edit:function(n){n.preventDefault();var l=this,m=e(n.target),k=parseInt(e(".wc_gateways tr[data-field_id]").length-1),j=parseInt(l.model.get("id"));g++;if(b){clearTimeout(b)}b=setTimeout(function(){if(m.hasClass("media-modal-next")){j=Math.min(j+g,k)}else{j=Math.max(j-g,0)}l.model.set({id:j});g=0;l.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();if(m.target.type==="checkbox"){l=k.prop("checked")===true?1:0}this.model.attributes[j]=l;this.model.changed[j]=l},close:function(j){j.preventDefault();this.undelegateEvents();e(document).off("focusin");e("body").removeClass("modal-open");this.remove()},save:function(m){m.preventDefault();var l=this,k=l.$el.find("#wooccm_modal"),j=k.find(".attachment-details");e.ajax({url:wooccm_field.ajax_url,data:{action:"wooccm_save_field",nonce:wooccm_field.nonce,field_id:l.model.attributes.id,field_data:l.model.attributes},dataType:"json",type:"POST",beforeSend:function(){j.addClass("save-waiting");c(k)},complete:function(){j.addClass("save-complete");j.removeClass("save-waiting");f(k)},error:function(){alert("Error!")},success:function(n){if(n.success){if(n.data.id!=l.model.attributes.id){location.reload();return}}else{alert(n.data)}}});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_add, #wooccm_shipping_settings_add, #wooccm_additional_settings_add").on("click",function(j){j.preventDefault();new a(j)});e("#wooccm_billing_settings_reset, #wooccm_shipping_settings_reset, #wooccm_additional_settings_reset").on("click",function(k){k.preventDefault();var j=e(k.target);var l=confirm(wooccm_field.message.reset);if(!l){return false}e.ajax({url:wooccm_field.ajax_url,data:{action:"wooccm_reset_fields",nonce:wooccm_field.nonce},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(m){if(m.success){location.reload()}else{alert(m.data)}}});return false});e(".wooccm_billing_settings_edit, .wooccm_shipping_settings_edit, .wooccm_additional_settings_edit").on("click",function(j){j.preventDefault();new a(j)});e(".wooccm_billing_settings_delete, .wooccm_shipping_settings_delete, .wooccm_additional_settings_delete").on("click",function(m){m.preventDefault();var l=e(m.target),k=l.closest("[data-field_id]"),j=k.data("field_id");var n=confirm(wooccm_field.message.remove);if(!n){return false}e.ajax({url:wooccm_field.ajax_url,data:{action:"wooccm_delete_field",nonce:wooccm_field.nonce,field_id:j,},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(o){if(o.success){k.remove()}else{alert(o.data)}}});return false});e(document).on("click",".wooccm-field-toggle-attribute",function(m){m.preventDefault();var j=e(this),l=j.closest("tr"),k=j.find(".woocommerce-input-toggle");e.ajax({url:wooccm_field.ajax_url,data:{action:"wooccm_toggle_field_attribute",nonce:wooccm_field.nonce,field_attr:e(this).data("field_attr"),field_id:l.data("field_id")},dataType:"json",type:"POST",beforeSend:function(n){k.addClass("woocommerce-input-toggle--loading")},success:function(n){if(true===n.data){k.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");k.addClass("woocommerce-input-toggle--enabled");k.removeClass("woocommerce-input-toggle--loading")}else{if(true!==n.data){k.removeClass("woocommerce-input-toggle--enabled, woocommerce-input-toggle--disabled");k.addClass("woocommerce-input-toggle--disabled");k.removeClass("woocommerce-input-toggle--loading")}}}});return false});e(document).on("change",".wooccm-field-change-attribute",function(l){l.preventDefault();var j=e(this),k=j.closest("tr");e.ajax({url:wooccm_field.ajax_url,data:{action:"wooccm_change_field_attribute",nonce:wooccm_field.nonce,field_attr:j.data("field_attr"),field_value:j.val(),field_id:k.data("field_id"),},dataType:"json",type:"POST",beforeSend:function(m){j.prop("disabled",true)},success:function(m){console.log(m.data)},complete:function(m){j.prop("disabled",false)},});return false})})(jQuery);
assets/js/wooccm-modal.min.js DELETED
@@ -1 +0,0 @@
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_admin.field.args});var i=Backbone.View.extend({events:{"click .media-modal-backdrop":"close","click .media-modal-close":"close","click .media-modal-prev":"edit","click .media-modal-next":"edit","change input":"change","change textarea":"change","change select":"change","change .media-modal-change":"render","submit .media-modal-form":"save",},templates:{},initialize:function(){_.bindAll(this,"open","edit","change","load","render","close","save");this.init();this.open()},init:function(){this.templates.window=wp.template("wooccm-modal-window")},render:function(){var k=this;var j=this.$el.find("ul.wc-tabs li.active a").attr("href");k.$el.html(k.templates.window(k.model.attributes));_.delay(function(){k.$el.trigger("wooccm-enhanced-select");k.$el.trigger("wooccm-tab-panels",j);k.$el.trigger("init_tooltips")},100)},load:function(){var j=this;if(j.model.attributes.id==undefined){j.render();return}e.ajax({url:wooccm_admin.ajax_url,data:{action:"wooccm_load_field",nonce:wooccm_admin.nonce,field_id:this.model.attributes.id},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(k){if(k.success){j.model.set(k.data);j.render()}else{alert(k.data)}}})},edit:function(n){n.preventDefault();var l=this,m=e(n.target),k=parseInt(e(".wc_gateways tr[data-field_id]").length-1),j=parseInt(l.model.get("id"));g++;if(b){clearTimeout(b)}b=setTimeout(function(){if(m.hasClass("media-modal-next")){j=Math.min(j+g,k)}else{j=Math.max(j-g,0)}l.model.set({id:j});g=0;l.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();if(m.target.type==="checkbox"){l=k.prop("checked")===true?1:0}this.model.attributes[j]=l;this.model.changed[j]=l},close:function(j){j.preventDefault();this.undelegateEvents();e(document).off("focusin");e("body").removeClass("modal-open");this.remove()},save:function(m){m.preventDefault();var l=this,k=l.$el.find("#wooccm_modal"),j=k.find(".attachment-details");e.ajax({url:wooccm_admin.ajax_url,data:{action:"wooccm_save_field",nonce:wooccm_admin.nonce,field_id:l.model.attributes.id,field_data:l.model.attributes},dataType:"json",type:"POST",beforeSend:function(){j.addClass("save-waiting");c(k)},complete:function(){j.addClass("save-complete");j.removeClass("save-waiting");f(k)},error:function(){alert("Error!")},success:function(n){if(n.success){if(n.data.id!=l.model.attributes.id){location.reload();return}}else{alert(n.data)}}});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_add, #wooccm_shipping_settings_add, #wooccm_additional_settings_add").on("click",function(j){j.preventDefault();new a(j)});e(".wooccm_billing_settings_edit, .wooccm_shipping_settings_edit, .wooccm_additional_settings_edit").on("click",function(j){j.preventDefault();new a(j)});e(".wooccm_billing_settings_delete, .wooccm_shipping_settings_delete, .wooccm_additional_settings_delete").on("click",function(m){m.preventDefault();var l=e(m.target),k=l.closest("[data-field_id]"),j=k.data("field_id");var n=confirm(wooccm_admin.message.remove);if(!n){return false}e.ajax({url:wooccm_admin.ajax_url,data:{action:"wooccm_delete_field",nonce:wooccm_admin.nonce,field_id:j,},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){},error:function(){alert("Error!")},success:function(o){if(o.success){k.remove()}else{alert(o.data)}}});return false})})(jQuery);
 
assets/less/wooccm.less CHANGED
@@ -1,6 +1,6 @@
1
- .woocommerce form .form-row {
2
 
3
- &.wooccm-clearfix {
4
  //float: none;
5
  //clear:both;
6
  &:before,
1
+ .woocommerce form {
2
 
3
+ .wooccm-clearfix {
4
  //float: none;
5
  //clear:both;
6
  &:before,
includes/admin.php CHANGED
@@ -408,7 +408,7 @@ function wooccm_options_page() {
408
  ),
409
  );
410
 
411
- $shipping = array(
412
  'country' => __('Country', 'woocommerce-checkout-manager'),
413
  'first_name' => __('First Name', 'woocommerce-checkout-manager'),
414
  'last_name' => __('Last Name', 'woocommerce-checkout-manager'),
@@ -557,10 +557,10 @@ function wooccm_options_page() {
557
  }
558
 
559
  $bill++;
560
- }
561
  add_option('wccs_settings', $defaults);
562
- add_option('wccs_settings2', $defaults2);
563
- add_option('wccs_settings3', $defaults3);
564
 
565
  // @mod - Change this to add_query_arg()
566
  echo '
408
  ),
409
  );
410
 
411
+ /*$shipping = array(
412
  'country' => __('Country', 'woocommerce-checkout-manager'),
413
  'first_name' => __('First Name', 'woocommerce-checkout-manager'),
414
  'last_name' => __('Last Name', 'woocommerce-checkout-manager'),
557
  }
558
 
559
  $bill++;
560
+ }*/
561
  add_option('wccs_settings', $defaults);
562
+ //add_option('wccs_settings2', $defaults2);
563
+ //add_option('wccs_settings3', $defaults3);
564
 
565
  // @mod - Change this to add_query_arg()
566
  echo '
includes/install.php CHANGED
@@ -33,7 +33,7 @@ function wooccm_install() {
33
  if (empty($options['checkness']['shipping_method_t'])) {
34
  $options['checkness']['shipping_method_t'] = '1';
35
  }
36
- if (empty($options2['shipping_buttons'])) {
37
  $shipping = array(
38
  'country' => 'Country',
39
  'first_name' => 'First Name',
@@ -241,11 +241,9 @@ function wooccm_install() {
241
  $options2['shipping_buttons'][$i]['type'] = ( $btn['type'] == 'text' ) ? 'wooccmtext' : $btn['type'];
242
  $options2['shipping_buttons'][$i]['type'] = ( $btn['type'] == 'select' ) ? 'wooccmselect' : $btn['type'];
243
  $options2['shipping_buttons'][$i]['type'] = ( $btn['type'] == 'date' ) ? 'datepicker' : $btn['type'];
244
- }
245
 
246
  update_option('wccs_settings', $options);
247
- update_option('wccs_settings2', $options2);
248
- update_option('wccs_settings3', $options3);
249
- }
250
-
251
- ?>
33
  if (empty($options['checkness']['shipping_method_t'])) {
34
  $options['checkness']['shipping_method_t'] = '1';
35
  }
36
+ /*if (empty($options2['shipping_buttons'])) {
37
  $shipping = array(
38
  'country' => 'Country',
39
  'first_name' => 'First Name',
241
  $options2['shipping_buttons'][$i]['type'] = ( $btn['type'] == 'text' ) ? 'wooccmtext' : $btn['type'];
242
  $options2['shipping_buttons'][$i]['type'] = ( $btn['type'] == 'select' ) ? 'wooccmselect' : $btn['type'];
243
  $options2['shipping_buttons'][$i]['type'] = ( $btn['type'] == 'date' ) ? 'datepicker' : $btn['type'];
244
+ }*/
245
 
246
  update_option('wccs_settings', $options);
247
+ //update_option('wccs_settings2', $options2);
248
+ //update_option('wccs_settings3', $options3);
249
+ }
 
 
new/class-wooccm-admin.php CHANGED
@@ -13,18 +13,21 @@ if (!class_exists('WOOCCM_Field_Admin')) {
13
 
14
  wp_register_style('wooccm-admin', plugins_url('assets/css/wooccm-admin.css', WOOCCM_PLUGIN_FILE), array('media-views', /* 'woocommerce_admin_marketplace_styles' */), WOOCCM_PLUGIN_VERSION, 'all');
15
 
16
- wp_register_script('wooccm-modal', plugins_url('assets/js/wooccm-modal.js', WOOCCM_PLUGIN_FILE), array('jquery', 'jquery-ui-datepicker', 'backbone'), WOOCCM_PLUGIN_VERSION, true);
17
 
18
  wp_register_script('wooccm-admin', plugins_url('assets/js/wooccm-admin.js', WOOCCM_PLUGIN_FILE), array('jquery'), WOOCCM_PLUGIN_VERSION, true);
19
 
20
- wp_localize_script('wooccm-admin', 'wooccm_admin', array(
 
 
 
21
  'ajax_url' => admin_url('admin-ajax.php?section=' . $current_section),
22
  'nonce' => wp_create_nonce('wooccm_admin'),
23
  'field' => array(
24
  'args' => WOOCCM()->field->billing->get_args(),
25
  ),
26
  'message' => array(
27
- 'remove' => esc_html__('Are you sure you want to remove this field?', 'woocommerce-checkout-manager')
 
28
  )
29
  ));
30
 
13
 
14
  wp_register_style('wooccm-admin', plugins_url('assets/css/wooccm-admin.css', WOOCCM_PLUGIN_FILE), array('media-views', /* 'woocommerce_admin_marketplace_styles' */), WOOCCM_PLUGIN_VERSION, 'all');
15
 
 
16
 
17
  wp_register_script('wooccm-admin', plugins_url('assets/js/wooccm-admin.js', WOOCCM_PLUGIN_FILE), array('jquery'), WOOCCM_PLUGIN_VERSION, true);
18
 
19
+
20
+ wp_register_script('wooccm-field', plugins_url('assets/js/wooccm-field.js', WOOCCM_PLUGIN_FILE), array('jquery', 'jquery-ui-datepicker', 'backbone'), WOOCCM_PLUGIN_VERSION, true);
21
+
22
+ wp_localize_script('wooccm-field', 'wooccm_admin', array(
23
  'ajax_url' => admin_url('admin-ajax.php?section=' . $current_section),
24
  'nonce' => wp_create_nonce('wooccm_admin'),
25
  'field' => array(
26
  'args' => WOOCCM()->field->billing->get_args(),
27
  ),
28
  'message' => array(
29
+ 'remove' => esc_html__('Are you sure you want to remove this field?', 'woocommerce-checkout-manager'),
30
+ 'reset' => esc_html__('Are you sure you want to reset this fields?', 'woocommerce-checkout-manager')
31
  )
32
  ));
33
 
new/controller/class-field-controller.php CHANGED
@@ -6,6 +6,28 @@ class WOOCCM_Field_Controller {
6
  public $shipping;
7
  public $additional;
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  public function get_product_categories() {
10
 
11
  $args = array(
@@ -70,7 +92,7 @@ class WOOCCM_Field_Controller {
70
 
71
  public function ajax_toggle_field_attribute() {
72
 
73
- if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_admin', 'nonce') && isset($_REQUEST['field_id']) && isset($_REQUEST['field_attr'])) {
74
 
75
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
76
  $attr = wc_clean(wp_unslash($_REQUEST['field_attr']));
@@ -85,7 +107,7 @@ class WOOCCM_Field_Controller {
85
 
86
  public function ajax_change_field_attribute() {
87
 
88
- if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_admin', 'nonce') && isset($_REQUEST['field_id']) && isset($_REQUEST['field_attr']) && isset($_REQUEST['field_value'])) {
89
 
90
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
91
  $attr = wc_clean(wp_unslash($_REQUEST['field_attr']));
@@ -103,7 +125,7 @@ class WOOCCM_Field_Controller {
103
 
104
  public function ajax_save_field() {
105
 
106
- if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_admin', 'nonce') && isset($_REQUEST['field_data'])) {
107
 
108
  $field_data = $_REQUEST['field_data'];
109
 
@@ -129,7 +151,7 @@ class WOOCCM_Field_Controller {
129
 
130
  public function ajax_delete_field() {
131
 
132
- if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_admin', 'nonce') && isset($_REQUEST['field_id'])) {
133
 
134
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
135
 
@@ -142,9 +164,29 @@ class WOOCCM_Field_Controller {
142
  wp_send_json_error(esc_html__('Unknow error', 'woocommerce-checkout-manager'));
143
  }
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  public function ajax_load_field() {
146
 
147
- if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_admin', 'nonce') && isset($_REQUEST['field_id'])) {
148
 
149
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
150
 
@@ -300,6 +342,7 @@ class WOOCCM_Field_Controller {
300
  $types = WOOCCM()->field->billing->get_types();
301
  $conditionals = WOOCCM()->field->billing->get_conditional_types();
302
  $multiple = WOOCCM()->field->billing->get_multiple_types();
 
303
  $product_categories = $this->get_product_categories();
304
 
305
  include_once(WOOCCM_PLUGIN_DIR . 'new/view/backend/pages/billing.php');
@@ -317,6 +360,7 @@ class WOOCCM_Field_Controller {
317
  $types = WOOCCM()->field->shipping->get_types();
318
  $conditionals = WOOCCM()->field->shipping->get_conditional_types();
319
  $multiple = WOOCCM()->field->shipping->get_multiple_types();
 
320
  $product_categories = $this->get_product_categories();
321
 
322
  include_once(WOOCCM_PLUGIN_DIR . 'new/view/backend/pages/shipping.php');
@@ -334,6 +378,7 @@ class WOOCCM_Field_Controller {
334
  $types = WOOCCM()->field->additional->get_types();
335
  $conditionals = WOOCCM()->field->additional->get_conditional_types();
336
  $multiple = WOOCCM()->field->additional->get_multiple_types();
 
337
  $product_categories = $this->get_product_categories();
338
 
339
  include_once(WOOCCM_PLUGIN_DIR . 'new/view/backend/pages/additional.php');
@@ -363,10 +408,12 @@ class WOOCCM_Field_Controller {
363
  }
364
 
365
  function init() {
 
366
  add_action('wp_ajax_wooccm_select_search_products', array($this, 'ajax_select_search_products'));
367
  add_action('wp_ajax_wooccm_load_field', array($this, 'ajax_load_field'));
368
  add_action('wp_ajax_wooccm_save_field', array($this, 'ajax_save_field'));
369
  add_action('wp_ajax_wooccm_delete_field', array($this, 'ajax_delete_field'));
 
370
  add_action('wp_ajax_wooccm_change_field_attribute', array($this, 'ajax_change_field_attribute'));
371
  add_action('wp_ajax_wooccm_toggle_field_attribute', array($this, 'ajax_toggle_field_attribute'));
372
 
6
  public $shipping;
7
  public $additional;
8
 
9
+ function enqueue_scripts() {
10
+
11
+ global $current_section;
12
+
13
+ wp_register_script('wooccm-field', plugins_url('assets/js/wooccm-field.js', WOOCCM_PLUGIN_FILE), array('jquery', 'jquery-ui-datepicker', 'backbone'), WOOCCM_PLUGIN_VERSION, true);
14
+
15
+ wp_localize_script('wooccm-field', 'wooccm_field', array(
16
+ 'ajax_url' => admin_url('admin-ajax.php?section=' . $current_section),
17
+ 'nonce' => wp_create_nonce('wooccm_field'),
18
+ 'args' => WOOCCM()->field->billing->get_args(),
19
+ 'message' => array(
20
+ 'remove' => esc_html__('Are you sure you want to remove this field?', 'woocommerce-checkout-manager'),
21
+ 'reset' => esc_html__('Are you sure you want to reset this fields?', 'woocommerce-checkout-manager')
22
+ )
23
+ ));
24
+
25
+
26
+ if (isset($_GET['tab']) && $_GET['tab'] === WOOCCM_PREFIX) {
27
+ wp_enqueue_script('wooccm-field');
28
+ }
29
+ }
30
+
31
  public function get_product_categories() {
32
 
33
  $args = array(
92
 
93
  public function ajax_toggle_field_attribute() {
94
 
95
+ if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_field', 'nonce') && isset($_REQUEST['field_id']) && isset($_REQUEST['field_attr'])) {
96
 
97
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
98
  $attr = wc_clean(wp_unslash($_REQUEST['field_attr']));
107
 
108
  public function ajax_change_field_attribute() {
109
 
110
+ if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_field', 'nonce') && isset($_REQUEST['field_id']) && isset($_REQUEST['field_attr']) && isset($_REQUEST['field_value'])) {
111
 
112
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
113
  $attr = wc_clean(wp_unslash($_REQUEST['field_attr']));
125
 
126
  public function ajax_save_field() {
127
 
128
+ if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_field', 'nonce') && isset($_REQUEST['field_data'])) {
129
 
130
  $field_data = $_REQUEST['field_data'];
131
 
151
 
152
  public function ajax_delete_field() {
153
 
154
+ if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_field', 'nonce') && isset($_REQUEST['field_id'])) {
155
 
156
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
157
 
164
  wp_send_json_error(esc_html__('Unknow error', 'woocommerce-checkout-manager'));
165
  }
166
 
167
+ public function ajax_reset_fields() {
168
+
169
+ if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_field', 'nonce')) {
170
+
171
+ if (array_key_exists('section', $_REQUEST)) {
172
+
173
+ $section = wc_clean(wp_unslash($_REQUEST['section']));
174
+
175
+ if (isset(WOOCCM()->field->$section)) {
176
+
177
+ WOOCCM()->field->$section->delete_fields();
178
+
179
+ wp_send_json_success();
180
+ }
181
+ }
182
+ }
183
+
184
+ wp_send_json_error(esc_html__('Unknow error', 'woocommerce-checkout-manager'));
185
+ }
186
+
187
  public function ajax_load_field() {
188
 
189
+ if (current_user_can('manage_woocommerce') && check_ajax_referer('wooccm_field', 'nonce') && isset($_REQUEST['field_id'])) {
190
 
191
  $field_id = wc_clean(wp_unslash($_REQUEST['field_id']));
192
 
342
  $types = WOOCCM()->field->billing->get_types();
343
  $conditionals = WOOCCM()->field->billing->get_conditional_types();
344
  $multiple = WOOCCM()->field->billing->get_multiple_types();
345
+ $template = WOOCCM()->field->billing->get_template_types();
346
  $product_categories = $this->get_product_categories();
347
 
348
  include_once(WOOCCM_PLUGIN_DIR . 'new/view/backend/pages/billing.php');
360
  $types = WOOCCM()->field->shipping->get_types();
361
  $conditionals = WOOCCM()->field->shipping->get_conditional_types();
362
  $multiple = WOOCCM()->field->shipping->get_multiple_types();
363
+ $template = WOOCCM()->field->billing->get_template_types();
364
  $product_categories = $this->get_product_categories();
365
 
366
  include_once(WOOCCM_PLUGIN_DIR . 'new/view/backend/pages/shipping.php');
378
  $types = WOOCCM()->field->additional->get_types();
379
  $conditionals = WOOCCM()->field->additional->get_conditional_types();
380
  $multiple = WOOCCM()->field->additional->get_multiple_types();
381
+ $template = WOOCCM()->field->billing->get_template_types();
382
  $product_categories = $this->get_product_categories();
383
 
384
  include_once(WOOCCM_PLUGIN_DIR . 'new/view/backend/pages/additional.php');
408
  }
409
 
410
  function init() {
411
+ add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
412
  add_action('wp_ajax_wooccm_select_search_products', array($this, 'ajax_select_search_products'));
413
  add_action('wp_ajax_wooccm_load_field', array($this, 'ajax_load_field'));
414
  add_action('wp_ajax_wooccm_save_field', array($this, 'ajax_save_field'));
415
  add_action('wp_ajax_wooccm_delete_field', array($this, 'ajax_delete_field'));
416
+ add_action('wp_ajax_wooccm_reset_fields', array($this, 'ajax_reset_fields'));
417
  add_action('wp_ajax_wooccm_change_field_attribute', array($this, 'ajax_change_field_attribute'));
418
  add_action('wp_ajax_wooccm_toggle_field_attribute', array($this, 'ajax_toggle_field_attribute'));
419
 
new/model/class-wooccm-field-old.php CHANGED
@@ -248,10 +248,16 @@ class WOOCCM_Field_Compatibility extends WOOCCM_Field {
248
  }
249
 
250
  function get_old_type($type = '') {
 
 
 
 
251
 
252
  $replace = array_filter($this->old_to_old_types);
253
 
254
- $type = $this->replace_value($type, $replace);
 
 
255
 
256
  return $type;
257
  }
@@ -273,6 +279,10 @@ class WOOCCM_Field_Compatibility extends WOOCCM_Field {
273
  }
274
  }
275
 
 
 
 
 
276
  if (!isset($field['order'])) {
277
  $field['order'] = $field_id + 1;
278
  }
@@ -338,6 +348,10 @@ class WOOCCM_Field_Compatibility extends WOOCCM_Field {
338
 
339
  $field = wp_parse_args($field, array_fill_keys($this->old_args, null));
340
 
 
 
 
 
341
  $field['type'] = $this->get_old_type($field['type']);
342
 
343
  $field['role_option'] = $this->array_to_string($field['role_option']);
@@ -394,7 +408,9 @@ class WOOCCM_Field_Compatibility extends WOOCCM_Field {
394
 
395
  protected function get_fields_old() {
396
 
397
- if ($fields = $this->get_option()) {
 
 
398
 
399
  foreach ($fields as $field_id => $field) {
400
 
@@ -421,7 +437,7 @@ class WOOCCM_Field_Compatibility extends WOOCCM_Field {
421
 
422
  public function get_field($field_id) {
423
 
424
- if ($fields = $this->get_option()) {
425
 
426
  if (array_key_exists($field_id, $fields)) {
427
 
@@ -437,8 +453,6 @@ class WOOCCM_Field_Compatibility extends WOOCCM_Field {
437
 
438
  public function update_fields($fields) {
439
 
440
- //error_log(json_encode($fields));
441
-
442
  if (is_array($fields)) {
443
 
444
  // save in old format
248
  }
249
 
250
  function get_old_type($type = '') {
251
+
252
+ if(!$type) {
253
+ return 'wooccmtext';
254
+ }
255
 
256
  $replace = array_filter($this->old_to_old_types);
257
 
258
+ if ($old = $this->replace_value($type, $replace)) {
259
+ return $old;
260
+ }
261
 
262
  return $type;
263
  }
279
  }
280
  }
281
 
282
+ if (!isset($field['position'])) {
283
+ $field['position'] = $this->array_to_string(array_intersect($field['class'], array('form-row-wide', 'form-row-first', 'form-row-last')));
284
+ }
285
+
286
  if (!isset($field['order'])) {
287
  $field['order'] = $field_id + 1;
288
  }
348
 
349
  $field = wp_parse_args($field, array_fill_keys($this->old_args, null));
350
 
351
+ if (!is_numeric($field['order'])) {
352
+ $field['order'] = $field_id + 1;
353
+ }
354
+
355
  $field['type'] = $this->get_old_type($field['type']);
356
 
357
  $field['role_option'] = $this->array_to_string($field['role_option']);
408
 
409
  protected function get_fields_old() {
410
 
411
+ $defaults = $this->get_default_fields();
412
+
413
+ if ($fields = $this->get_option($defaults)) {
414
 
415
  foreach ($fields as $field_id => $field) {
416
 
437
 
438
  public function get_field($field_id) {
439
 
440
+ if ($fields = $this->get_fields()) {
441
 
442
  if (array_key_exists($field_id, $fields)) {
443
 
453
 
454
  public function update_fields($fields) {
455
 
 
 
456
  if (is_array($fields)) {
457
 
458
  // save in old format
new/model/class-wooccm-field.php CHANGED
@@ -59,6 +59,14 @@ class WOOCCM_Field {
59
  );
60
  }
61
 
 
 
 
 
 
 
 
 
62
  public function get_types() {
63
 
64
  return apply_filters('wooccm_fields_fields_types', array(
@@ -142,4 +150,11 @@ class WOOCCM_Field {
142
  return $this->defaults;
143
  }
144
 
 
 
 
 
 
 
 
145
  }
59
  );
60
  }
61
 
62
+ public function get_template_types() {
63
+
64
+ return array(
65
+ 'button',
66
+ 'heading',
67
+ );
68
+ }
69
+
70
  public function get_types() {
71
 
72
  return apply_filters('wooccm_fields_fields_types', array(
150
  return $this->defaults;
151
  }
152
 
153
+ public function delete_fields() {
154
+
155
+ delete_option($this->option_name);
156
+
157
+ return false;
158
+ }
159
+
160
  }
new/view/backend/pages/modals/parts/panel-general.php CHANGED
@@ -6,7 +6,7 @@
6
  <span class="woocommerce-help-tip" data-tip="<?php esc_html_e('You can\'t change the slug of default fields.', 'woocommerce-checkout-manager'); ?>"></span>
7
  <input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly">
8
  <# } else { #>
9
- <span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Currently is not possible to change the name of the fields.', 'woocommerce-checkout-manager'); ?><?php //esc_html_e('To edit Abbreviations open General > Switches > Editing Of Abbreviation Fields.', 'woocommerce-checkout-manager'); ?>"></span>
10
  <input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly" <?php /* if (empty($options['checkness']['abbreviation'])) { ?>readonly="readonly"<?php } */ ?>>
11
  <# } #>
12
  </p>
@@ -43,13 +43,16 @@
43
  <label><?php esc_html_e('Label', 'woocommerce-checkout-manager'); ?></label>
44
  <input class="short" type="text" name="label" placeholder="<?php esc_html_e('My Field Name', 'woocommerce-checkout-manager'); ?>" value="{{data.label}}">
45
  <span span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Label text of the checkout field.', 'woocommerce-checkout-manager'); ?>"></span>
46
- </p>
 
47
  <p class="form-field">
48
  <label><?php esc_html_e('Placeholder', 'woocommerce-checkout-manager'); ?></label>
49
  <input class="short" type="text" name="placeholder" placeholder="<?php esc_html_e('Example red', 'woocommerce-checkout-manager'); ?>" value="{{data.placeholder}}">
50
  <span span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Placeholder text of the checkout field.', 'woocommerce-checkout-manager'); ?>"></span>
51
  </p>
 
52
  </div>
 
53
  <div class="options_group">
54
  <p class="form-field">
55
  <label><?php esc_html_e('Default', 'woocommerce-checkout-manager'); ?></label>
@@ -62,6 +65,7 @@
62
  </p>
63
  <# } #>
64
  </div>
 
65
  <div class="options_group">
66
  <p class="form-field">
67
  <label><?php esc_html_e('Extra class', 'woocommerce-checkout-manager'); ?></label>
6
  <span class="woocommerce-help-tip" data-tip="<?php esc_html_e('You can\'t change the slug of default fields.', 'woocommerce-checkout-manager'); ?>"></span>
7
  <input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly">
8
  <# } else { #>
9
+ <span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Currently is not possible to change the name of the fields.', 'woocommerce-checkout-manager'); ?><?php //esc_html_e('To edit Abbreviations open General > Switches > Editing Of Abbreviation Fields.', 'woocommerce-checkout-manager'); ?>"></span>
10
  <input class="short" type="text" name="name" placeholder="<?php esc_html_e('myfield', 'woocommerce-checkout-manager'); ?>" value="{{data.name}}" readonly="readonly" <?php /* if (empty($options['checkness']['abbreviation'])) { ?>readonly="readonly"<?php } */ ?>>
11
  <# } #>
12
  </p>
43
  <label><?php esc_html_e('Label', 'woocommerce-checkout-manager'); ?></label>
44
  <input class="short" type="text" name="label" placeholder="<?php esc_html_e('My Field Name', 'woocommerce-checkout-manager'); ?>" value="{{data.label}}">
45
  <span span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Label text of the checkout field.', 'woocommerce-checkout-manager'); ?>"></span>
46
+ </p>
47
+ <# if ( !_.contains(<?php echo json_encode($template); ?>, data.type)) { #>
48
  <p class="form-field">
49
  <label><?php esc_html_e('Placeholder', 'woocommerce-checkout-manager'); ?></label>
50
  <input class="short" type="text" name="placeholder" placeholder="<?php esc_html_e('Example red', 'woocommerce-checkout-manager'); ?>" value="{{data.placeholder}}">
51
  <span span class="woocommerce-help-tip" data-tip="<?php esc_html_e('Placeholder text of the checkout field.', 'woocommerce-checkout-manager'); ?>"></span>
52
  </p>
53
+ <# } #>
54
  </div>
55
+ <# if ( !_.contains(<?php echo json_encode($template); ?>, data.type)) { #>
56
  <div class="options_group">
57
  <p class="form-field">
58
  <label><?php esc_html_e('Default', 'woocommerce-checkout-manager'); ?></label>
65
  </p>
66
  <# } #>
67
  </div>
68
+ <# } #>
69
  <div class="options_group">
70
  <p class="form-field">
71
  <label><?php esc_html_e('Extra class', 'woocommerce-checkout-manager'); ?></label>
new/view/backend/pages/parts/actions.php CHANGED
@@ -1,7 +1,7 @@
1
  <div id="<?php printf('wooccm_%s_settings-actions', $current_section); ?>">
2
  <p>
3
  <a href="javascript:;" id="<?php printf('wooccm_%s_settings_add', $current_section); ?>" class="button button-primary"><?php esc_html_e('+ Add New Field', 'woocommerce-checkout-manager') ?></a>
4
- <!--<a href="javascript:;" id="<?php printf('wooccm_%s_settings_import', $current_section); ?>" class="button button-secondary"><?php esc_html_e('Import', 'woocommerce-checkout-manager') ?></a>
5
- <a href="javascript:;" id="<?php printf('wooccm_%s_settings_reset', $current_section); ?>" class="button button-secondary"><?php esc_html_e('Reset', 'woocommerce-checkout-manager') ?></a>-->
6
  </p>
7
  </div>
1
  <div id="<?php printf('wooccm_%s_settings-actions', $current_section); ?>">
2
  <p>
3
  <a href="javascript:;" id="<?php printf('wooccm_%s_settings_add', $current_section); ?>" class="button button-primary"><?php esc_html_e('+ Add New Field', 'woocommerce-checkout-manager') ?></a>
4
+ <!--<a href="javascript:;" id="<?php printf('wooccm_%s_settings_import', $current_section); ?>" class="button button-secondary"><?php esc_html_e('Import', 'woocommerce-checkout-manager') ?></a>-->
5
+ <a href="javascript:;" id="<?php printf('wooccm_%s_settings_reset', $current_section); ?>" class="button button-secondary"><?php esc_html_e('Reset', 'woocommerce-checkout-manager') ?></a>
6
  </p>
7
  </div>
new/view/frontend/fields/additional.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  if (!class_exists('WOOCCM_Fields_Additional')) {
4
 
5
  class WOOCCM_Fields_Additional extends WOOCCM_Fields_Register {
@@ -26,13 +25,13 @@ if (!class_exists('WOOCCM_Fields_Additional')) {
26
 
27
  foreach ($fields as $field_id => $field) {
28
 
29
- if (!empty($field['cow']) && empty($field['deny_checkout'])) {
30
 
31
  //$key = sprintf("%s_%s", $prefix, $field['cow']);
32
 
33
  $field = $this->add_checkout_field_filter($fields, $field, 'additional');
34
 
35
- if (!empty($field['required']) && !empty($field['cow']) && empty($field['deny_checkout']) && empty($field['disabled'])) {
36
 
37
  if (empty($_POST[$field['cow']])) {
38
  $message = sprintf(__('%s is a required field.', 'woocommerce-checkout-manager'), '<strong>' . wooccm_wpml_string($field['label']) . '</strong>');
@@ -45,19 +44,23 @@ if (!class_exists('WOOCCM_Fields_Additional')) {
45
  }
46
 
47
  function add_checkout_additional_fields($checkout) {
 
 
 
 
 
48
 
49
- if ($fields = WOOCCM()->field->additional->get_fields('old')) {
50
-
51
- foreach ($fields as $field_id => $field) {
52
 
53
- $field = $this->add_checkout_field_filter($field, $field, 'additional');
54
 
55
- if (!empty($field['cow']) && empty($field['deny_checkout']) && empty($field['disabled'])) {
56
-
57
- woocommerce_form_field($field['cow'], $field, $checkout->get_value($field['cow']));
58
  }
59
  }
60
- }
 
 
61
  }
62
 
63
  function init() {
1
  <?php
 
2
  if (!class_exists('WOOCCM_Fields_Additional')) {
3
 
4
  class WOOCCM_Fields_Additional extends WOOCCM_Fields_Register {
25
 
26
  foreach ($fields as $field_id => $field) {
27
 
28
+ if (!empty($field['cow']) /* && empty($field['deny_checkout']) */) {
29
 
30
  //$key = sprintf("%s_%s", $prefix, $field['cow']);
31
 
32
  $field = $this->add_checkout_field_filter($fields, $field, 'additional');
33
 
34
+ if (!empty($field['required']) && !empty($field['cow']) /* && empty($field['deny_checkout']) */ && empty($field['disabled'])) {
35
 
36
  if (empty($_POST[$field['cow']])) {
37
  $message = sprintf(__('%s is a required field.', 'woocommerce-checkout-manager'), '<strong>' . wooccm_wpml_string($field['label']) . '</strong>');
44
  }
45
 
46
  function add_checkout_additional_fields($checkout) {
47
+ ?>
48
+ <div class="wooccm-clearfix"></div>
49
+ <div class="wooccm-additional-fields">
50
+ <?php
51
+ if ($custom_fields = apply_filters('wooccm_additional_fields', WOOCCM()->field->additional->get_fields('old'))) {
52
 
53
+ foreach ($custom_fields as $field_id => $custom_field) {
 
 
54
 
55
+ if (!empty($custom_field['cow']) /* && empty($field['deny_checkout']) */ && empty($custom_field['disabled'])) {
56
 
57
+ woocommerce_form_field($custom_field['cow'], $custom_field, $checkout->get_value($custom_field['cow']));
58
+ }
 
59
  }
60
  }
61
+ ?>
62
+ </div>
63
+ <?php
64
  }
65
 
66
  function init() {
new/view/frontend/fields/register.php CHANGED
@@ -15,7 +15,7 @@ if (!class_exists('WOOCCM_Fields_Register')) {
15
  // Conditonal
16
  // -----------------------------------------------------------------------
17
 
18
- $fields[$key]['conditional_tie'] = sprintf("%s_%s_field", $prefix, @$fields[$key]['conditional_tie']);
19
 
20
  // Class
21
  // -----------------------------------------------------------------------
@@ -142,68 +142,36 @@ if (!class_exists('WOOCCM_Fields_Register')) {
142
  return apply_filters('wooccm_checkout_field_filter', $fields[$key], $key);
143
  }
144
 
145
- // function add_checkout_fields_filter($fields, $name, $key, $prefix = '') {
146
- //
147
- // if ($options = get_option($name)) {
148
- //
149
- // if (array_key_exists($key, $options)) {
150
- //
151
- // if ($custom_fields = $options[$key]) {
152
- //
153
- // foreach ($custom_fields as $id => $custom_field) {
154
- //
155
- // if (!empty($custom_field['cow']) && empty($custom_field['deny_checkout'])) {
156
- //
157
- // $key = sprintf("%s%s", $prefix, $custom_field['cow']);
158
- //
159
- // // Remove disabled fields
160
- // //if (!empty($custom_field['disabled'])) {
161
- // //unset($fields[$key]);
162
- // //} else {
163
- // $fields[$key] = $this->add_checkout_field_filter($fields, $custom_field, $prefix);
164
- // //}
165
- // }
166
- // }
167
- // }
168
- // }
169
- //
170
- //// Resort the fields by order
171
- // $fields[] = uasort($fields, 'wooccm_sort_fields');
172
- //
173
- // if ($fields[0]) {
174
- // unset($fields[0]);
175
- // }
176
- // }
177
- //
178
- // return $fields;
179
- // }
180
-
181
  function add_checkout_fields_filter($fields, $prefix = '') {
182
 
183
- if ($fields = WOOCCM()->field->$prefix->get_fields('old')) {
184
 
185
- foreach ($fields as $field_id => $field) {
 
 
186
 
187
- if (!empty($field['cow']) && empty($field['deny_checkout'])) {
188
 
189
- $key = sprintf("%s_%s", $prefix, $field['cow']);
190
 
191
- $fields[$key] = $this->add_checkout_field_filter($fields, $field, $prefix);
192
  }
193
  }
 
 
194
  }
195
 
196
  return $fields;
197
  }
198
 
199
- function add_checkout_shipping_fields($fields) {
200
- return $this->add_checkout_fields_filter($fields, 'shipping');
201
- }
202
-
203
  function add_checkout_billing_fields($fields) {
204
  return $this->add_checkout_fields_filter($fields, 'billing');
205
  }
206
 
 
 
 
 
207
  function add_checkout_additional_fields($fields) {
208
  return $this->add_checkout_fields_filter($fields, 'additional');
209
  }
15
  // Conditonal
16
  // -----------------------------------------------------------------------
17
 
18
+ $fields[$key]['conditional_tie'] = sprintf("%s_field", @$fields[$key]['conditional_tie']);
19
 
20
  // Class
21
  // -----------------------------------------------------------------------
142
  return apply_filters('wooccm_checkout_field_filter', $fields[$key], $key);
143
  }
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  function add_checkout_fields_filter($fields, $prefix = '') {
146
 
147
+ $frontend_fields = array();
148
 
149
+ if ($custom_fields = WOOCCM()->field->$prefix->get_fields('old')) {
150
+
151
+ foreach ($custom_fields as $field_id => $custom_field) {
152
 
153
+ if (!empty($custom_field['cow']) && empty($custom_field['disabled'])) {
154
 
155
+ $key = sprintf("%s_%s", $prefix, $custom_field['cow']);
156
 
157
+ $frontend_fields[$key] = $this->add_checkout_field_filter($fields, $custom_field, $prefix);
158
  }
159
  }
160
+
161
+ return $frontend_fields;
162
  }
163
 
164
  return $fields;
165
  }
166
 
 
 
 
 
167
  function add_checkout_billing_fields($fields) {
168
  return $this->add_checkout_fields_filter($fields, 'billing');
169
  }
170
 
171
+ function add_checkout_shipping_fields($fields) {
172
+ return $this->add_checkout_fields_filter($fields, 'shipping');
173
+ }
174
+
175
  function add_checkout_additional_fields($fields) {
176
  return $this->add_checkout_fields_filter($fields, 'additional');
177
  }
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.5.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -137,6 +137,9 @@ Example:
137
 
138
  == Changelog ==
139
 
 
 
 
140
  = 4.5.2 =
141
  * Fix: undefined index
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.5.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
137
 
138
  == Changelog ==
139
 
140
+ = 4.5.3 =
141
+ * Fix: woocommerce checkout new admin panel reset option
142
+
143
  = 4.5.2 =
144
  * Fix: undefined index
145
 
woocommerce-checkout-manager.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * Plugin Name: WooCommerce Checkout Manager
5
  * Description: Manages WooCommerce Checkout, the advanced way.
6
- * Version: 4.5.2
7
  * Author: QuadLayers
8
  * Author URI: https://www.quadlayers.com
9
  * Copyright: 2019 QuadLayers (https://www.quadlayers.com)
@@ -17,7 +17,7 @@ if (!defined('WOOCCM_PLUGIN_NAME')) {
17
  define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
18
  }
19
  if (!defined('WOOCCM_PLUGIN_VERSION')) {
20
- define('WOOCCM_PLUGIN_VERSION', '4.5.2');
21
  }
22
  if (!defined('WOOCCM_PLUGIN_FILE')) {
23
  define('WOOCCM_PLUGIN_FILE', __FILE__);
3
  /**
4
  * Plugin Name: WooCommerce Checkout Manager
5
  * Description: Manages WooCommerce Checkout, the advanced way.
6
+ * Version: 4.5.3
7
  * Author: QuadLayers
8
  * Author URI: https://www.quadlayers.com
9
  * Copyright: 2019 QuadLayers (https://www.quadlayers.com)
17
  define('WOOCCM_PLUGIN_NAME', 'WooCommerce Checkout Manager');
18
  }
19
  if (!defined('WOOCCM_PLUGIN_VERSION')) {
20
+ define('WOOCCM_PLUGIN_VERSION', '4.5.3');
21
  }
22
  if (!defined('WOOCCM_PLUGIN_FILE')) {
23
  define('WOOCCM_PLUGIN_FILE', __FILE__);