Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Fix 'Country is required' error on the Cart block when updating shipping address #5129

Merged
merged 6 commits into from
Nov 16, 2021

Conversation

alexflorisca
Copy link
Member

@alexflorisca alexflorisca commented Nov 11, 2021

This fixes an error on the cart page that was causing a 'Country is required' error to show up once a customer updates their shipping address.

The main issue is that the default state of wc/store/cart has an empty billing address. This then gets hydrated by the client with JSON data that is injected onto the page by the API. This contains the country code set in WooCommerce settings. So initially, the billing address is empty, then gets populated with a country code. Between these two steps, the
use-customer-data hook takes the value from wc/store/cart and assigns it to a local state variable. This means this local state variable customerData is out of sync with the wc/store/cart value. When a user updates their shipping address, an empty billing address is sent through the API call, and the server returns a "Country is required" error.

To solve this, we've used a couple of Refs to store the shipping and billing addresses, which will update their values when the cart store has hydrated. We then set the local state variable customerData to the shipping and billing addresses from wc/store/cart whenever they change. This only needs to run once, as any subsequent time will be the result of this effect or client side changes.

Fixes #5070

Other Checks

  • I've updated this doc for any feature flags or experimental interfaces implemented in this pull request.
  • I tagged two reviewers because this PR makes queries to the database or I think it might have some security impact.

Screenshots

Screenshot 2021-11-09 at 17 08 46

Testing

Automated Tests

  • Changes in this PR are covered by Automated Tests.
    • Unit tests
    • E2E tests

Manual Testing

How to test the changes in this Pull Request:

  1. Open up the cart page
  2. Change the shipping address in the shipping calculator and click Update
  3. You should NOT see an error and the address should update to match what you entered
  4. Go to Checkout and make sure the address that you entered has persisted in the checkout form
  5. Complete checkout and make sure the address is correct on the order

User Facing Testing

These are steps for user testing (where "user" is someone interacting with this change that is not editing any code).

  • Same as above, or

Changelog

Fix an issue that was causing an error when updating the address in the Cart block's shipping calculator.

@rubikuserbot rubikuserbot requested review from a team and nielslange and removed request for a team November 11, 2021 13:05
@github-actions
Copy link
Contributor

github-actions bot commented Nov 11, 2021

Size Change: +355 B (0%)

Total Size: 1.11 MB

Filename Size Change
build/cart-frontend.js 52.6 kB +60 B (0%)
build/cart.js 50.5 kB +67 B (0%)
build/checkout-blocks/order-summary-frontend.js 12.9 kB +11 B (0%)
build/checkout-frontend.js 54.8 kB +61 B (0%)
build/checkout.js 53.8 kB +85 B (0%)
build/mini-cart-component-frontend.js 44.4 kB +61 B (0%)
build/product-search.js 2.71 kB +19 B (+1%)
build/wc-blocks-style-rtl.css 21 kB -5 B (0%)
build/wc-blocks-style.css 21 kB -4 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 8.18 kB
build/active-filters.js 8 kB
build/all-products-frontend.js 23.4 kB
build/all-products.js 38.2 kB
build/all-reviews.js 9.56 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 3.19 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.81 kB
build/atomic-block-components/add-to-cart-frontend.js 8.34 kB
build/atomic-block-components/add-to-cart.js 7.85 kB
build/atomic-block-components/button-frontend.js 1.74 kB
build/atomic-block-components/button.js 873 B
build/atomic-block-components/category-list-frontend.js 466 B
build/atomic-block-components/category-list.js 469 B
build/atomic-block-components/image-frontend.js 1.71 kB
build/atomic-block-components/image.js 1.36 kB
build/atomic-block-components/price-frontend.js 2.13 kB
build/atomic-block-components/price.js 2.11 kB
build/atomic-block-components/rating-frontend.js 562 B
build/atomic-block-components/rating.js 566 B
build/atomic-block-components/sale-badge-frontend.js 861 B
build/atomic-block-components/sale-badge.js 868 B
build/atomic-block-components/sku-frontend.js 390 B
build/atomic-block-components/sku.js 393 B
build/atomic-block-components/stock-indicator-frontend.js 611 B
build/atomic-block-components/stock-indicator.js 610 B
build/atomic-block-components/summary-frontend.js 907 B
build/atomic-block-components/summary.js 912 B
build/atomic-block-components/tag-list-frontend.js 468 B
build/atomic-block-components/tag-list.js 471 B
build/atomic-block-components/title-frontend.js 1.47 kB
build/atomic-block-components/title.js 1.48 kB
build/attribute-filter-frontend.js 18.1 kB
build/attribute-filter.js 12.1 kB
build/blocks-checkout.js 21.3 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.39 kB
build/cart-blocks/checkout-button-frontend.js 1.21 kB
build/cart-blocks/empty-cart-frontend.js 348 B
build/cart-blocks/express-payment--checkout-blocks/express-payment--checkout-blocks/payment-frontend.js 4.73 kB
build/cart-blocks/express-payment-frontend.js 1.59 kB
build/cart-blocks/filled-cart-frontend.js 805 B
build/cart-blocks/items-frontend.js 302 B
build/cart-blocks/line-items-frontend.js 5.87 kB
build/cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 3.69 kB
build/cart-blocks/order-summary-frontend.js 7.4 kB
build/cart-blocks/totals-frontend.js 324 B
build/checkout-blocks/actions-frontend.js 1.48 kB
build/checkout-blocks/billing-address-frontend.js 2.64 kB
build/checkout-blocks/contact-information-frontend.js 3.62 kB
build/checkout-blocks/express-payment-frontend.js 1.93 kB
build/checkout-blocks/fields-frontend.js 348 B
build/checkout-blocks/order-note-frontend.js 1.25 kB
build/checkout-blocks/payment-frontend.js 4.28 kB
build/checkout-blocks/shipping-address-frontend.js 2.72 kB
build/checkout-blocks/shipping-methods-frontend.js 5.54 kB
build/checkout-blocks/terms-frontend.js 1.29 kB
build/checkout-blocks/totals-frontend.js 329 B
build/featured-category.js 7.74 kB
build/featured-product.js 9.43 kB
build/handpicked-products.js 6.27 kB
build/legacy-template.js 2.12 kB
build/mini-cart-frontend.js 2.34 kB
build/mini-cart.js 5.72 kB
build/price-filter-frontend.js 14.2 kB
build/price-filter.js 9.65 kB
build/price-format.js 1.37 kB
build/product-best-sellers.js 6.62 kB
build/product-categories.js 3.38 kB
build/product-category.js 7.49 kB
build/product-new.js 6.77 kB
build/product-on-sale.js 7.11 kB
build/product-tag.js 6.6 kB
build/product-top-rated.js 6.74 kB
build/products-by-attribute.js 7.71 kB
build/reviews-by-category.js 11.5 kB
build/reviews-by-product.js 13 kB
build/reviews-frontend.js 8.97 kB
build/single-product-frontend.js 26.9 kB
build/single-product.js 10 kB
build/stock-filter-frontend.js 8.62 kB
build/stock-filter.js 7.81 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 16.1 kB
build/vendors--atomic-block-components/add-to-cart-frontend.js 4.77 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 5.03 kB
build/wc-blocks-data.js 11.3 kB
build/wc-blocks-editor-style-rtl.css 15.7 kB
build/wc-blocks-editor-style.css 15.7 kB
build/wc-blocks-google-analytics.js 1.98 kB
build/wc-blocks-middleware.js 1.19 kB
build/wc-blocks-registry.js 3.71 kB
build/wc-blocks-shared-context.js 1.54 kB
build/wc-blocks-shared-hocs.js 1.92 kB
build/wc-blocks-vendors-style-rtl.css 1.37 kB
build/wc-blocks-vendors-style.css 1.37 kB
build/wc-blocks-vendors.js 255 kB
build/wc-blocks.js 3.49 kB
build/wc-payment-method-bacs.js 806 B
build/wc-payment-method-cheque.js 806 B
build/wc-payment-method-cod.js 898 B
build/wc-payment-method-paypal.js 839 B
build/wc-payment-method-stripe.js 12.2 kB
build/wc-settings.js 2.91 kB

compressed-size-action

@alexflorisca alexflorisca marked this pull request as draft November 12, 2021 10:04
…hipping addresses only when needed in API calls
@alexflorisca alexflorisca self-assigned this Nov 12, 2021
@alexflorisca alexflorisca added focus: blocks Specific work involving or impacting how blocks behave. status: ready to merge type: bug The issue/PR concerns a confirmed bug. block: cart Issues related to the cart block. labels Nov 12, 2021
@alexflorisca alexflorisca marked this pull request as ready for review November 12, 2021 17:15
@alexflorisca alexflorisca changed the title Fix/country is required error message by using refs Fix 'Country is required' error on the Cart block when updating shipping address Nov 12, 2021
@mikejolley mikejolley added this to the 6.3.0 milestone Nov 15, 2021
@mikejolley mikejolley added status: blocker Used on issues or pulls that block work from being released. and removed status: ready to merge labels Nov 15, 2021
Comment on lines 97 to 98
billingDataRef.current = initialBillingAddress;
shippingAddressRef.current = initialShippingAddress;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are doing this here if we have hasCustomerDataSynced and the condition below?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's because initialBillingAddress and initialShippingAddress will update once the cart store has been hydrated. So we are storing a ref to it to reflect the change

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the initial value passed to useRef serve as that? I know that this line will execute each time the hook runs so are you updating the ref each time?

billingDataRef.current = initialBillingAddress;

Copy link
Member

@senadir senadir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is testing well! I'd be honest that the implementation is going a bit over my head as I was struggling to follow all the shouldUpdates but as long as the issue is fixed I'm okay with it right now.

@alexflorisca
Copy link
Member Author

The shouldUpdateBillingAddress and shouldUpdateShippingAddress are just comparing when the 2 addresses have changed separately, so that we know which ones to send to the API request. It's a bunch of logic to work out weather to send either one of them or both based on what's actually changed.

@alexflorisca alexflorisca merged commit 425b0b3 into trunk Nov 16, 2021
@alexflorisca alexflorisca deleted the fix/country-is-required-alt branch November 16, 2021 12:39
nielslange pushed a commit that referenced this pull request Nov 17, 2021
…ing address (#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>
nielslange added a commit that referenced this pull request Nov 17, 2021
* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (#5151)

* Remove feature gate condition for Legacy Template block (#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
nielslange added a commit that referenced this pull request Nov 17, 2021
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.3.0 release

* Update testing instructions as MD tables didn't work

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update docs/testing/releases/630.md

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update readme.txt

* Update release zip in testing note

* Update testing instructions

* Remove feature gate condition for Legacy Template block (#5158)

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

* Update testing instructions

* Update testing instructions

* Update release zip in testing note

* Update testing instructions for SE templates

* Update testing instructions for SE templates II

* Update testing instructions

* Bumping version strings to new version.

* Release: 6.3.1 (#5169)

* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (#5151)

* Remove feature gate condition for Legacy Template block (#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Niels Lange <[email protected]>

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
nielslange added a commit that referenced this pull request Nov 18, 2021
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.3.0 release

* Update testing instructions as MD tables didn't work

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update docs/testing/releases/630.md

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update readme.txt

* Update release zip in testing note

* Update testing instructions

* Remove feature gate condition for Legacy Template block (#5158)

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

* Update testing instructions

* Update testing instructions

* Update release zip in testing note

* Update testing instructions for SE templates

* Update testing instructions for SE templates II

* Update testing instructions

* Bumping version strings to new version.

* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (#5151)

* Remove feature gate condition for Legacy Template block (#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

* Empty commit for release pull request

* Update readme.txt

* Add testing instructions

* Add testing notes to README.md

* Hide WooCommmerce block templates from Edit Post template dropdown (#5167)

* Hide WooCommmerce block templates from Edit Post template dropdown

* Add empty post_types value to template and update comments.

* Legacy Template Block: Remove the deletion lock (#5166)

Previously, our legacy template block was locked to prevent the users from
removing it. The block could however be removed by erasing the parent, so
this change allows the user to directly remove the block itself.

Also:
Closes #5163
Closes #5109

* Update release zip

* Update release zip

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Tom Cafferkey <[email protected]>
Co-authored-by: Lucio Giannotta <[email protected]>
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 14, 2021
…ing address (woocommerce#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 14, 2021
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.3.0 release

* Update testing instructions as MD tables didn't work

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update docs/testing/releases/630.md

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update readme.txt

* Update release zip in testing note

* Update testing instructions

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

* Update testing instructions

* Update testing instructions

* Update release zip in testing note

* Update testing instructions for SE templates

* Update testing instructions for SE templates II

* Update testing instructions

* Bumping version strings to new version.

* Release: 6.3.1 (woocommerce#5169)

* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (woocommerce#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (woocommerce#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (woocommerce#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (woocommerce#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (woocommerce#5151)

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Niels Lange <[email protected]>

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 14, 2021
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.3.0 release

* Update testing instructions as MD tables didn't work

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update docs/testing/releases/630.md

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update readme.txt

* Update release zip in testing note

* Update testing instructions

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

* Update testing instructions

* Update testing instructions

* Update release zip in testing note

* Update testing instructions for SE templates

* Update testing instructions for SE templates II

* Update testing instructions

* Bumping version strings to new version.

* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (woocommerce#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (woocommerce#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (woocommerce#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (woocommerce#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (woocommerce#5151)

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

* Empty commit for release pull request

* Update readme.txt

* Add testing instructions

* Add testing notes to README.md

* Hide WooCommmerce block templates from Edit Post template dropdown (woocommerce#5167)

* Hide WooCommmerce block templates from Edit Post template dropdown

* Add empty post_types value to template and update comments.

* Legacy Template Block: Remove the deletion lock (woocommerce#5166)

Previously, our legacy template block was locked to prevent the users from
removing it. The block could however be removed by erasing the parent, so
this change allows the user to directly remove the block itself.

Also:
Closes woocommerce#5163
Closes woocommerce#5109

* Update release zip

* Update release zip

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Tom Cafferkey <[email protected]>
Co-authored-by: Lucio Giannotta <[email protected]>
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 16, 2021
…ing address (woocommerce#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 16, 2021
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.3.0 release

* Update testing instructions as MD tables didn't work

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update docs/testing/releases/630.md

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update readme.txt

* Update release zip in testing note

* Update testing instructions

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

* Update testing instructions

* Update testing instructions

* Update release zip in testing note

* Update testing instructions for SE templates

* Update testing instructions for SE templates II

* Update testing instructions

* Bumping version strings to new version.

* Release: 6.3.1 (woocommerce#5169)

* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (woocommerce#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (woocommerce#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (woocommerce#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (woocommerce#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (woocommerce#5151)

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Niels Lange <[email protected]>

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 16, 2021
* Empty commit for release pull request

* Update readme.txt with release changelog

* Add testing instructions for 6.3.0 release

* Update testing instructions as MD tables didn't work

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update docs/testing/releases/630.md

Co-authored-by: Albert Juhé Lluveras <[email protected]>

* Update readme.txt

* Update release zip in testing note

* Update testing instructions

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update testing instructions

* Update testing instructions

* Update testing instructions

* Update readme.txt

* Update testing instructions

* Update testing instructions

* Update release zip in testing note

* Update testing instructions for SE templates

* Update testing instructions for SE templates II

* Update testing instructions

* Bumping version strings to new version.

* Empty commit for release pull request

* Fix state validation to compare state codes, and only validate if a country is given (woocommerce#5132)

* Only get valid states from wc if there is a country

* Shared validation logic which uses keys

* Fix 'Country is required' error on the Cart block when updating shipping address (woocommerce#5129)

* Fix  error on the Cart block

* Created a cartIsHydrated variable in useStoreCart hook and used this to update the billing address in the internal state of the useCustomerData hook

* Fix the country is required error on the Cart page using refs

* Separate api calls to update shipping and billingUpdate billing and shipping addresses only when needed in API calls

* Remove redundant check for customerDataToUpdate

* remove use of refs in initial values

Co-authored-by: Nadir Seghir <[email protected]>

* Make order note block removable (woocommerce#5139)

* unforce order note

* show block in inserter

* Mini Cart block fatal error caused by append_script_and_deps_src (woocommerce#5142)

* Remove unused use statements

* Fix types for $script

* `get_script_from_handle` might return null so handle this case to prevent errors

* Missing escaping

* Replace do_action_deprecated with the WC equivalent (woocommerce#5151)

* Remove feature gate condition for Legacy Template block (woocommerce#5158)

* Update readme.txt

* Update testing instructions

* Bumping version strings to new version.

* Empty commit for release pull request

* Update readme.txt

* Add testing instructions

* Add testing notes to README.md

* Hide WooCommmerce block templates from Edit Post template dropdown (woocommerce#5167)

* Hide WooCommmerce block templates from Edit Post template dropdown

* Add empty post_types value to template and update comments.

* Legacy Template Block: Remove the deletion lock (woocommerce#5166)

Previously, our legacy template block was locked to prevent the users from
removing it. The block could however be removed by erasing the parent, so
this change allows the user to directly remove the block itself.

Also:
Closes woocommerce#5163
Closes woocommerce#5109

* Update release zip

* Update release zip

* Update testing instructions

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Niels Lange <[email protected]>
Co-authored-by: Albert Juhé Lluveras <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Co-authored-by: Alex Florisca <[email protected]>
Co-authored-by: Nadir Seghir <[email protected]>
Co-authored-by: Thomas Roberts <[email protected]>
Co-authored-by: Tom Cafferkey <[email protected]>
Co-authored-by: Lucio Giannotta <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: cart Issues related to the cart block. focus: blocks Specific work involving or impacting how blocks behave. status: blocker Used on issues or pulls that block work from being released. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Getting 'Country is Required' even when entered to calculate shipping in basket
3 participants