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

Conversation

@gigitux
Copy link
Contributor

@gigitux gigitux commented Nov 30, 2022

This PR fixes an issue when the Mini Cart block is used on a WordPress website with Page Optimize and Product Bundles plugins enabled.

The drawer of the Mini Cart block wasn't loaded (with an empty Card and with a filled Cart)

image

Technical details

This PR is just a fix Mini Cart inner blocks are registered. The original fix is fixed by #7794. In any case, I think that we should merge this PR too.

Kudos to @Aljullu, @nerrad, @senadir, and @daledupreez, that helps me during the investigation!

Testing

Automated Tests

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

User Facing Testing

  1. Install Page Optimize, Product Bundles, and WooCommerce Blocks (stable version).
  2. Enable a block theme.
  3. Customize the block theme and add the Mini Cart block in the header via Site Editor.
  4. Save the changes.
  5. Go to the front-end and click on the Mini Cart. The drawer should open without any content (as in the image above).
  6. Go on wp-admin.
  7. Disable WooCommerce Blocks.
  8. Install a WooCommerce Blocks build using this branch (you can download the link generated by the automation).
  9. Repeat step 5. Now the drawer should show the Cart.
  • Do not include in the Testing Notes

WooCommerce Visibility

  • WooCommerce Core
  • Feature plugin
  • Experimental

Changelog

Mini Cart block: fix compatibility with Page Optimize and Product Bundles plugins

@gigitux gigitux added type: bug The issue/PR concerns a confirmed bug. block: mini-cart Issues related to the Mini-Cart block. labels Nov 30, 2022
@gigitux gigitux self-assigned this Nov 30, 2022
@rubikuserbot rubikuserbot requested review from a team and danielwrobert and removed request for a team November 30, 2022 15:09
@github-actions
Copy link
Contributor

The release ZIP for this PR is accessible via:

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

@senadir
Copy link
Member

senadir commented Nov 30, 2022

Any reason why switching to registerComponent fixes this? we use the other function for Cart/Checkout.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 30, 2022

TypeScript Errors Report

Files with errors: 428
Total errors: 2057

🎉 🎉 This PR does not introduce new TS errors.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 30, 2022

Size Change: -405 B (0%)

Total Size: 971 kB

Filename Size Change
build/active-filters-frontend.js 7.74 kB +2 B (0%)
build/all-products-frontend.js 11.3 kB -9 B (0%)
build/attribute-filter-frontend.js 22.6 kB -1 B (0%)
build/attribute-filter-wrapper-frontend.js 7.13 kB -6 B (0%)
build/cart-blocks/cart-cross-sells-products--product-add-to-cart-frontend.js 5.48 kB +1 B (0%)
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.04 kB -1 B (0%)
build/cart-blocks/cart-express-payment-frontend.js 776 B -3 B (0%)
build/cart-blocks/cart-items-frontend.js 299 B +1 B (0%)
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.28 kB -2 B (0%)
build/cart-blocks/cart-order-summary-frontend.js 1.11 kB -1 B (0%)
build/cart-blocks/cart-totals-frontend.js 321 B +2 B (+1%)
build/cart-blocks/filled-cart-frontend.js 780 B -1 B (0%)
build/cart-blocks/order-summary-coupon-form-frontend.js 1.72 kB +1 B (0%)
build/cart-blocks/order-summary-discount-frontend.js 2.16 kB +2 B (0%)
build/cart-blocks/order-summary-shipping-frontend.js 5.99 kB +1 B (0%)
build/cart-blocks/proceed-to-checkout-frontend.js 1.19 kB -3 B (0%)
build/checkout-blocks/actions-frontend.js 1.77 kB -1 B (0%)
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 3.89 kB -1 B (0%)
build/checkout-blocks/billing-address-frontend.js 956 B +1 B (0%)
build/checkout-blocks/express-payment-frontend.js 1.13 kB -1 B (0%)
build/checkout-blocks/fields-frontend.js 342 B -2 B (-1%)
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.89 kB -4 B (0%)
build/checkout-blocks/order-summary-shipping-frontend.js 6.04 kB +1 B (0%)
build/checkout-blocks/order-summary-taxes-frontend.js 435 B -1 B (0%)
build/checkout-blocks/payment-frontend.js 8.31 kB +1 B (0%)
build/checkout-blocks/shipping-address-frontend.js 1.07 kB +1 B (0%)
build/checkout-blocks/terms-frontend.js 1.63 kB -2 B (0%)
build/checkout-frontend.js 48.3 kB +11 B (0%)
build/filter-wrapper-frontend.js 13.8 kB -5 B (0%)
build/mini-cart-component-frontend.js 19.5 kB -458 B (-2%)
build/mini-cart-contents-block/footer-frontend.js 2.95 kB +3 B (0%)
build/mini-cart-contents-block/shopping-button-frontend.js 288 B -1 B (0%)
build/mini-cart-frontend.js 1.88 kB -1 B (0%)
build/price-filter-frontend.js 13.6 kB -3 B (0%)
build/price-filter-wrapper-frontend.js 7.02 kB -2 B (0%)
build/product-add-to-cart-frontend.js 1.46 kB -1 B (0%)
build/product-button-frontend.js 2.13 kB -4 B (0%)
build/product-category-list-frontend.js 1.13 kB -2 B (0%)
build/product-image-frontend.js 2.15 kB -5 B (0%)
build/product-price-frontend.js 2.15 kB +2 B (0%)
build/product-rating-frontend.js 1.44 kB -3 B (0%)
build/product-sku-frontend.js 628 B -1 B (0%)
build/product-stock-indicator-frontend.js 1.25 kB -3 B (0%)
build/product-summary-frontend.js 1.52 kB -1 B (0%)
build/product-tag-list-frontend.js 1.12 kB -2 B (0%)
build/product-title-frontend.js 1.57 kB -5 B (0%)
build/rating-filter-frontend.js 7.16 kB -4 B (0%)
build/reviews-frontend.js 7.02 kB +2 B (0%)
build/single-product-frontend.js 17.6 kB +94 B (+1%)
build/stock-filter-frontend.js 7.8 kB +3 B (0%)
build/stock-filter-wrapper-frontend.js 6.04 kB -2 B (0%)
build/vendors--attribute-filter-wrapper-frontend.js 8.2 kB +1 B (0%)
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/order-summary-shipping--checkout-blocks--18f9376a-frontend.js 19.1 kB +8 B (0%)
build/vendors--cart-blocks/cart-cross-sells-products--product-add-to-cart-frontend.js 7.53 kB -2 B (0%)
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.14 kB -1 B (0%)
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--5b8feb0b-frontend.js 4.86 kB +2 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters-wrapper-frontend.js 6.01 kB
build/active-filters.js 7.32 kB
build/all-products.js 33.1 kB
build/all-reviews.js 7.79 kB
build/attribute-filter.js 12.3 kB
build/blocks-checkout.js 27.1 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-cross-sells-products-frontend.js 4.74 kB
build/cart-blocks/cart-line-items-frontend.js 1.07 kB
build/cart-blocks/empty-cart-frontend.js 346 B
build/cart-blocks/order-summary-fee-frontend.js 273 B
build/cart-blocks/order-summary-heading-frontend.js 455 B
build/cart-blocks/order-summary-subtotal-frontend.js 274 B
build/cart-blocks/order-summary-taxes-frontend.js 435 B
build/cart-frontend.js 46.2 kB
build/cart.js 46.1 kB
build/checkout-blocks/contact-information-frontend.js 1.8 kB
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.67 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.28 kB
build/checkout-blocks/order-summary-fee-frontend.js 276 B
build/checkout-blocks/order-summary-frontend.js 1.11 kB
build/checkout-blocks/order-summary-subtotal-frontend.js 273 B
build/checkout-blocks/shipping-methods-frontend.js 5.01 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout.js 40.1 kB
build/featured-category.js 13.2 kB
build/featured-product.js 13.4 kB
build/filter-wrapper.js 2.4 kB
build/general-style-rtl.css 1.29 kB
build/general-style.css 1.29 kB
build/handpicked-products.js 7.29 kB
build/legacy-template.js 2.85 kB
build/mini-cart-contents-block/empty-cart-frontend.js 366 B
build/mini-cart-contents-block/filled-cart-frontend.js 230 B
build/mini-cart-contents-block/items-frontend.js 237 B
build/mini-cart-contents-block/products-table-frontend.js 590 B
build/mini-cart-contents-block/title-frontend.js 368 B
build/mini-cart-contents.js 17.1 kB
build/mini-cart.js 4.28 kB
build/price-filter.js 8.37 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 227 B
build/product-add-to-cart--product-button--product-image--product-rating--product-title.js 151 B
build/product-add-to-cart.js 8.37 kB
build/product-best-sellers.js 7.62 kB
build/product-button--product-category-list--product-image--product-price--product-rating--product-sale-b--e17c7c01.js 432 B
build/product-button--product-image--product-rating--product-sale-badge--product-title.js 301 B
build/product-button.js 3.82 kB
build/product-categories.js 2.36 kB
build/product-category-list.js 502 B
build/product-category.js 8.62 kB
build/product-image.js 3.93 kB
build/product-new.js 7.62 kB
build/product-on-sale.js 7.95 kB
build/product-price.js 1.53 kB
build/product-query.js 4.44 kB
build/product-rating.js 787 B
build/product-sale-badge-frontend.js 1.38 kB
build/product-sale-badge.js 816 B
build/product-search.js 2.62 kB
build/product-sku.js 377 B
build/product-stock-indicator.js 646 B
build/product-summary.js 921 B
build/product-tag-list.js 498 B
build/product-tag.js 8 kB
build/product-title.js 3.3 kB
build/product-top-rated.js 7.87 kB
build/products-by-attribute.js 8.54 kB
build/rating-filter-wrapper-frontend.js 5.41 kB
build/rating-filter.js 5.79 kB
build/reviews-by-category.js 11.2 kB
build/reviews-by-product.js 12.3 kB
build/single-product.js 10 kB
build/stock-filter.js 6.71 kB
build/vendors--attribute-filter-wrapper--mini-cart-contents-block/footer--product-add-to-cart-frontend.js 6.86 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/cart-line-items--cart-blocks/cart-order--671ca56f-frontend.js 5.26 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/order-summary-shipping--checkout-block--dda5866c-frontend.js 8.85 kB
build/wc-blocks-data.js 18.7 kB
build/wc-blocks-editor-style-rtl.css 5.19 kB
build/wc-blocks-editor-style.css 5.19 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 934 B
build/wc-blocks-registry.js 2.92 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 24.2 kB
build/wc-blocks-style.css 24.2 kB
build/wc-blocks-vendors-style-rtl.css 1.95 kB
build/wc-blocks-vendors-style.css 1.95 kB
build/wc-blocks-vendors.js 62.4 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-settings.js 2.6 kB

compressed-size-action

@nerrad
Copy link
Contributor

nerrad commented Nov 30, 2022

This is an odd fix. Odd in the sense that registerCheckoutBlock is essentially a wrapper around registerBlockComponent with some initial assertions. My concern here is that this masks the real issue.

@nerrad
Copy link
Contributor

nerrad commented Nov 30, 2022

Although I do see that registerCheckoutBlock also stores the block metadata - so that might be a factor here.

@Aljullu
Copy link
Contributor

Aljullu commented Nov 30, 2022

Heads-up that I created another PR with an alternative approach here: #7794.

@gigitux
Copy link
Contributor Author

gigitux commented Dec 5, 2022

I'm closing this issue because the right approach was #7794!
Thanks for the help and the reviews! 🙇

@gigitux gigitux closed this Dec 5, 2022
@nielslange nielslange deleted the fix/mini-cart-product-bundles branch April 19, 2023 23:48
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

block: mini-cart Issues related to the Mini-Cart block. type: bug The issue/PR concerns a confirmed bug.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants