woocommerce-blocks
woocommerce-blocks copied to clipboard
Add support for the Editor Preview update when custom attributes are changed
⚠️ This PR is still WIP. It contains TypesScript errors and duplicated logic.

This PR adds support for the editor preview update when custom attributes are changed.
For example, when Show only products on sale is enabled, the Query Loop block makes a GET request appending this query parameter:
__woocommerceVariationQuery%5BonSale%5D=true
In this way, with the filter rest_product_query, we can control the WordPress REST API, and we can create a custom WP_Query object by reading the query arguments.
This PR fixes #6969
Testing Steps
Be sure that you are using a Gutenberg build that contains this PR.
- Add a Product Query block.
- Click on “Show only products on sale”.
- Notice that the block preview is updated and shows only products on sale.
The release ZIP for this PR is accessible via:
https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-6975.zip
Size Change: +467 B (0%)
Total Size: 874 kB
| Filename | Size | Change |
|---|---|---|
build/active-filters-frontend.js |
7.62 kB | +282 B (+4%) |
build/active-filters.js |
8.27 kB | +260 B (+3%) |
build/all-products.js |
33.9 kB | -19 B (0%) |
build/all-reviews.js |
7.79 kB | -11 B (0%) |
build/attribute-filter-frontend.js |
22.3 kB | +11 B (0%) |
build/attribute-filter.js |
13.3 kB | -11 B (0%) |
build/cart-blocks/cart-accepted-payment-methods-frontend.js |
1.16 kB | +1 B (0%) |
build/cart-blocks/cart-express-payment-frontend.js |
5.08 kB | -10 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.25 kB | -1 B (0%) |
build/cart-blocks/cart-order-summary-frontend.js |
1.11 kB | -1 B (0%) |
build/cart-blocks/filled-cart-frontend.js |
783 B | -1 B (0%) |
build/cart-blocks/order-summary-coupon-form-frontend.js |
2.64 kB | -3 B (0%) |
build/cart-blocks/order-summary-discount-frontend.js |
2.15 kB | +9 B (0%) |
build/cart-blocks/order-summary-heading-frontend.js |
454 B | +1 B (0%) |
build/cart-blocks/order-summary-shipping--checkout-blocks/order-summary-shipping-frontend.js |
6.37 kB | +3 B (0%) |
build/cart-blocks/order-summary-shipping-frontend.js |
428 B | +1 B (0%) |
build/cart-blocks/order-summary-taxes-frontend.js |
435 B | +1 B (0%) |
build/cart-blocks/proceed-to-checkout-frontend.js |
1.15 kB | -3 B (0%) |
build/cart-frontend.js |
47.1 kB | +10 B (0%) |
build/cart.js |
41.8 kB | +20 B (0%) |
build/checkout-blocks/actions-frontend.js |
1.42 kB | +2 B (0%) |
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js |
4.12 kB | +3 B (0%) |
build/checkout-blocks/billing-address-frontend.js |
888 B | -3 B (0%) |
build/checkout-blocks/contact-information-frontend.js |
2.84 kB | +2 B (0%) |
build/checkout-blocks/express-payment-frontend.js |
5.38 kB | -10 B (0%) |
build/checkout-blocks/order-note-frontend.js |
1.08 kB | +5 B (0%) |
build/checkout-blocks/order-summary-cart-items-frontend.js |
3.64 kB | -3 B (0%) |
build/checkout-blocks/order-summary-discount-frontend.js |
2.27 kB | +9 B (0%) |
build/checkout-blocks/order-summary-taxes-frontend.js |
434 B | -1 B (0%) |
build/checkout-blocks/payment-frontend.js |
7.69 kB | -9 B (0%) |
build/checkout-blocks/shipping-methods-frontend.js |
4.74 kB | +4 B (0%) |
build/checkout-blocks/terms-frontend.js |
1.23 kB | +2 B (0%) |
build/checkout-blocks/totals-frontend.js |
326 B | +1 B (0%) |
build/checkout-frontend.js |
49.3 kB | +24 B (0%) |
build/checkout.js |
43.1 kB | -13 B (0%) |
build/featured-category.js |
13.2 kB | -69 B (-1%) |
build/featured-product.js |
13.4 kB | -93 B (-1%) |
build/handpicked-products.js |
7.29 kB | -82 B (-1%) |
build/legacy-template.js |
2.84 kB | -17 B (-1%) |
build/mini-cart-component-frontend.js |
16.8 kB | -1 B (0%) |
build/mini-cart-contents-block/filled-cart-frontend.js |
230 B | +1 B (0%) |
build/mini-cart-contents-block/footer--mini-cart-contents-block/products-table-frontend.js |
4.69 kB | -2 B (0%) |
build/mini-cart-contents-block/footer-frontend.js |
6.98 kB | +2 B (0%) |
build/mini-cart-contents.js |
22.9 kB | +4 B (0%) |
build/mini-cart.js |
4.56 kB | -20 B (0%) |
build/price-filter-frontend.js |
13.4 kB | +33 B (0%) |
build/price-filter.js |
9.34 kB | +22 B (0%) |
build/product-add-to-cart--product-button--product-image--product-title.js |
2.66 kB | +1 B (0%) |
build/product-add-to-cart-frontend.js |
6.95 kB | -2 B (0%) |
build/product-add-to-cart.js |
6.88 kB | -1 B (0%) |
build/product-best-sellers.js |
7.62 kB | -90 B (-1%) |
build/product-button-frontend.js |
1.87 kB | -1 B (0%) |
build/product-button.js |
1.57 kB | -2 B (0%) |
build/product-categories.js |
2.36 kB | -51 B (-2%) |
build/product-category-list-frontend.js |
883 B | +3 B (0%) |
build/product-category.js |
8.61 kB | -77 B (-1%) |
build/product-image-frontend.js |
1.88 kB | -1 B (0%) |
build/product-image.js |
1.59 kB | -2 B (0%) |
build/product-new.js |
7.62 kB | -92 B (-1%) |
build/product-on-sale.js |
7.94 kB | -82 B (-1%) |
build/product-price-frontend.js |
1.9 kB | +3 B (0%) |
build/product-rating-frontend.js |
1.17 kB | +3 B (0%) |
build/product-rating.js |
739 B | -1 B (0%) |
build/product-sale-badge-frontend.js |
1.13 kB | +2 B (0%) |
build/product-sale-badge.js |
801 B | -1 B (0%) |
build/product-search.js |
2.62 kB | -28 B (-1%) |
build/product-sku-frontend.js |
380 B | -1 B (0%) |
build/product-stock-indicator-frontend.js |
996 B | +2 B (0%) |
build/product-stock-indicator.js |
623 B | -1 B (0%) |
build/product-summary-frontend.js |
1.29 kB | +3 B (0%) |
build/product-summary.js |
920 B | -2 B (0%) |
build/product-tag-list-frontend.js |
876 B | +1 B (0%) |
build/product-tag-list.js |
497 B | -1 B (0%) |
build/product-tag.js |
8 kB | -85 B (-1%) |
build/product-title-frontend.js |
1.31 kB | +3 B (0%) |
build/product-title.js |
921 B | -1 B (0%) |
build/product-top-rated.js |
7.86 kB | -90 B (-1%) |
build/products-by-attribute.js |
8.53 kB | -100 B (-1%) |
build/reviews-by-category.js |
11.2 kB | +11 B (0%) |
build/reviews-by-product.js |
12.3 kB | -8 B (0%) |
build/reviews-frontend.js |
7.02 kB | -1 B (0%) |
build/single-product-frontend.js |
21.4 kB | -1 B (0%) |
build/single-product.js |
10 kB | -14 B (0%) |
build/stock-filter-frontend.js |
7.62 kB | +2 B (0%) |
build/stock-filter.js |
7.52 kB | -29 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.85 kB | +3 B (0%) |
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--decc3dc6-frontend.js |
19.1 kB | -6 B (0%) |
build/vendors--mini-cart-contents-block/footer-frontend.js |
6.86 kB | -1 B (0%) |
build/vendors--product-add-to-cart-frontend.js |
7.53 kB | +2 B (0%) |
build/wc-blocks-style-rtl.css |
23.8 kB | +433 B (+2%) |
build/wc-blocks-style.css |
23.7 kB | +432 B (+2%) |
build/wc-blocks-vendors.js |
54.5 kB | +3 B (0%) |
ℹ️ View Unchanged
| Filename | Size |
|---|---|
build/all-products-frontend.js |
18.1 kB |
build/blocks-checkout.js |
17.4 kB |
build/cart-blocks/cart-line-items-frontend.js |
429 B |
build/cart-blocks/cart-totals-frontend.js |
322 B |
build/cart-blocks/empty-cart-frontend.js |
346 B |
build/cart-blocks/order-summary-fee-frontend.js |
274 B |
build/cart-blocks/order-summary-subtotal-frontend.js |
274 B |
build/checkout-blocks/fields-frontend.js |
344 B |
build/checkout-blocks/order-summary-coupon-form-frontend.js |
2.79 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-shipping-frontend.js |
602 B |
build/checkout-blocks/order-summary-subtotal-frontend.js |
274 B |
build/checkout-blocks/shipping-address-frontend.js |
1.03 kB |
build/general-style-rtl.css |
1.29 kB |
build/general-style.css |
1.29 kB |
build/mini-cart-contents-block/empty-cart-frontend.js |
366 B |
build/mini-cart-contents-block/items-frontend.js |
237 B |
build/mini-cart-contents-block/products-table-frontend.js |
290 B |
build/mini-cart-contents-block/shopping-button-frontend.js |
288 B |
build/mini-cart-contents-block/title-frontend.js |
368 B |
build/mini-cart-frontend.js |
1.72 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 |
223 B |
build/product-button--product-category-list--product-image--product-price--product-rating--product-sale-b--e17c7c01.js |
435 B |
build/product-button--product-image--product-rating--product-sale-badge--product-title.js |
300 B |
build/product-category-list.js |
502 B |
build/product-price.js |
1.51 kB |
build/product-query.js |
648 B |
build/product-sku.js |
379 B |
build/vendors--cart-blocks/cart-line-items--cart-blocks/cart-order-summary--cart-blocks/order-summary-shi--c02aad66-frontend.js |
5.26 kB |
build/wc-blocks-data.js |
9.87 kB |
build/wc-blocks-editor-style-rtl.css |
5.1 kB |
build/wc-blocks-editor-style.css |
5.1 kB |
build/wc-blocks-google-analytics.js |
1.56 kB |
build/wc-blocks-middleware.js |
931 B |
build/wc-blocks-registry.js |
2.7 kB |
build/wc-blocks-shared-context.js |
1.53 kB |
build/wc-blocks-shared-hocs.js |
1.71 kB |
build/wc-blocks-vendors-style-rtl.css |
1.95 kB |
build/wc-blocks-vendors-style.css |
1.95 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 |
This PR has been marked as stale because it has not seen any activity within the past 60 days. Our team uses this tool to help surface pull requests that have slipped through review.
If deemed still relevant, the pr can be kept active by ensuring it's up to date with the main branch and removing the stale label - otherwise it will automatically be closed after 10 days.
This PR has been marked as stale because it has not seen any activity within the past 60 days. Our team uses this tool to help surface pull requests that have slipped through review.
If deemed still relevant, the pr can be kept active by ensuring it's up to date with the main branch and removing the stale label - otherwise it will automatically be closed after 10 days.
This PR has been marked as stale because it has not seen any activity within the past 60 days. Our team uses this tool to help surface pull requests that have slipped through review.
If deemed still relevant, the pr can be kept active by ensuring it's up to date with the main branch and removing the stale label - otherwise it will automatically be closed after 10 days.
I'm closing this PR. The final PR is #7366