WooCommerce Square - Version 3.0.1

Version Description

  • 2022-05-09 =
  • Fix - Checkout stuck processing when using a card that doesn't require a postal code. #782
Download this release

Release Info

Developer automattic
Plugin Icon 128x128 WooCommerce Square
Version 3.0.1
Comparing to
See all releases

Code changes from version 3.0.0 to 3.0.1

assets/js/frontend/wc-square.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";jQuery(document).ready($=>{class WC_Square_Payment_Form_Handler{constructor(args){this.id=args.id;this.id_dasherized=args.id_dasherized;this.csc_required=args.csc_required;this.enabled_card_types=args.enabled_card_types;this.square_card_types=args.square_card_types;this.ajax_log_nonce=args.ajax_log_nonce;this.ajax_url=args.ajax_url;this.application_id=args.application_id;this.currency_code=args.currency_code;this.general_error=args.general_error;this.input_styles=args.input_styles;this.is_3ds_enabled=args.is_3d_secure_enabled;this.is_add_payment_method_page=args.is_add_payment_method_page;this.is_checkout_registration_enabled=args.is_checkout_registration_enabled;this.is_user_logged_in=args.is_user_logged_in;this.location_id=args.location_id;this.logging_enabled=args.logging_enabled;this.ajax_wc_checkout_validate_nonce=args.ajax_wc_checkout_validate_nonce;this.is_manual_order_payment=args.is_manual_order_payment;this.current_postal_code_value="";if($("form.checkout").length){this.form=$("form.checkout");this.handle_checkout_page()}else if($("form#order_review").length){this.form=$("form#order_review");this.handle_pay_page()}else if($("form#add_payment_method").length){this.form=$("form#add_payment_method");this.handle_add_payment_method_page()}else{this.log("No payment form found!");return}this.params=window.sv_wc_payment_gateway_payment_form_params;$(document.body).on("checkout_error",()=>{$("input[name=wc-square-credit-card-payment-nonce]").val("");$("input[name=wc-square-credit-card-buyer-verification-token]").val("")});$(document.body).on("change","#payment_method_".concat(this.id),()=>{if(this.payment_form){this.log("Recalculating payment form size");this.payment_form.recalculateSize()}})}handle_checkout_page(){$(document.body).on("updated_checkout",()=>this.set_payment_fields());$(document.body).on("updated_checkout",()=>this.handle_saved_payment_methods());this.form.on("checkout_place_order_".concat(this.id),()=>this.validate_payment_data())}handle_saved_payment_methods(){var id_dasherized=this.id_dasherized;var form_handler=this;var $new_payment_method_selection=$("div.js-wc-".concat(id_dasherized,"-new-payment-method-form"));$("input.js-wc-".concat(this.id_dasherized,"-payment-token")).on("change",()=>{var tokenized_payment_method_selected=$("input.js-wc-".concat(id_dasherized,"-payment-token:checked")).val();if(tokenized_payment_method_selected){$new_payment_method_selection.slideUp(200)}else{$new_payment_method_selection.slideDown(200)}}).trigger("change");$("input#createaccount").on("change",e=>{if($(e.target).is(":checked")){form_handler.show_save_payment_checkbox(id_dasherized)}else{form_handler.hide_save_payment_checkbox(id_dasherized)}});if(!$("input#createaccount").is(":checked")){$("input#createaccount").trigger("change")}if(!this.is_user_logged_in&&!this.is_checkout_registration_enabled){this.hide_save_payment_checkbox(id_dasherized)}}handle_pay_page(){this.set_payment_fields();this.handle_saved_payment_methods();var self=this;this.form.on("submit",function(){if($("#order_review input[name=payment_method]:checked").val()===self.id){return self.validate_payment_data()}})}handle_add_payment_method_page(){this.set_payment_fields();var self=this;this.form.on("submit",function(){if($("#add_payment_method input[name=payment_method]:checked").val()===self.id){return self.validate_payment_data()}})}set_payment_fields(){if(this.payment_form){this.log("Destroying payment form");this.payment_form.destroy().then(()=>{this.log("Re-building payment form");this.initializeCard(this.payments)});return}this.log("Building payment form");var{applicationId,locationId}=this.get_form_params();this.payments=window.Square.payments(applicationId,locationId);this.initializeCard(this.payments)}initializeCard(payments){var defaultPostalCode=$("#billing_postcode").val();defaultPostalCode=defaultPostalCode||"";payments.card({postalCode:defaultPostalCode}).then(card=>{card.attach("#wc-square-credit-card-container");this.payment_form=card;this.log("Payment form loaded")})}get_form_params(){return{applicationId:this.application_id,locationId:this.location_id}}validate_payment_data(){if(this.form.is(".processing")){return false}if(this.has_nonce()){this.log("Payment nonce present, placing order");return true}var tokenized_card_id=this.get_tokenized_payment_method_id();if(tokenized_card_id){if(!this.is_3ds_enabled){return true}if(this.has_verification_token()){this.log("Tokenized payment verification token present, placing order");return true}this.log("Requesting verification token for tokenized payment");this.block_ui();this.payments.verifyBuyer(tokenized_card_id,this.get_verification_details()).then(verificationResult=>{this.handle_verify_buyer_response(false,verificationResult)});return false}this.log("Requesting payment nonce");this.block_ui();this.handleSubmission();return false}handleSubmission(){var tokenPromise=this.payment_form.tokenize();tokenPromise.then(tokenResult=>{var{token,details,status}=tokenResult;if(status==="OK"){this.handle_card_nonce_response(token,details)}else{if(tokenResult.errors){this.handle_errors(tokenResult.errors)}}})}get_tokenized_payment_method_id(){return $(".payment_method_".concat(this.id)).find(".js-wc-square-credit-card-payment-token:checked").val()}handle_card_nonce_response(nonce,details){var{card:cardData,billing}=details;if(!nonce){var message="Nonce is missing from the Square response";this.log(message,"error");this.log_data(message,"response");return this.handle_errors()}this.log("Card data received");this.log(cardData);this.log_data(cardData,"response");if(cardData.last4){$("input[name=wc-".concat(this.id_dasherized,"-last-four]")).val(cardData.last4)}if(cardData.expMonth){$("input[name=wc-".concat(this.id_dasherized,"-exp-month]")).val(cardData.expMonth)}if(cardData.expYear){$("input[name=wc-".concat(this.id_dasherized,"-exp-year]")).val(cardData.expYear)}if(billing.postalCode){$("input[name=wc-".concat(this.id_dasherized,"-payment-postcode]")).val(billing.postalCode)}if(cardData.brand){$("input[name=wc-".concat(this.id_dasherized,"-card-type]")).val(cardData.brand)}$("input[name=wc-".concat(this.id_dasherized,"-payment-nonce]")).val(nonce);if(this.is_3ds_enabled){this.log("Verifying buyer");this.payments.verifyBuyer(nonce,this.get_verification_details()).then(verificationResult=>{this.handle_verify_buyer_response(false,verificationResult)});return}this.form.trigger("submit")}handle_verify_buyer_response(errors,verification_result){if(errors){$(errors).each((index,error)=>{if(!error.field){error.field="none"}});return this.handle_errors(errors)}if(!verification_result||!verification_result.token){var message="Verification token is missing from the Square response";this.log(message,"error");this.log_data(message,"response");return this.handle_errors()}this.log("Verification result received");this.log(verification_result);$("input[name=wc-".concat(this.id_dasherized,"-buyer-verification-token]")).val(verification_result.token);this.form.trigger("submit")}get_verification_details(){var verification_details={billingContact:{familyName:$("#billing_last_name").val()||"",givenName:$("#billing_first_name").val()||"",email:$("#billing_email").val()||"",country:$("#billing_country").val()||"",region:$("#billing_state").val()||"",city:$("#billing_city").val()||"",postalCode:$("#billing_postcode").val()||"",phone:$("#billing_phone").val()||"",addressLines:[$("#billing_address_1").val()||"",$("#billing_address_2").val()||""]},intent:this.get_intent()};if("CHARGE"===verification_details.intent){verification_details.amount=this.get_amount();verification_details.currencyCode=this.currency_code}this.log(verification_details);return verification_details}get_intent(){var $save_method_input=$("#wc-square-credit-card-tokenize-payment-method");var save_payment_method;if($save_method_input.is("input:checkbox")){save_payment_method=$save_method_input.is(":checked")}else{save_payment_method="true"===$save_method_input.val()}if(!this.get_tokenized_payment_method_id()&&save_payment_method){return"STORE"}return"CHARGE"}get_amount(){return $("input[name=wc-".concat(this.id_dasherized,"-amount]")).val()}handle_errors(){var errors=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this.log("Error getting payment data","error");$("input[name=wc-square-credit-card-payment-nonce]").val("");$("input[name=wc-square-credit-card-buyer-verification-token]").val("");var messages=[];if(errors){var field_order=["none","cardNumber","expirationDate","cvv","postalCode"];if(errors.length>=1){errors.sort((a,b)=>{return field_order.indexOf(a.field)-field_order.indexOf(b.field)})}$(errors).each((index,error)=>{if("UNSUPPORTED_CARD_BRAND"===error.type||"VALIDATION_ERROR"===error.type){return messages.push(error.message)}return this.log_data(errors,"response")})}if(messages.length===0){messages.push(this.general_error)}if(!this.is_add_payment_method_page&&!this.is_manual_order_payment){this.render_checkout_errors(messages)}else{this.render_errors(messages)}this.unblock_ui()}render_errors(errors){$(".woocommerce-error, .woocommerce-message").remove();this.form.prepend("<ul class=\"woocommerce-error\"><li>"+errors.join("</li><li>")+"</li></ul>");this.form.removeClass("processing").unblock();this.form.find(".input-text, select").trigger("blur");$("html, body").animate({scrollTop:this.form.offset().top-100},1000)}block_ui(){this.form.block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}unblock_ui(){return this.form.unblock()}hide_save_payment_checkbox(id_dasherized){var $parent_row=$("input.js-wc-".concat(id_dasherized,"-tokenize-payment-method")).closest("p.form-row");$parent_row.hide();$parent_row.next().hide()}show_save_payment_checkbox(id_dasherized){var $parent_row=$("input.js-wc-".concat(id_dasherized,"-tokenize-payment-method")).closest("p.form-row");$parent_row.slideDown();$parent_row.next().show()}has_nonce(){return $("input[name=wc-".concat(this.id_dasherized,"-payment-nonce]")).val()}has_verification_token(){return $("input[name=wc-".concat(this.id_dasherized,"-buyer-verification-token]")).val()}log_data(data,type){if(!this.logging_enabled){return}var ajax_data={action:"wc_"+this.id+"_log_js_data",security:this.ajax_log_nonce,type,data};$.ajax({url:this.ajax_url,data:ajax_data})}log(message){var type=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"notice";if(!this.logging_enabled){return}if("error"===type){console.error("Square Error: "+message)}else{console.log("Square: "+message)}}render_checkout_errors(square_errors){var ajax_url=wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%",this.id+"_checkout_handler");var square_handler=this;var form_data=this.form.serializeArray();form_data.push({name:"wc_"+this.id+"_checkout_validate_nonce",value:this.ajax_wc_checkout_validate_nonce});return $.ajax({url:ajax_url,method:"post",cache:false,data:form_data,complete:response=>{var result=response.responseJSON;if(result.hasOwnProperty("result")&&"failure"===result.result){$(result.messages).map(message=>{var errors=[];$(message).children("li").each(()=>{errors.push($(this).text().trim())});return square_errors.unshift(...errors)})}else if(result.hasOwnProperty("success")&&!result.success){square_errors.unshift(...result.data.messages)}square_handler.render_errors(square_errors)}})}}window.WC_Square_Payment_Form_Handler=WC_Square_Payment_Form_Handler});
1
+ "use strict";jQuery(document).ready($=>{class WC_Square_Payment_Form_Handler{constructor(args){this.id=args.id;this.id_dasherized=args.id_dasherized;this.csc_required=args.csc_required;this.enabled_card_types=args.enabled_card_types;this.square_card_types=args.square_card_types;this.ajax_log_nonce=args.ajax_log_nonce;this.ajax_url=args.ajax_url;this.application_id=args.application_id;this.currency_code=args.currency_code;this.general_error=args.general_error;this.input_styles=args.input_styles;this.is_3ds_enabled=args.is_3d_secure_enabled;this.is_add_payment_method_page=args.is_add_payment_method_page;this.is_checkout_registration_enabled=args.is_checkout_registration_enabled;this.is_user_logged_in=args.is_user_logged_in;this.location_id=args.location_id;this.logging_enabled=args.logging_enabled;this.ajax_wc_checkout_validate_nonce=args.ajax_wc_checkout_validate_nonce;this.is_manual_order_payment=args.is_manual_order_payment;this.current_postal_code_value="";if($("form.checkout").length){this.form=$("form.checkout");this.handle_checkout_page()}else if($("form#order_review").length){this.form=$("form#order_review");this.handle_pay_page()}else if($("form#add_payment_method").length){this.form=$("form#add_payment_method");this.handle_add_payment_method_page()}else{this.log("No payment form found!");return}this.params=window.sv_wc_payment_gateway_payment_form_params;$(document.body).on("checkout_error",()=>{$("input[name=wc-square-credit-card-payment-nonce]").val("");$("input[name=wc-square-credit-card-buyer-verification-token]").val("")});$(document.body).on("change","#payment_method_".concat(this.id),()=>{if(this.payment_form){this.log("Recalculating payment form size");this.payment_form.recalculateSize()}})}handle_checkout_page(){$(document.body).on("updated_checkout",()=>this.set_payment_fields());$(document.body).on("updated_checkout",()=>this.handle_saved_payment_methods());this.form.on("checkout_place_order_".concat(this.id),()=>this.validate_payment_data())}handle_saved_payment_methods(){var id_dasherized=this.id_dasherized;var form_handler=this;var $new_payment_method_selection=$("div.js-wc-".concat(id_dasherized,"-new-payment-method-form"));$("input.js-wc-".concat(this.id_dasherized,"-payment-token")).on("change",()=>{var tokenized_payment_method_selected=$("input.js-wc-".concat(id_dasherized,"-payment-token:checked")).val();if(tokenized_payment_method_selected){$new_payment_method_selection.slideUp(200)}else{$new_payment_method_selection.slideDown(200)}}).trigger("change");$("input#createaccount").on("change",e=>{if($(e.target).is(":checked")){form_handler.show_save_payment_checkbox(id_dasherized)}else{form_handler.hide_save_payment_checkbox(id_dasherized)}});if(!$("input#createaccount").is(":checked")){$("input#createaccount").trigger("change")}if(!this.is_user_logged_in&&!this.is_checkout_registration_enabled){this.hide_save_payment_checkbox(id_dasherized)}}handle_pay_page(){this.set_payment_fields();this.handle_saved_payment_methods();var self=this;this.form.on("submit",function(){if($("#order_review input[name=payment_method]:checked").val()===self.id){return self.validate_payment_data()}})}handle_add_payment_method_page(){this.set_payment_fields();var self=this;this.form.on("submit",function(){if($("#add_payment_method input[name=payment_method]:checked").val()===self.id){return self.validate_payment_data()}})}set_payment_fields(){if(this.payment_form){this.log("Destroying payment form");this.payment_form.destroy().then(()=>{this.log("Re-building payment form");this.initializeCard(this.payments)});return}this.log("Building payment form");var{applicationId,locationId}=this.get_form_params();this.payments=window.Square.payments(applicationId,locationId);this.initializeCard(this.payments)}initializeCard(payments){var defaultPostalCode=$("#billing_postcode").val();defaultPostalCode=defaultPostalCode||"";payments.card({postalCode:defaultPostalCode}).then(card=>{card.attach("#wc-square-credit-card-container");this.payment_form=card;this.log("Payment form loaded")})}get_form_params(){return{applicationId:this.application_id,locationId:this.location_id}}validate_payment_data(){if(this.form.is(".processing")){return false}if(this.has_nonce()){this.log("Payment nonce present, placing order");return true}var tokenized_card_id=this.get_tokenized_payment_method_id();if(tokenized_card_id){if(!this.is_3ds_enabled){return true}if(this.has_verification_token()){this.log("Tokenized payment verification token present, placing order");return true}this.log("Requesting verification token for tokenized payment");this.block_ui();this.payments.verifyBuyer(tokenized_card_id,this.get_verification_details()).then(verificationResult=>{this.handle_verify_buyer_response(false,verificationResult)});return false}this.log("Requesting payment nonce");this.block_ui();this.handleSubmission();return false}handleSubmission(){var tokenPromise=this.payment_form.tokenize();tokenPromise.then(tokenResult=>{var{token,details,status}=tokenResult;if(status==="OK"){this.handle_card_nonce_response(token,details)}else{if(tokenResult.errors){this.handle_errors(tokenResult.errors)}}})}get_tokenized_payment_method_id(){return $(".payment_method_".concat(this.id)).find(".js-wc-square-credit-card-payment-token:checked").val()}handle_card_nonce_response(nonce,details){var{card:cardData,billing}=details;if(!nonce){var message="Nonce is missing from the Square response";this.log(message,"error");this.log_data(message,"response");return this.handle_errors()}this.log("Card data received");this.log(cardData);this.log_data(cardData,"response");if(cardData.last4){$("input[name=wc-".concat(this.id_dasherized,"-last-four]")).val(cardData.last4)}if(cardData.expMonth){$("input[name=wc-".concat(this.id_dasherized,"-exp-month]")).val(cardData.expMonth)}if(cardData.expYear){$("input[name=wc-".concat(this.id_dasherized,"-exp-year]")).val(cardData.expYear)}if(billing!==null&&billing!==void 0&&billing.postalCode){$("input[name=wc-".concat(this.id_dasherized,"-payment-postcode]")).val(billing.postalCode)}if(cardData.brand){$("input[name=wc-".concat(this.id_dasherized,"-card-type]")).val(cardData.brand)}$("input[name=wc-".concat(this.id_dasherized,"-payment-nonce]")).val(nonce);if(this.is_3ds_enabled){this.log("Verifying buyer");this.payments.verifyBuyer(nonce,this.get_verification_details()).then(verificationResult=>{this.handle_verify_buyer_response(false,verificationResult)});return}this.form.trigger("submit")}handle_verify_buyer_response(errors,verification_result){if(errors){$(errors).each((index,error)=>{if(!error.field){error.field="none"}});return this.handle_errors(errors)}if(!verification_result||!verification_result.token){var message="Verification token is missing from the Square response";this.log(message,"error");this.log_data(message,"response");return this.handle_errors()}this.log("Verification result received");this.log(verification_result);$("input[name=wc-".concat(this.id_dasherized,"-buyer-verification-token]")).val(verification_result.token);this.form.trigger("submit")}get_verification_details(){var verification_details={billingContact:{familyName:$("#billing_last_name").val()||"",givenName:$("#billing_first_name").val()||"",email:$("#billing_email").val()||"",country:$("#billing_country").val()||"",region:$("#billing_state").val()||"",city:$("#billing_city").val()||"",postalCode:$("#billing_postcode").val()||"",phone:$("#billing_phone").val()||"",addressLines:[$("#billing_address_1").val()||"",$("#billing_address_2").val()||""]},intent:this.get_intent()};if("CHARGE"===verification_details.intent){verification_details.amount=this.get_amount();verification_details.currencyCode=this.currency_code}this.log(verification_details);return verification_details}get_intent(){var $save_method_input=$("#wc-square-credit-card-tokenize-payment-method");var save_payment_method;if($save_method_input.is("input:checkbox")){save_payment_method=$save_method_input.is(":checked")}else{save_payment_method="true"===$save_method_input.val()}if(!this.get_tokenized_payment_method_id()&&save_payment_method){return"STORE"}return"CHARGE"}get_amount(){return $("input[name=wc-".concat(this.id_dasherized,"-amount]")).val()}handle_errors(){var errors=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this.log("Error getting payment data","error");$("input[name=wc-square-credit-card-payment-nonce]").val("");$("input[name=wc-square-credit-card-buyer-verification-token]").val("");var messages=[];if(errors){var field_order=["none","cardNumber","expirationDate","cvv","postalCode"];if(errors.length>=1){errors.sort((a,b)=>{return field_order.indexOf(a.field)-field_order.indexOf(b.field)})}$(errors).each((index,error)=>{if("UNSUPPORTED_CARD_BRAND"===error.type||"VALIDATION_ERROR"===error.type){return messages.push(error.message)}return this.log_data(errors,"response")})}if(messages.length===0){messages.push(this.general_error)}if(!this.is_add_payment_method_page&&!this.is_manual_order_payment){this.render_checkout_errors(messages)}else{this.render_errors(messages)}this.unblock_ui()}render_errors(errors){$(".woocommerce-error, .woocommerce-message").remove();this.form.prepend("<ul class=\"woocommerce-error\"><li>"+errors.join("</li><li>")+"</li></ul>");this.form.removeClass("processing").unblock();this.form.find(".input-text, select").trigger("blur");$("html, body").animate({scrollTop:this.form.offset().top-100},1000)}block_ui(){this.form.block({message:null,overlayCSS:{background:"#fff",opacity:0.6}})}unblock_ui(){return this.form.unblock()}hide_save_payment_checkbox(id_dasherized){var $parent_row=$("input.js-wc-".concat(id_dasherized,"-tokenize-payment-method")).closest("p.form-row");$parent_row.hide();$parent_row.next().hide()}show_save_payment_checkbox(id_dasherized){var $parent_row=$("input.js-wc-".concat(id_dasherized,"-tokenize-payment-method")).closest("p.form-row");$parent_row.slideDown();$parent_row.next().show()}has_nonce(){return $("input[name=wc-".concat(this.id_dasherized,"-payment-nonce]")).val()}has_verification_token(){return $("input[name=wc-".concat(this.id_dasherized,"-buyer-verification-token]")).val()}log_data(data,type){if(!this.logging_enabled){return}var ajax_data={action:"wc_"+this.id+"_log_js_data",security:this.ajax_log_nonce,type,data};$.ajax({url:this.ajax_url,data:ajax_data})}log(message){var type=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"notice";if(!this.logging_enabled){return}if("error"===type){console.error("Square Error: "+message)}else{console.log("Square: "+message)}}render_checkout_errors(square_errors){var ajax_url=wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%",this.id+"_checkout_handler");var square_handler=this;var form_data=this.form.serializeArray();form_data.push({name:"wc_"+this.id+"_checkout_validate_nonce",value:this.ajax_wc_checkout_validate_nonce});return $.ajax({url:ajax_url,method:"post",cache:false,data:form_data,complete:response=>{var result=response.responseJSON;if(result.hasOwnProperty("result")&&"failure"===result.result){$(result.messages).map(message=>{var errors=[];$(message).children("li").each(()=>{errors.push($(this).text().trim())});return square_errors.unshift(...errors)})}else if(result.hasOwnProperty("success")&&!result.success){square_errors.unshift(...result.data.messages)}square_handler.render_errors(square_errors)}})}}window.WC_Square_Payment_Form_Handler=WC_Square_Payment_Form_Handler});
changelog.txt CHANGED
@@ -1,8 +1,11 @@
1
  *** WooCommerce Square Changelog ***
2
 
 
 
 
3
  = 3.0.0 - 2022-05-04 =
4
  * New - Upgrade the payment form on checkout to use the latest Square Web Payments SDK. PR#668
5
- * Fix - Compatibility issues with WordPress 6.1.0. PR#715
6
  * Fix - Sync issues caused by product variations having an empty SKU and incorrectly being set to the variable product (parent product) SKU value. PR#764
7
  * Update - Remove admin notice warning of v3.0.0 release. PR#744
8
  * Dev - Product importing is now handled by Action Scheduler. PR#698
1
  *** WooCommerce Square Changelog ***
2
 
3
+ = 3.0.1 - 2022-05-09 =
4
+ * Fix - Checkout stuck processing when using a card that doesn't require a postal code. #782
5
+
6
  = 3.0.0 - 2022-05-04 =
7
  * New - Upgrade the payment form on checkout to use the latest Square Web Payments SDK. PR#668
8
+ * Fix - Compatibility issues with WooCommerce 6.1.0. PR#715
9
  * Fix - Sync issues caused by product variations having an empty SKU and incorrectly being set to the variable product (parent product) SKU value. PR#764
10
  * Update - Remove admin notice warning of v3.0.0 release. PR#744
11
  * Dev - Product importing is now handled by Action Scheduler. PR#698
i18n/languages/woocommerce-square.pot CHANGED
@@ -2,10 +2,10 @@
2
  # This file is distributed under the GNU General Public License v3.0.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WooCommerce Square 3.0.0\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/woocommerce-square\n"
8
- "POT-Creation-Date: 2022-05-05 00:39:11+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
2
  # This file is distributed under the GNU General Public License v3.0.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WooCommerce Square 3.0.1\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/woocommerce-square\n"
8
+ "POT-Creation-Date: 2022-05-09 06:03:13+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
includes/Plugin.php CHANGED
@@ -43,7 +43,7 @@ class Plugin extends Payment_Gateway_Plugin {
43
 
44
 
45
  /** plugin version number */
46
- const VERSION = '3.0.0';
47
 
48
  /** plugin ID */
49
  const PLUGIN_ID = 'square';
43
 
44
 
45
  /** plugin version number */
46
+ const VERSION = '3.0.1';
47
 
48
  /** plugin ID */
49
  const PLUGIN_ID = 'square';
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: woocommerce, automattic, royho, woothemes, bor0, mattdallan, menak
3
  Tags: credit card, square, woocommerce, inventory sync
4
  Requires at least: 4.6
5
  Tested up to: 5.9
6
- Requires PHP: 5.6
7
- Stable tag: 3.0.0
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -71,9 +71,12 @@ If you get stuck, you can ask for help in the [Plugin Forum](https://wordpress.o
71
  2. The payment gateway settings.
72
 
73
  == Changelog ==
 
 
 
74
  = 3.0.0 - 2022-05-04 =
75
  * New - Upgrade the payment form on checkout to use the latest Square Web Payments SDK. PR#668
76
- * Fix - Compatibility issues with WordPress 6.1.0. PR#715
77
  * Fix - Sync issues caused by product variations having an empty SKU and incorrectly being set to the variable product (parent product) SKU value. PR#764
78
  * Update - Remove admin notice warning of v3.0.0 release. PR#744
79
  * Dev - Product importing is now handled by Action Scheduler. PR#698
3
  Tags: credit card, square, woocommerce, inventory sync
4
  Requires at least: 4.6
5
  Tested up to: 5.9
6
+ Requires PHP: 7.2
7
+ Stable tag: 3.0.1
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
71
  2. The payment gateway settings.
72
 
73
  == Changelog ==
74
+ = 3.0.1 - 2022-05-09 =
75
+ * Fix - Checkout stuck processing when using a card that doesn't require a postal code. #782
76
+
77
  = 3.0.0 - 2022-05-04 =
78
  * New - Upgrade the payment form on checkout to use the latest Square Web Payments SDK. PR#668
79
+ * Fix - Compatibility issues with WooCommerce 6.1.0. PR#715
80
  * Fix - Sync issues caused by product variations having an empty SKU and incorrectly being set to the variable product (parent product) SKU value. PR#764
81
  * Update - Remove admin notice warning of v3.0.0 release. PR#744
82
  * Dev - Product importing is now handled by Action Scheduler. PR#698
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit716c982bfcceebc603ec66e8144af0f2::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit42c48ceaa986e1554a68107e2a17949b::getLoader();
vendor/composer/ClassLoader.php CHANGED
@@ -42,6 +42,8 @@ namespace Composer\Autoload;
42
  */
43
  class ClassLoader
44
  {
 
 
45
  // PSR-4
46
  private $prefixLengthsPsr4 = array();
47
  private $prefixDirsPsr4 = array();
@@ -57,6 +59,13 @@ class ClassLoader
57
  private $missingClasses = array();
58
  private $apcuPrefix;
59
 
 
 
 
 
 
 
 
60
  public function getPrefixes()
61
  {
62
  if (!empty($this->prefixesPsr0)) {
@@ -300,6 +309,17 @@ class ClassLoader
300
  public function register($prepend = false)
301
  {
302
  spl_autoload_register(array($this, 'loadClass'), true, $prepend);
 
 
 
 
 
 
 
 
 
 
 
303
  }
304
 
305
  /**
@@ -308,13 +328,17 @@ class ClassLoader
308
  public function unregister()
309
  {
310
  spl_autoload_unregister(array($this, 'loadClass'));
 
 
 
 
311
  }
312
 
313
  /**
314
  * Loads the given class or interface.
315
  *
316
  * @param string $class The name of the class
317
- * @return bool|null True if loaded, null otherwise
318
  */
319
  public function loadClass($class)
320
  {
@@ -323,6 +347,8 @@ class ClassLoader
323
 
324
  return true;
325
  }
 
 
326
  }
327
 
328
  /**
@@ -367,6 +393,16 @@ class ClassLoader
367
  return $file;
368
  }
369
 
 
 
 
 
 
 
 
 
 
 
370
  private function findFileWithExtension($class, $ext)
371
  {
372
  // PSR-4 lookup
42
  */
43
  class ClassLoader
44
  {
45
+ private $vendorDir;
46
+
47
  // PSR-4
48
  private $prefixLengthsPsr4 = array();
49
  private $prefixDirsPsr4 = array();
59
  private $missingClasses = array();
60
  private $apcuPrefix;
61
 
62
+ private static $registeredLoaders = array();
63
+
64
+ public function __construct($vendorDir = null)
65
+ {
66
+ $this->vendorDir = $vendorDir;
67
+ }
68
+
69
  public function getPrefixes()
70
  {
71
  if (!empty($this->prefixesPsr0)) {
309
  public function register($prepend = false)
310
  {
311
  spl_autoload_register(array($this, 'loadClass'), true, $prepend);
312
+
313
+ if (null === $this->vendorDir) {
314
+ return;
315
+ }
316
+
317
+ if ($prepend) {
318
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
319
+ } else {
320
+ unset(self::$registeredLoaders[$this->vendorDir]);
321
+ self::$registeredLoaders[$this->vendorDir] = $this;
322
+ }
323
  }
324
 
325
  /**
328
  public function unregister()
329
  {
330
  spl_autoload_unregister(array($this, 'loadClass'));
331
+
332
+ if (null !== $this->vendorDir) {
333
+ unset(self::$registeredLoaders[$this->vendorDir]);
334
+ }
335
  }
336
 
337
  /**
338
  * Loads the given class or interface.
339
  *
340
  * @param string $class The name of the class
341
+ * @return true|null True if loaded, null otherwise
342
  */
343
  public function loadClass($class)
344
  {
347
 
348
  return true;
349
  }
350
+
351
+ return null;
352
  }
353
 
354
  /**
393
  return $file;
394
  }
395
 
396
+ /**
397
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
398
+ *
399
+ * @return self[]
400
+ */
401
+ public static function getRegisteredLoaders()
402
+ {
403
+ return self::$registeredLoaders;
404
+ }
405
+
406
  private function findFileWithExtension($class, $ext)
407
  {
408
  // PSR-4 lookup
vendor/composer/InstalledVersions.php CHANGED
@@ -1,245 +1,337 @@
1
  <?php
2
 
 
 
 
 
 
 
 
 
 
 
3
  namespace Composer;
4
 
 
5
  use Composer\Semver\VersionParser;
6
 
7
-
8
-
9
-
10
-
11
-
 
 
12
  class InstalledVersions
13
  {
14
- private static $installed = array (
15
- 'root' =>
16
- array (
17
- 'pretty_version' => 'dev-trunk',
18
- 'version' => 'dev-trunk',
19
- 'aliases' =>
20
- array (
21
- ),
22
- 'reference' => '49b5ae9f11cef8ece25df24262cc4ee19855bca5',
23
- 'name' => 'woocommerce/woocommerce-square',
24
- ),
25
- 'versions' =>
26
- array (
27
- 'apimatic/jsonmapper' =>
28
- array (
29
- 'pretty_version' => 'v2.0.3',
30
- 'version' => '2.0.3.0',
31
- 'aliases' =>
32
- array (
33
- ),
34
- 'reference' => 'f7588f1ab692c402a9118e65cb9fd42b74e5e0db',
35
- ),
36
- 'apimatic/unirest-php' =>
37
- array (
38
- 'pretty_version' => '2.0.0',
39
- 'version' => '2.0.0.0',
40
- 'aliases' =>
41
- array (
42
- ),
43
- 'reference' => 'b4e399a8970c3a5c611f734282f306381f9d1eee',
44
- ),
45
- 'square/square' =>
46
- array (
47
- 'pretty_version' => '15.0.0.20211020',
48
- 'version' => '15.0.0.20211020',
49
- 'aliases' =>
50
- array (
51
- ),
52
- 'reference' => 'a31e7fbb6cd458095b2f09543d799a06c35fd2a7',
53
- ),
54
- 'woocommerce/action-scheduler' =>
55
- array (
56
- 'pretty_version' => '3.4.0',
57
- 'version' => '3.4.0.0',
58
- 'aliases' =>
59
- array (
60
- ),
61
- 'reference' => '3218a33ff14b968f8cb05de9656c2efa1eeb1330',
62
- ),
63
- 'woocommerce/woocommerce-square' =>
64
- array (
65
- 'pretty_version' => 'dev-trunk',
66
- 'version' => 'dev-trunk',
67
- 'aliases' =>
68
- array (
69
- ),
70
- 'reference' => '49b5ae9f11cef8ece25df24262cc4ee19855bca5',
71
- ),
72
- ),
73
- );
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
- public static function getInstalledPackages()
82
- {
83
- return array_keys(self::$installed['versions']);
84
- }
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
- public static function isInstalled($packageName)
95
- {
96
- return isset(self::$installed['versions'][$packageName]);
97
- }
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
- public static function satisfies(VersionParser $parser, $packageName, $constraint)
113
- {
114
- $constraint = $parser->parseConstraints($constraint);
115
- $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
116
-
117
- return $provided->matches($constraint);
118
- }
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
- public static function getVersionRanges($packageName)
130
- {
131
- if (!isset(self::$installed['versions'][$packageName])) {
132
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
133
- }
134
-
135
- $ranges = array();
136
- if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
137
- $ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
138
- }
139
- if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
140
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
141
- }
142
- if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
143
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
144
- }
145
- if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
146
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
147
- }
148
-
149
- return implode(' || ', $ranges);
150
- }
151
-
152
-
153
-
154
-
155
-
156
- public static function getVersion($packageName)
157
- {
158
- if (!isset(self::$installed['versions'][$packageName])) {
159
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
160
- }
161
-
162
- if (!isset(self::$installed['versions'][$packageName]['version'])) {
163
- return null;
164
- }
165
-
166
- return self::$installed['versions'][$packageName]['version'];
167
- }
168
-
169
-
170
-
171
-
172
-
173
- public static function getPrettyVersion($packageName)
174
- {
175
- if (!isset(self::$installed['versions'][$packageName])) {
176
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
177
- }
178
-
179
- if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
180
- return null;
181
- }
182
-
183
- return self::$installed['versions'][$packageName]['pretty_version'];
184
- }
185
-
186
-
187
-
188
-
189
-
190
- public static function getReference($packageName)
191
- {
192
- if (!isset(self::$installed['versions'][$packageName])) {
193
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
194
- }
195
-
196
- if (!isset(self::$installed['versions'][$packageName]['reference'])) {
197
- return null;
198
- }
199
-
200
- return self::$installed['versions'][$packageName]['reference'];
201
- }
202
-
203
-
204
-
205
-
206
-
207
- public static function getRootPackage()
208
- {
209
- return self::$installed['root'];
210
- }
211
-
212
-
213
-
214
-
215
-
216
-
217
-
218
- public static function getRawData()
219
- {
220
- return self::$installed;
221
- }
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
-
241
- public static function reload($data)
242
- {
243
- self::$installed = $data;
244
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  }
1
  <?php
2
 
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
  namespace Composer;
14
 
15
+ use Composer\Autoload\ClassLoader;
16
  use Composer\Semver\VersionParser;
17
 
18
+ /**
19
+ * This class is copied in every Composer installed project and available to all
20
+ *
21
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
22
+ *
23
+ * To require it's presence, you can require `composer-runtime-api ^2.0`
24
+ */
25
  class InstalledVersions
26
  {
27
+ private static $installed;
28
+ private static $canGetVendors;
29
+ private static $installedByVendor = array();
30
+
31
+ /**
32
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
33
+ *
34
+ * @return string[]
35
+ * @psalm-return list<string>
36
+ */
37
+ public static function getInstalledPackages()
38
+ {
39
+ $packages = array();
40
+ foreach (self::getInstalled() as $installed) {
41
+ $packages[] = array_keys($installed['versions']);
42
+ }
43
+
44
+ if (1 === \count($packages)) {
45
+ return $packages[0];
46
+ }
47
+
48
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
49
+ }
50
+
51
+ /**
52
+ * Returns a list of all package names with a specific type e.g. 'library'
53
+ *
54
+ * @param string $type
55
+ * @return string[]
56
+ * @psalm-return list<string>
57
+ */
58
+ public static function getInstalledPackagesByType($type)
59
+ {
60
+ $packagesByType = array();
61
+
62
+ foreach (self::getInstalled() as $installed) {
63
+ foreach ($installed['versions'] as $name => $package) {
64
+ if (isset($package['type']) && $package['type'] === $type) {
65
+ $packagesByType[] = $name;
66
+ }
67
+ }
68
+ }
69
+
70
+ return $packagesByType;
71
+ }
72
+
73
+ /**
74
+ * Checks whether the given package is installed
75
+ *
76
+ * This also returns true if the package name is provided or replaced by another package
77
+ *
78
+ * @param string $packageName
79
+ * @param bool $includeDevRequirements
80
+ * @return bool
81
+ */
82
+ public static function isInstalled($packageName, $includeDevRequirements = true)
83
+ {
84
+ foreach (self::getInstalled() as $installed) {
85
+ if (isset($installed['versions'][$packageName])) {
86
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
87
+ }
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
+ /**
94
+ * Checks whether the given package satisfies a version constraint
95
+ *
96
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
97
+ *
98
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
99
+ *
100
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
101
+ * @param string $packageName
102
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
103
+ * @return bool
104
+ */
105
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
106
+ {
107
+ $constraint = $parser->parseConstraints($constraint);
108
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
109
+
110
+ return $provided->matches($constraint);
111
+ }
112
+
113
+ /**
114
+ * Returns a version constraint representing all the range(s) which are installed for a given package
115
+ *
116
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
117
+ * whether a given version of a package is installed, and not just whether it exists
118
+ *
119
+ * @param string $packageName
120
+ * @return string Version constraint usable with composer/semver
121
+ */
122
+ public static function getVersionRanges($packageName)
123
+ {
124
+ foreach (self::getInstalled() as $installed) {
125
+ if (!isset($installed['versions'][$packageName])) {
126
+ continue;
127
+ }
128
+
129
+ $ranges = array();
130
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
131
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
132
+ }
133
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
134
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
135
+ }
136
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
137
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
138
+ }
139
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
140
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
141
+ }
142
+
143
+ return implode(' || ', $ranges);
144
+ }
145
+
146
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
147
+ }
148
+
149
+ /**
150
+ * @param string $packageName
151
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
152
+ */
153
+ public static function getVersion($packageName)
154
+ {
155
+ foreach (self::getInstalled() as $installed) {
156
+ if (!isset($installed['versions'][$packageName])) {
157
+ continue;
158
+ }
159
+
160
+ if (!isset($installed['versions'][$packageName]['version'])) {
161
+ return null;
162
+ }
163
+
164
+ return $installed['versions'][$packageName]['version'];
165
+ }
166
+
167
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
168
+ }
169
+
170
+ /**
171
+ * @param string $packageName
172
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
173
+ */
174
+ public static function getPrettyVersion($packageName)
175
+ {
176
+ foreach (self::getInstalled() as $installed) {
177
+ if (!isset($installed['versions'][$packageName])) {
178
+ continue;
179
+ }
180
+
181
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
182
+ return null;
183
+ }
184
+
185
+ return $installed['versions'][$packageName]['pretty_version'];
186
+ }
187
+
188
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
189
+ }
190
+
191
+ /**
192
+ * @param string $packageName
193
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
194
+ */
195
+ public static function getReference($packageName)
196
+ {
197
+ foreach (self::getInstalled() as $installed) {
198
+ if (!isset($installed['versions'][$packageName])) {
199
+ continue;
200
+ }
201
+
202
+ if (!isset($installed['versions'][$packageName]['reference'])) {
203
+ return null;
204
+ }
205
+
206
+ return $installed['versions'][$packageName]['reference'];
207
+ }
208
+
209
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
210
+ }
211
+
212
+ /**
213
+ * @param string $packageName
214
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
215
+ */
216
+ public static function getInstallPath($packageName)
217
+ {
218
+ foreach (self::getInstalled() as $installed) {
219
+ if (!isset($installed['versions'][$packageName])) {
220
+ continue;
221
+ }
222
+
223
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
224
+ }
225
+
226
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
227
+ }
228
+
229
+ /**
230
+ * @return array
231
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
232
+ */
233
+ public static function getRootPackage()
234
+ {
235
+ $installed = self::getInstalled();
236
+
237
+ return $installed[0]['root'];
238
+ }
239
+
240
+ /**
241
+ * Returns the raw installed.php data for custom implementations
242
+ *
243
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
244
+ * @return array[]
245
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
246
+ */
247
+ public static function getRawData()
248
+ {
249
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
250
+
251
+ if (null === self::$installed) {
252
+ // only require the installed.php file if this file is loaded from its dumped location,
253
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
254
+ if (substr(__DIR__, -8, 1) !== 'C') {
255
+ self::$installed = include __DIR__ . '/installed.php';
256
+ } else {
257
+ self::$installed = array();
258
+ }
259
+ }
260
+
261
+ return self::$installed;
262
+ }
263
+
264
+ /**
265
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
266
+ *
267
+ * @return array[]
268
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
269
+ */
270
+ public static function getAllRawData()
271
+ {
272
+ return self::getInstalled();
273
+ }
274
+
275
+ /**
276
+ * Lets you reload the static array from another file
277
+ *
278
+ * This is only useful for complex integrations in which a project needs to use
279
+ * this class but then also needs to execute another project's autoloader in process,
280
+ * and wants to ensure both projects have access to their version of installed.php.
281
+ *
282
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
283
+ * the data it needs from this class, then call reload() with
284
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
285
+ * the project in which it runs can then also use this class safely, without
286
+ * interference between PHPUnit's dependencies and the project's dependencies.
287
+ *
288
+ * @param array[] $data A vendor/composer/installed.php data set
289
+ * @return void
290
+ *
291
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
292
+ */
293
+ public static function reload($data)
294
+ {
295
+ self::$installed = $data;
296
+ self::$installedByVendor = array();
297
+ }
298
+
299
+ /**
300
+ * @return array[]
301
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
302
+ */
303
+ private static function getInstalled()
304
+ {
305
+ if (null === self::$canGetVendors) {
306
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
307
+ }
308
+
309
+ $installed = array();
310
+
311
+ if (self::$canGetVendors) {
312
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
313
+ if (isset(self::$installedByVendor[$vendorDir])) {
314
+ $installed[] = self::$installedByVendor[$vendorDir];
315
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
316
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
317
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
318
+ self::$installed = $installed[count($installed) - 1];
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+ if (null === self::$installed) {
325
+ // only require the installed.php file if this file is loaded from its dumped location,
326
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
327
+ if (substr(__DIR__, -8, 1) !== 'C') {
328
+ self::$installed = require __DIR__ . '/installed.php';
329
+ } else {
330
+ self::$installed = array();
331
+ }
332
+ }
333
+ $installed[] = self::$installed;
334
+
335
+ return $installed;
336
+ }
337
  }
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit716c982bfcceebc603ec66e8144af0f2
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInit716c982bfcceebc603ec66e8144af0f2
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInit716c982bfcceebc603ec66e8144af0f2', 'loadClassLoader'), true, true);
28
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
29
- spl_autoload_unregister(array('ComposerAutoloaderInit716c982bfcceebc603ec66e8144af0f2', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
- call_user_func(\Composer\Autoload\ComposerStaticInit716c982bfcceebc603ec66e8144af0f2::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit42c48ceaa986e1554a68107e2a17949b
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInit42c48ceaa986e1554a68107e2a17949b', 'loadClassLoader'), true, true);
28
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit42c48ceaa986e1554a68107e2a17949b', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInit42c48ceaa986e1554a68107e2a17949b::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit716c982bfcceebc603ec66e8144af0f2
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'a' =>
@@ -45,10 +45,10 @@ class ComposerStaticInit716c982bfcceebc603ec66e8144af0f2
45
  public static function getInitializer(ClassLoader $loader)
46
  {
47
  return \Closure::bind(function () use ($loader) {
48
- $loader->prefixLengthsPsr4 = ComposerStaticInit716c982bfcceebc603ec66e8144af0f2::$prefixLengthsPsr4;
49
- $loader->prefixDirsPsr4 = ComposerStaticInit716c982bfcceebc603ec66e8144af0f2::$prefixDirsPsr4;
50
- $loader->prefixesPsr0 = ComposerStaticInit716c982bfcceebc603ec66e8144af0f2::$prefixesPsr0;
51
- $loader->classMap = ComposerStaticInit716c982bfcceebc603ec66e8144af0f2::$classMap;
52
 
53
  }, null, ClassLoader::class);
54
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit42c48ceaa986e1554a68107e2a17949b
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'a' =>
45
  public static function getInitializer(ClassLoader $loader)
46
  {
47
  return \Closure::bind(function () use ($loader) {
48
+ $loader->prefixLengthsPsr4 = ComposerStaticInit42c48ceaa986e1554a68107e2a17949b::$prefixLengthsPsr4;
49
+ $loader->prefixDirsPsr4 = ComposerStaticInit42c48ceaa986e1554a68107e2a17949b::$prefixDirsPsr4;
50
+ $loader->prefixesPsr0 = ComposerStaticInit42c48ceaa986e1554a68107e2a17949b::$prefixesPsr0;
51
+ $loader->classMap = ComposerStaticInit42c48ceaa986e1554a68107e2a17949b::$classMap;
52
 
53
  }, null, ClassLoader::class);
54
  }
vendor/composer/installed.php CHANGED
@@ -1,60 +1,59 @@
1
- <?php return array (
2
- 'root' =>
3
- array (
4
- 'pretty_version' => 'dev-trunk',
5
- 'version' => 'dev-trunk',
6
- 'aliases' =>
7
- array (
 
 
 
8
  ),
9
- 'reference' => '49b5ae9f11cef8ece25df24262cc4ee19855bca5',
10
- 'name' => 'woocommerce/woocommerce-square',
11
- ),
12
- 'versions' =>
13
- array (
14
- 'apimatic/jsonmapper' =>
15
- array (
16
- 'pretty_version' => 'v2.0.3',
17
- 'version' => '2.0.3.0',
18
- 'aliases' =>
19
- array (
20
- ),
21
- 'reference' => 'f7588f1ab692c402a9118e65cb9fd42b74e5e0db',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  ),
23
- 'apimatic/unirest-php' =>
24
- array (
25
- 'pretty_version' => '2.0.0',
26
- 'version' => '2.0.0.0',
27
- 'aliases' =>
28
- array (
29
- ),
30
- 'reference' => 'b4e399a8970c3a5c611f734282f306381f9d1eee',
31
- ),
32
- 'square/square' =>
33
- array (
34
- 'pretty_version' => '15.0.0.20211020',
35
- 'version' => '15.0.0.20211020',
36
- 'aliases' =>
37
- array (
38
- ),
39
- 'reference' => 'a31e7fbb6cd458095b2f09543d799a06c35fd2a7',
40
- ),
41
- 'woocommerce/action-scheduler' =>
42
- array (
43
- 'pretty_version' => '3.4.0',
44
- 'version' => '3.4.0.0',
45
- 'aliases' =>
46
- array (
47
- ),
48
- 'reference' => '3218a33ff14b968f8cb05de9656c2efa1eeb1330',
49
- ),
50
- 'woocommerce/woocommerce-square' =>
51
- array (
52
- 'pretty_version' => 'dev-trunk',
53
- 'version' => 'dev-trunk',
54
- 'aliases' =>
55
- array (
56
- ),
57
- 'reference' => '49b5ae9f11cef8ece25df24262cc4ee19855bca5',
58
- ),
59
- ),
60
  );
1
+ <?php return array(
2
+ 'root' => array(
3
+ 'pretty_version' => 'dev-release/3.0.1',
4
+ 'version' => 'dev-release/3.0.1',
5
+ 'type' => 'library',
6
+ 'install_path' => __DIR__ . '/../../',
7
+ 'aliases' => array(),
8
+ 'reference' => 'd273dbddced207edeeaf078ce1eabc4c13fb3131',
9
+ 'name' => 'woocommerce/woocommerce-square',
10
+ 'dev' => false,
11
  ),
12
+ 'versions' => array(
13
+ 'apimatic/jsonmapper' => array(
14
+ 'pretty_version' => 'v2.0.3',
15
+ 'version' => '2.0.3.0',
16
+ 'type' => 'library',
17
+ 'install_path' => __DIR__ . '/../apimatic/jsonmapper',
18
+ 'aliases' => array(),
19
+ 'reference' => 'f7588f1ab692c402a9118e65cb9fd42b74e5e0db',
20
+ 'dev_requirement' => false,
21
+ ),
22
+ 'apimatic/unirest-php' => array(
23
+ 'pretty_version' => '2.0.0',
24
+ 'version' => '2.0.0.0',
25
+ 'type' => 'library',
26
+ 'install_path' => __DIR__ . '/../apimatic/unirest-php',
27
+ 'aliases' => array(),
28
+ 'reference' => 'b4e399a8970c3a5c611f734282f306381f9d1eee',
29
+ 'dev_requirement' => false,
30
+ ),
31
+ 'square/square' => array(
32
+ 'pretty_version' => '15.0.0.20211020',
33
+ 'version' => '15.0.0.20211020',
34
+ 'type' => 'library',
35
+ 'install_path' => __DIR__ . '/../square/square',
36
+ 'aliases' => array(),
37
+ 'reference' => 'a31e7fbb6cd458095b2f09543d799a06c35fd2a7',
38
+ 'dev_requirement' => false,
39
+ ),
40
+ 'woocommerce/action-scheduler' => array(
41
+ 'pretty_version' => '3.4.0',
42
+ 'version' => '3.4.0.0',
43
+ 'type' => 'wordpress-plugin',
44
+ 'install_path' => __DIR__ . '/../woocommerce/action-scheduler',
45
+ 'aliases' => array(),
46
+ 'reference' => '3218a33ff14b968f8cb05de9656c2efa1eeb1330',
47
+ 'dev_requirement' => false,
48
+ ),
49
+ 'woocommerce/woocommerce-square' => array(
50
+ 'pretty_version' => 'dev-release/3.0.1',
51
+ 'version' => 'dev-release/3.0.1',
52
+ 'type' => 'library',
53
+ 'install_path' => __DIR__ . '/../../',
54
+ 'aliases' => array(),
55
+ 'reference' => 'd273dbddced207edeeaf078ce1eabc4c13fb3131',
56
+ 'dev_requirement' => false,
57
+ ),
58
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  );
woocommerce-square.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Plugin Name: WooCommerce Square
4
- * Version: 3.0.0
5
  * Plugin URI: https://woocommerce.com/products/square/
6
  * Description: Adds ability to sync inventory between WooCommerce and Square POS. In addition, you can also make purchases through the Square payment gateway.
7
  * Author: WooCommerce
@@ -44,7 +44,7 @@ class WooCommerce_Square_Loader {
44
 
45
 
46
  /** minimum PHP version required by this plugin */
47
- const MINIMUM_PHP_VERSION = '5.6.0';
48
 
49
  /** minimum WordPress version required by this plugin */
50
  const MINIMUM_WP_VERSION = '4.6';
1
  <?php
2
  /**
3
  * Plugin Name: WooCommerce Square
4
+ * Version: 3.0.1
5
  * Plugin URI: https://woocommerce.com/products/square/
6
  * Description: Adds ability to sync inventory between WooCommerce and Square POS. In addition, you can also make purchases through the Square payment gateway.
7
  * Author: WooCommerce
44
 
45
 
46
  /** minimum PHP version required by this plugin */
47
+ const MINIMUM_PHP_VERSION = '7.2.0';
48
 
49
  /** minimum WordPress version required by this plugin */
50
  const MINIMUM_WP_VERSION = '4.6';