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

Remove WC Core shipping settings if Cart/Checkout blocks are in use #8679

Merged
merged 58 commits into from
Mar 13, 2023

Conversation

opr
Copy link
Contributor

@opr opr commented Mar 9, 2023

This is part of a series of PRs required to satisfy #7895.

In this PR we remove settings from WooCommerce -> Settings -> Shipping -> Shipping Options

Specifically the options disabled are:

  • Enable the shipping calculator on the cart page if the Cart Block is present on the Cart page and,
  • Hide shipping costs until an address is entered if the Checkout Block is present on the Checkout page.

The first setting is controlled by the Cart Block's settings, and the second option should always be no for the purposes of getting the correct local pickup rates from the store API, and will be moved to a block setting in a later PR.

I also added a utility function to see if the Cart/Checkout blocks are the default experience. This check could be made multiple places over the codebase, so when we spot it we can update it to use the utility function.

It also adds E2E tests to ensure this is working as expected.

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 -> Advanced - set the Cart and Checkout pages to pages containing the shortcode cart/checkout experience. Save.
  2. Go to WooCommerce -> Settings -> Shipping -> Shipping Options - observe the two options, Hide shipping costs until an address is entered and Enable the shipping calculator on the cart page.
  3. Go to WooCommerce -> Settings -> Advanced - set the Cart page to one containing the Cart Block. Save.
  4. Go to WooCommerce -> Settings -> Shipping -> Shipping Options - observe that where the two options were in step 2, only, Hide shipping costs until an address is entered remains. Ensure it displays correctly and looks OK.
  5. Go to WooCommerce -> Settings -> Advanced - set the Checkout page to one containing the Checkout Block. Save.
  6. Go to WooCommerce -> Settings -> Shipping -> Shipping Options - observe that where the two options were in step 2 nothing appears.
  7. Go to WooCommerce -> Settings -> Advanced - set the Cart page to one containing the Shortcode cart. Save.
  8. Go to WooCommerce -> Settings -> Shipping -> Shipping Options - observe that where the two options were in step 2 only Enable the shipping calculator on the cart page appears. Ensure it displays correctly.

Expected results

Shortcode Cart Block Cart
Shortcode Checkout image image
Block Checkout image image
  • Do not include in the Testing Notes

WooCommerce Visibility

  • WooCommerce Core
  • Feature plugin
  • Experimental

Performance Impact

Changelog

Remove certain Shipping settings from WooCommerce -> Settings -> Shipping -> Shipping Options when using the Cart or Checkout blocks, these have been moved to setting on the blocks.

@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: cart Issues related to the cart block. 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 tarhi-saad and removed request for a team March 9, 2023 00:19
@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-8679.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
products-by-attribute.js wp-data ⚠️

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

TypeScript Errors Report

  • Files with errors: 487
  • Total errors: 2311

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

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/utils/attributes.ts

comments-aggregator

@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2023

Size Change: +1.74 kB (0%)

Total Size: 1.12 MB

Filename Size Change
build/active-filters-frontend.js 7.97 kB +4 B (0%)
build/active-filters-wrapper-frontend.js 5.98 kB +5 B (0%)
build/active-filters.js 7.47 kB +99 B (+1%)
build/all-products.js 37.7 kB -8 B (0%)
build/all-reviews.js 7.65 kB -10 B (0%)
build/attribute-filter-frontend.js 22.5 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.5 kB +4 B (0%)
build/attribute-filter.js 13.2 kB +89 B (+1%)
build/blocks-checkout.js 41.2 kB -2 B (0%)
build/cart-blocks/cart-cross-sells-products-frontend.js 9.74 kB +1 B (0%)
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.19 kB +2 B (0%)
build/cart-blocks/cart-express-payment-frontend.js 719 B -1 B (0%)
build/cart-blocks/cart-items-frontend.js 302 B +1 B (0%)
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.35 kB -2 B (0%)
build/cart-blocks/cart-order-summary-frontend.js 1.24 kB -1 B (0%)
build/cart-blocks/cart-totals-frontend.js 308 B +1 B (0%)
build/cart-blocks/empty-cart-frontend.js 345 B -1 B (0%)
build/cart-blocks/filled-cart-frontend.js 655 B +2 B (0%)
build/cart-blocks/order-summary-coupon-form-frontend.js 1.62 kB -1 B (0%)
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB -2 B (0%)
build/cart-blocks/order-summary-heading-frontend.js 454 B -1 B (0%)
build/cart-blocks/order-summary-shipping-frontend.js 14.8 kB +10 B (0%)
build/cart-blocks/order-summary-taxes-frontend.js 435 B +1 B (0%)
build/cart-blocks/proceed-to-checkout-frontend.js 1.33 kB +1 B (0%)
build/cart-frontend.js 29 kB +2 B (0%)
build/cart.js 47.6 kB +5 B (0%)
build/checkout-blocks/actions-frontend.js 1.84 kB -1 B (0%)
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 3.92 kB +3 B (0%)
build/checkout-blocks/billing-address-frontend.js 1.18 kB -1 B (0%)
build/checkout-blocks/contact-information-frontend.js 2.05 kB -1 B (0%)
build/checkout-blocks/fields-frontend.js 331 B +1 B (0%)
build/checkout-blocks/order-note-frontend.js 1.14 kB +1 B (0%)
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.78 kB -2 B (0%)
build/checkout-blocks/order-summary-discount-frontend.js 2.29 kB -1 B (0%)
build/checkout-blocks/order-summary-shipping-frontend.js 14.9 kB +8 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.47 kB +198 B (+9%) 🔍
build/checkout-blocks/shipping-methods-frontend.js 4.78 kB +200 B (+4%)
build/checkout-blocks/terms-frontend.js 1.56 kB -2 B (0%)
build/checkout-frontend.js 30.5 kB +17 B (0%)
build/checkout.js 44.9 kB +726 B (+2%)
build/featured-category.js 14 kB -2 B (0%)
build/filter-wrapper-frontend.js 14.1 kB -4 B (0%)
build/handpicked-products.js 7.9 kB -1 B (0%)
build/mini-cart-component-frontend.js 28 kB +3 B (0%)
build/mini-cart-contents-block/footer-frontend.js 2.86 kB -3 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 -1 B (0%)
build/mini-cart-contents.js 16.6 kB +1 B (0%)
build/mini-cart.js 4.29 kB +3 B (0%)
build/price-filter-frontend.js 13.9 kB -1 B (0%)
build/price-filter-wrapper-frontend.js 6.99 kB +4 B (0%)
build/product-add-to-cart-frontend.js 6.69 kB -3 B (0%)
build/product-category-list-frontend.js 1.19 kB +2 B (0%)
build/product-category.js 9.24 kB -3 B (0%)
build/product-image-frontend.js 2.22 kB -2 B (0%)
build/product-image.js 4.12 kB +1 B (0%)
build/product-new.js 8.25 kB -2 B (0%)
build/product-on-sale.js 8.57 kB -1 B (0%)
build/product-price-frontend.js 2.38 kB -3 B (0%)
build/product-price.js 1.64 kB +3 B (0%)
build/product-query.js 10.9 kB +99 B (+1%)
build/product-rating-frontend.js 1.65 kB +1 B (0%)
build/product-sale-badge.js 820 B +1 B (0%)
build/product-sku.js 453 B +1 B (0%)
build/product-stock-indicator-frontend.js 1.32 kB +5 B (0%)
build/product-summary-frontend.js 1.58 kB +2 B (0%)
build/product-tag-list-frontend.js 1.19 kB +1 B (0%)
build/product-tag.js 8.73 kB -1 B (0%)
build/product-title.js 3.48 kB +4 B (0%)
build/product-top-rated.js 8.49 kB -2 B (0%)
build/products-by-attribute.js 9.58 kB +131 B (+1%)
build/rating-filter-frontend.js 20.9 kB -2 B (0%)
build/rating-filter.js 7.41 kB -2 B (0%)
build/reviews-by-category.js 11.9 kB -8 B (0%)
build/reviews-by-product.js 12.9 kB -7 B (0%)
build/single-product-frontend.js 17.9 kB +4 B (0%)
build/single-product.js 10.6 kB -1 B (0%)
build/stock-filter-frontend.js 21.1 kB -1 B (0%)
build/stock-filter.js 8.13 kB -2 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--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-method-frontend.js 12 kB -1 B (0%)
build/vendors--checkout-blocks/shipping-methods-frontend.js 8.84 kB -1 B (0%)
build/wc-blocks-data.js 21.8 kB +182 B (+1%)
build/wc-blocks-registry.js 3.15 kB +2 B (0%)
build/wc-blocks-shared-hocs.js 1.73 kB -4 B (0%)
build/wc-blocks-vendors.js 64.4 kB +5 B (0%)
build/wc-settings.js 2.6 kB -2 B (0%)
ℹ️ View Unchanged
Filename Size
build/all-products-frontend.js 11.7 kB
build/breadcrumbs.js 2.05 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-line-items-frontend.js 1.07 kB
build/cart-blocks/order-summary-fee-frontend.js 274 B
build/cart-blocks/order-summary-subtotal-frontend.js 275 B
build/catalog-sorting.js 1.7 kB
build/checkout-blocks/express-payment-frontend.js 1.13 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.67 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/totals-frontend.js 311 B
build/customer-account.js 3.16 kB
build/featured-product.js 14.2 kB
build/filter-wrapper.js 2.39 kB
build/general-style-rtl.css 1.31 kB
build/general-style.css 1.31 kB
build/legacy-template.js 5.32 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-frontend.js 2.02 kB
build/price-filter.js 8.38 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-add-to-cart.js 8.62 kB
build/product-best-sellers.js 8.25 kB
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-button-frontend.js 2.22 kB
build/product-button.js 4.01 kB
build/product-categories.js 2.36 kB
build/product-category-list.js 502 B
build/product-rating.js 919 B
build/product-results-count.js 1.65 kB
build/product-sale-badge-frontend.js 1.45 kB
build/product-search.js 2.63 kB
build/product-sku-frontend.js 707 B
build/product-stock-indicator.js 645 B
build/product-summary.js 919 B
build/product-tag-list.js 498 B
build/product-title-frontend.js 1.64 kB
build/rating-filter-wrapper-frontend.js 5.61 kB
build/reviews-frontend.js 7.13 kB
build/stock-filter-wrapper-frontend.js 3.15 kB
build/store-notices.js 1.69 kB
build/vendors--attribute-filter-wrapper--rating-filter-wrapper--stock-filter-wrapper-frontend.js 7.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/wc-blocks-editor-style-rtl.css 5.82 kB
build/wc-blocks-editor-style.css 5.82 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 932 B
build/wc-blocks-shared-context.js 1.51 kB
build/wc-blocks-style-rtl.css 26.9 kB
build/wc-blocks-style.css 26.8 kB
build/wc-blocks-vendors-style-rtl.css 1.96 kB
build/wc-blocks-vendors-style.css 1.96 kB
build/wc-blocks.js 2.63 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-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.

Tested out ok! remove_shipping_settings() might be a bit too big and confusing with all the iteration going on, but the comments make it easier.

@github-actions github-actions bot added this to the 9.8.0 milestone Mar 9, 2023
@nielslange nielslange assigned mikejolley and unassigned opr Mar 13, 2023
@Aljullu Aljullu modified the milestones: 9.8.0, 9.9.0 Mar 13, 2023
@mikejolley mikejolley force-pushed the remove/core-shipping-settings branch from 63a1ddb to 54833ea Compare March 13, 2023 11:33
@mikejolley mikejolley merged commit 510eec4 into trunk Mar 13, 2023
@mikejolley mikejolley deleted the remove/core-shipping-settings branch March 13, 2023 11:49
@ralucaStan
Copy link
Contributor

Mentioning that a part of this PR was merged https://github.com/woocommerce/woocommerce-blocks/commit/510eec49f3f841bf61c531bf4460efe9a384f3c3#diff-a942a5198733d5fa79[…]34694286a6e49e4R420-R427 in the WC Blocks 9.8.0 release branch via this PR #8718. See the internal discussion p1678712946221229-slack-C8X6Q7XQU.

If this PR gets reverted at some point, the bug fix mentioned above should be brought to trunk.

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. 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.

5 participants