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

Add setting to Checkout block to control Hide shipping costs until an address is entered option #8680

Merged
merged 54 commits into from
Mar 13, 2023

Conversation

opr
Copy link
Contributor

@opr opr commented Mar 9, 2023

This PR is based on remove/core-shipping-settings #8679 - I split it up to make the changes easier to review.

This PR adds a control to the editor when selecting either the Shipping Method block or the Shipping Options block. The control is used to change the Hide shipping costs until an address is entered option, this was removed from WC Core in #8679 and is now a block option.

The setting is present on two blocks, and changing it on one block will also affect the other block. This is achieved by the updateAttributeInSiblingBlock function I added in f47cb95

In 18af032 I also added a filter to override the woocommerce_shipping_cost_requires_address option - this should always be no if the Checkout block is in use, because we will instead use the block control.

This PR contains commit 92ed998 which will be reverted in the next PR. This commit was included to make the PR testable.

Screenshots

Before After
image image

Testing

Automated Tests

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

User Facing Testing

  1. Go to WooCommerce -> Settings -> Shipping -> Local Pickup, enable Local Pickup and add a location.
  2. Go to the Checkout block in the editor. Select the Shipping Method block

image

  1. See the Hide shipping costs until an address is entered option in the block sidebar.
  2. Toggle it and ensure it works. Remember the value you toggled it to.
  3. Select the Shipping options block, see the same option. Ensure the value is the same as what it was in step 4.
  4. If the option is true then you should see the text Shipping options will be displayed here after entering your full shipping address. instead of shipping options.
  5. Toggle the option and ensure the inner block changes to either shipping options or the text.
  6. Go back to the Shipping Method block and toggle the option there. View the Shipping options block while toggling and ensure it changes.

See loom for testing: https://www.loom.com/share/e28c4b49835b44d99a762aca14e80b7f

  • Do not include in the Testing Notes

WooCommerce Visibility

  • WooCommerce Core
  • Feature plugin
  • Experimental

Performance Impact

Changelog

Move option to hide shipping costs until an address is entered to the Checkout block.

@opr opr added status: needs review type: enhancement The issue is a request for an enhancement. focus: blocks Specific work involving or impacting how blocks behave. block: checkout Issues related to the checkout block. labels Mar 9, 2023
@opr opr self-assigned this Mar 9, 2023
@woocommercebot woocommercebot requested review from a team and wavvves and removed request for a team March 9, 2023 01:02
@opr opr force-pushed the add/hide-costs-control branch from 92ed998 to f0c1fe7 Compare March 9, 2023 01:05
@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2023

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-8680.zip

Script Dependencies Report

The compare-assets action has detected some changed script dependencies between this branch and trunk. Please review and confirm the following are correct before merging.

Script Handle Added Removed
product-query.js wp-compose, wp-escape-html, wp-html-entities 🎉

This comment was automatically generated by the ./github/compare-assets action.

TypeScript Errors Report

  • Files with errors: 487
  • Total errors: 2316

⚠️ ⚠️ This PR introduces new TS errors on 13 files:

assets/js/blocks/cart-checkout-shared/payment-methods/test/payment-methods.js

assets/js/blocks/cart/cart-line-items-table/cart-line-item-row.tsx

assets/js/blocks/cart/inner-blocks/proceed-to-checkout-block/block.tsx

assets/js/blocks/cart/test/block.js

assets/js/blocks/checkout/inner-blocks/checkout-shipping-method-block/edit.tsx

assets/js/blocks/checkout/inner-blocks/checkout-shipping-methods-block/edit.tsx

assets/js/data/cart/reducers.ts

assets/js/data/payment/utils/check-payment-methods.ts

assets/js/editor-components/expandable-search-list-item/expandable-search-list-item.tsx

assets/js/editor-components/product-attribute-term-control/index.js

assets/js/editor-components/search-list-control/search-list-control.tsx

assets/js/utils/attributes.ts

packages/checkout/filter-registry/index.ts

comments-aggregator

@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2023

Size Change: +680 B (0%)

Total Size: 1.11 MB

Filename Size Change
build/active-filters-frontend.js 7.97 kB +4 B (0%)
build/active-filters-wrapper-frontend.js 5.99 kB +8 B (0%)
build/active-filters.js 7.42 kB +103 B (+1%)
build/all-products-frontend.js 11.7 kB -8 B (0%)
build/all-products.js 36.8 kB +3 B (0%)
build/all-reviews.js 7.65 kB -1 B (0%)
build/attribute-filter-frontend.js 22.4 kB +2 B (0%)
build/attribute-filter-wrapper--stock-filter-wrapper-frontend.js 3.36 kB -1 B (0%)
build/attribute-filter-wrapper-frontend.js 4.46 kB +3 B (0%)
build/attribute-filter.js 12.5 kB +87 B (+1%)
build/cart-blocks/cart-cross-sells-products-frontend.js 9.75 kB -2 B (0%)
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.35 kB -1 B (0%)
build/cart-blocks/order-summary-coupon-form-frontend.js 1.62 kB -1 B (0%)
build/cart-blocks/proceed-to-checkout-frontend.js 1.24 kB -2 B (0%)
build/cart-frontend.js 28.9 kB +5 B (0%)
build/cart.js 47.7 kB +11 B (0%)
build/checkout-blocks/billing-address-frontend.js 1.18 kB +1 B (0%)
build/checkout-blocks/express-payment-frontend.js 1.13 kB +1 B (0%)
build/checkout-blocks/order-summary-cart-items-frontend.js 3.67 kB +1 B (0%)
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.79 kB +1 B (0%)
build/checkout-blocks/order-summary-shipping-frontend.js 14.9 kB +1 B (0%)
build/checkout-blocks/payment-frontend.js 8.43 kB +1 B (0%)
build/checkout-blocks/shipping-address-frontend.js 1.14 kB +1 B (0%)
build/checkout-blocks/shipping-method-frontend.js 2.3 kB +19 B (+1%)
build/checkout-blocks/shipping-methods-frontend.js 4.62 kB +39 B (+1%)
build/checkout-blocks/totals-frontend.js 311 B +1 B (0%)
build/checkout-frontend.js 30.5 kB +23 B (0%)
build/checkout.js 44.6 kB +417 B (+1%)
build/featured-category.js 13.3 kB -2 B (0%)
build/featured-product.js 13.6 kB -3 B (0%)
build/filter-wrapper-frontend.js 14.1 kB +2 B (0%)
build/legacy-template.js 5.28 kB -3 B (0%)
build/mini-cart-component-frontend.js 28 kB -4 B (0%)
build/mini-cart-contents-block/footer-frontend.js 2.86 kB -1 B (0%)
build/mini-cart-contents-block/items-frontend.js 238 B +1 B (0%)
build/mini-cart-contents-block/shopping-button-frontend.js 573 B -2 B (0%)
build/mini-cart.js 4.29 kB +1 B (0%)
build/price-filter-frontend.js 13.8 kB -1 B (0%)
build/price-filter-wrapper-frontend.js 6.99 kB +4 B (0%)
build/price-filter.js 8.38 kB -3 B (0%)
build/product-add-to-cart-frontend.js 6.69 kB -1 B (0%)
build/product-add-to-cart.js 8.61 kB +1 B (0%)
build/product-best-sellers.js 7.6 kB -2 B (0%)
build/product-button-frontend.js 2.22 kB -1 B (0%)
build/product-button.js 3.99 kB -2 B (0%)
build/product-categories.js 2.36 kB +1 B (0%)
build/product-category-list-frontend.js 1.19 kB +1 B (0%)
build/product-category.js 8.58 kB -1 B (0%)
build/product-image-frontend.js 2.22 kB -1 B (0%)
build/product-new.js 7.58 kB -3 B (0%)
build/product-on-sale.js 7.91 kB -1 B (0%)
build/product-price-frontend.js 2.38 kB -1 B (0%)
build/product-price.js 1.64 kB -1 B (0%)
build/product-query.js 6.6 kB -2 B (0%)
build/product-stock-indicator-frontend.js 1.32 kB +7 B (+1%)
build/product-stock-indicator.js 644 B -1 B (0%)
build/product-summary-frontend.js 1.58 kB +1 B (0%)
build/product-tag-list-frontend.js 1.19 kB +2 B (0%)
build/product-title-frontend.js 1.64 kB -3 B (0%)
build/product-title.js 3.46 kB +1 B (0%)
build/product-top-rated.js 7.82 kB -1 B (0%)
build/products-by-attribute.js 8.53 kB -1 B (0%)
build/rating-filter-frontend.js 20.9 kB -3 B (0%)
build/rating-filter-wrapper-frontend.js 5.61 kB +1 B (0%)
build/rating-filter.js 7.42 kB -1 B (0%)
build/reviews-by-category.js 11.2 kB -1 B (0%)
build/single-product-frontend.js 17.9 kB -5 B (0%)
build/stock-filter-frontend.js 21.1 kB -2 B (0%)
build/stock-filter.js 8.13 kB -5 B (0%)
build/vendors--attribute-filter-wrapper--cart-blocks/cart-cross-sells-products--cart-blocks/order-summary--82e4ed06-frontend.js 6.86 kB +1 B (0%)
build/vendors--attribute-filter-wrapper--rating-filter-wrapper--stock-filter-wrapper-frontend.js 7.69 kB +1 B (0%)
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/order-summary-shipping--checkout-blocks--18f9376a-frontend.js 19.4 kB +1 B (0%)
build/vendors--cart-blocks/cart-cross-sells-products--product-add-to-cart-frontend.js 7.25 kB +1 B (0%)
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--5b8feb0b-frontend.js 4.83 kB +1 B (0%)
build/vendors--checkout-blocks/shipping-methods-frontend.js 8.84 kB -2 B (0%)
build/wc-blocks-vendors.js 64.4 kB -3 B (0%)
build/wc-blocks.js 2.62 kB -1 B (0%)
ℹ️ View Unchanged
Filename Size
build/blocks-checkout.js 41.2 kB
build/breadcrumbs.js 2.04 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.38 kB
build/cart-blocks/cart-cross-sells-frontend.js 253 B
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.19 kB
build/cart-blocks/cart-express-payment-frontend.js 719 B
build/cart-blocks/cart-items-frontend.js 302 B
build/cart-blocks/cart-line-items-frontend.js 1.07 kB
build/cart-blocks/cart-order-summary-frontend.js 1.24 kB
build/cart-blocks/cart-totals-frontend.js 308 B
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/filled-cart-frontend.js 655 B
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB
build/cart-blocks/order-summary-fee-frontend.js 274 B
build/cart-blocks/order-summary-heading-frontend.js 455 B
build/cart-blocks/order-summary-shipping-frontend.js 14.8 kB
build/cart-blocks/order-summary-subtotal-frontend.js 275 B
build/cart-blocks/order-summary-taxes-frontend.js 434 B
build/catalog-sorting.js 1.7 kB
build/checkout-blocks/actions-frontend.js 1.85 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 3.92 kB
build/checkout-blocks/contact-information-frontend.js 2.05 kB
build/checkout-blocks/fields-frontend.js 331 B
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.29 kB
build/checkout-blocks/order-summary-fee-frontend.js 277 B
build/checkout-blocks/order-summary-frontend.js 1.24 kB
build/checkout-blocks/order-summary-subtotal-frontend.js 275 B
build/checkout-blocks/order-summary-taxes-frontend.js 435 B
build/checkout-blocks/pickup-options-frontend.js 2.8 kB
build/checkout-blocks/terms-frontend.js 1.56 kB
build/customer-account.js 3.17 kB
build/filter-wrapper.js 2.39 kB
build/general-style-rtl.css 1.31 kB
build/general-style.css 1.31 kB
build/handpicked-products.js 7.24 kB
build/mini-cart-contents-block/empty-cart-frontend.js 360 B
build/mini-cart-contents-block/filled-cart-frontend.js 268 B
build/mini-cart-contents-block/products-table-frontend.js 588 B
build/mini-cart-contents-block/title-frontend.js 367 B
build/mini-cart-contents.js 16.6 kB
build/mini-cart-frontend.js 2 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-category-list--product-image--product-price--product-r--a0326d00.js 253 B
build/product-add-to-cart--product-button--product-image--product-rating--product-title.js 151 B
build/product-button--product-category-list--product-image--product-price--product-rating--product-sale-b--e17c7c01.js 500 B
build/product-button--product-image--product-price--product-rating--product-sale-badge--product-title.js 262 B
build/product-category-list.js 501 B
build/product-image.js 4.09 kB
build/product-rating-frontend.js 1.65 kB
build/product-rating.js 920 B
build/product-results-count.js 1.65 kB
build/product-sale-badge-frontend.js 1.45 kB
build/product-sale-badge.js 818 B
build/product-search.js 2.63 kB
build/product-sku-frontend.js 629 B
build/product-sku.js 376 B
build/product-summary.js 920 B
build/product-tag-list.js 497 B
build/product-tag.js 8.07 kB
build/reviews-by-product.js 12.3 kB
build/reviews-frontend.js 7.12 kB
build/single-product.js 9.97 kB
build/stock-filter-wrapper-frontend.js 3.15 kB
build/store-notices.js 1.69 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/cart-line-items--cart-blocks/cart-order--3c5fe802-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.14 kB
build/vendors--checkout-blocks/shipping-method-frontend.js 12 kB
build/wc-blocks-data.js 21.5 kB
build/wc-blocks-editor-style-rtl.css 5.68 kB
build/wc-blocks-editor-style.css 5.68 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 933 B
build/wc-blocks-registry.js 3.15 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.73 kB
build/wc-blocks-style-rtl.css 26.8 kB
build/wc-blocks-style.css 26.7 kB
build/wc-blocks-vendors-style-rtl.css 1.96 kB
build/wc-blocks-vendors-style.css 1.96 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.6 kB
build/wc-shipping-method-pickup-location.js 29.7 kB
build/woo-directives-runtime.js 2.73 kB
build/woo-directives-vendors.js 7.91 kB

compressed-size-action

Copy link
Contributor

@wavvves wavvves left a comment

Choose a reason for hiding this comment

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

LGTM!

@nielslange nielslange assigned mikejolley and unassigned opr Mar 13, 2023
@Aljullu Aljullu modified the milestones: 9.8.0, 9.9.0 Mar 13, 2023
Update `wc/store/cart` to handle hidden shipping costs until address is entered
@mikejolley mikejolley merged commit 63a1ddb into remove/core-shipping-settings Mar 13, 2023
@mikejolley mikejolley deleted the add/hide-costs-control branch March 13, 2023 11:31
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: checkout Issues related to the checkout block. focus: blocks Specific work involving or impacting how blocks behave. type: enhancement The issue is a request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants