* Remove experimental flags
* changelog
* Check theme is block theme
* adjust test since this setting is only visible with block themes
* Hide dark mode option if password input is disabled
* Normalize cart on load in Store API
* Remove change notices; this cannot happen with normalised API endpoints
* Add test to verify normalization works
* changelog
* Remove test for removed notices
* Fix test linting
* Check $cart_item['data'] is a product
* Update ExtensionCartUpdateArgs to allow overwriting dirty data
* Set isCustomerDataDirty when updating billing/shipping addresses
* Update docs
* Add e2e test to ensure overwriting dirty state isn't possible
* Organise tests better and add check pushed data isn't overwritten
* Check if data is changing when updating shipping/billing addresses
* Check input values in test
* Add test to ensure data can still be overwritten by extensions
* Add changelog
* Fix lint errors
* Remove rogue console log
* Remove unused import
* Update plugins/woocommerce-blocks/assets/js/data/cart/reducers.ts
* Fix lint error
* Remove unneeded mdlint ignore
* Update test to select a value instead of fill
* Add methods to get/set dirty customer data in local storage
* Push all customer data, not just dirty fields
* Update e2e test
* Update push changes unit test
* Update keys in mock expected arg
* Align localstorage key name with Gutenberg uppercase style
* Fix lost code after merge conflict
* Remove unnecessary metadata set in reducer
* Reimplement TS changes
* Debounce writing to localStorage
* Only update localStorage if billing/shipping changed
* Remove localStorage key when checkout is complete
* Remove unused import
* Remove clear button when setting is disabled
* Add clear button when setting is enabled
* Move logic to a React hook
* Fix error preventing clear button from being inserted after full page reload
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Add e2e test
* Fix ancestor
* Fix clear button settings for the Status filter
* Move hook to the root Product Filters folder
* refactor: divide the logic into multiple functions
* refactor: move util functions to their own files
* feat: add clear button hook to all individual filters
* test: add e2e test to the Product Filter Price block
* fix: block being created with the wrong default attributes
* fix: eslint errors
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add To Cart With Options - Stepper layout: implement feature under feature flag
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce, woocommerce/client/admin
* fix E2E tests
* fix E2E test
* fix E2E test
* use setFeatureFlag across e2e test suite
* use the right feature flag
---------
Co-authored-by: github-actions <github-actions@github.com>
* Remove inspector notice
* Replace placeholder with generic version
* Implement new placeholder
* Fix shipping method count so it excludes rows which do not link to installed payment method
* changelog
* Set default so tests pass
* unused vars
* unused import
* Remove return type and fix import warnings
* add color block attributes
* add constant to define the color attributes
* centralize Color type
* define color types
* use UpperCase for Edit component
* render colors panel. save color values in attrs
* add a doc about colors validation
* save CSS vars and classes in the block markup
* pick and apply colors to the styles
* update markup with block colors
* firx eslint issue
* changelog
* reset all colors properly
* 80 cols
* set Color type peroperties like optional
* apply color to slider background
* Add to Cart Form: Ensure Compliance with min, max, and step HTML Attributes
* add comment
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* improve fallback value
* remove only
* add aria-label
* remove extra space
* Update plugins/woocommerce/changelog/52487-fix-add-to-cart-form-interactivity-api
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* improve variable naming
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Merge branch 'trunk' of github.com:woocommerce/woocommerce into fix/add-to-cart-form-interactivity-api
* improve code style
* improve E2E tests
* improve fallback value
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Add To Cart Form - Stepper Layout: remove flex
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix: Product collection inspector control showing empty section
Previously, the inspector controls were always rendering a PanelBody element even
when the collection type wasn't hand-picked, resulting in an empty section being
displayed. This change moves the PanelBody inside the conditional rendering so
it only appears when hand-picked products are being used.
Also adds missing placeholder text to the Hand-Picked products control to improve
user experience.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Hide product grid blocks from inserter
* Expose collections in the inserter
* Arrange collections imports alphabetically and registering by usage
* Add new keywords to collections
* Update tests
* Update block references
* Add changelog
* Update docs manifest
* Fix typo in collection name in test
* MAke adjsutments and cleanup of collections keywords
* Add one more keyword
* Hide Related Products from inserter
* Replace legacy Related Products with collection when transforming classic template into block one
* Replace legacy Related Products with collection in blockified Single Product Template
* Update block references and doc manifest
* Update block references
* Update tests to reflect new collection names
* Bring back pnpm-lock to original state
* Update Related Products E2E tests
* Fix the last Related Products test
* Add default queryId to Related Products pattern
* Regenerate block references and docs manifest
* Update product filters active block to new structure
* Build active chips items
* Add changelog
* Remove unneeded line-height
* Fix linting
* Fix e2e tests
* Refactor removeText
* Clean up
* Add clear button even without group
* Fix stock status name in e2e test
* Remove heading block
* Remove unused i18n module
* Remove period
* Add clear button variation description
* Fix typo
* Rename active chips to removable chips
* Extract data items from removable chips to make it reusable
* Fix e2e tests
* Add frontend script loading to null
* Don't render the block if no active filters
* Disable clear button by default
* Clean up
* Hide with iAPI
* Fix linting and e2e
* fix: add hidden tag serverside
---------
Co-authored-by: Tung Du <dinhtungdu@gmail.com>
* Product Collection: Add "Rating, low to high" and "Rating, high to low" sorting options
This commit adds a new sorting option to the Product Collection block that allows
sorting products by rating from low to high. The existing "Top Rated" option has
also been renamed to "Rating, high to low" for consistency.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* introduce file to define collection data types
* do not define `results` always like an array
* update passing types to useCollection intances
* allow to set the useCollectionData response type
* reuse RatingValues type
* tidy collection types in status filter
* clean types defined in type-defs pck
* change changelog type
* update attribute filter
* move Collection Data types to product-collection folder
* update WCStoreV1ProductsCollectionProps path
* improve defining the results type for the collection
* update path to import product collection types
* fix path to import RatingValues type
* Avoiding shipping calculator prop drilling with context
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* useCallback for update functions
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add random sorting option to Product Collection block
This commit introduces a new 'Random' sorting option to the Product Collection block. The changes include:
1. Adding a new option for random sorting in the frontend UI (order-by-control.tsx).
2. Updating the backend to support the new random sorting option (ProductCollection.php).
These changes allow users to display products in a random order, enhancing the flexibility of product presentations in WooCommerce stores.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Add PHP unit tests for random sorting option
* Remove "asc" suffix from random sorting option
The "asc/desc" order is not needed for random sorting. This commit:
- Changes `random/asc` to just `random` in sorting options
- Updates code to handle sorting options without order suffix
- Adds fallback to 'asc' order when no order is specified
* Fix: "order" shouldn't be present in REST API params
---------
Co-authored-by: github-actions <github-actions@github.com>
* Removed Los Angeles local pickup option from mock data.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* Updated js test
* Reverted js test
* Updated mockup pickup locations
* Updated mockup pickup locations
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
* Create loading state for payment methods on block checkout
* Tidy and type fix checkPaymentMethodsCanPay
* Disable place order button before payments are Initialized
* Toggle and loading state
* changelog
* Reduce scope of change in check payment methods
* saved methods are hidden when empty
* update Rating experimental filter title
* allow to insert the filter block
* fix ancestor block name
* remove showFilterButton from attribute types
* udpate icon
* add rating to the initial filters template
* clean rating filter utils
* minor styling code enhancement
* tidy
* remove isEditor const
* import type explicitely
* rename block to CheckboxListEdit
* set defautl style for Rating block
* rename block to RatingFilterEdit
* undestructuring attributes object
* compose rating block by using template
* use InitialDisabled instead of Disabled
* set block instance name
* set display style properly
* do not rename checkbox list block instance
* passing context to CheckboxList block, server-side
* import type explicitely
* process rating data in server-side
* handle activate/deactivate rating filters
* support clean rating filters in the frontend
* remove temporarely action to handle dropdown
* changelog
* remove Dropdown mode for now
* use custom Notice component
* do not import unused libs
* rename method to get_rating_items
* declar selected_ratings_query as mixed
* sort rating stars by value descending
* udpate changelog message
* linting
* remove unused vars
* set selected_ratings_query like an array
* set get_rating_items $select param as an array
* set explicitely Attributes type
* remove unneeded InitialDisabled component
* remove useSetWraperVisibility hook usage
* sort rating straight via SQL
props to @dinhtungdu https://github.com/woocommerce/woocommerce/pull/52152/files#r1818839577
* remove local state to show no products notice
* Add "Products" suffix to some collections name as they're being exposed in the inserter and had confusing names without Product Collection context
* Add changelog
* Update E2E tests
* Add order reference to Upsells and Cross-sells
- Added 'order' to usesReference in cross-sells and upsells
- Updated LinkedProductControl for order context
- Enhanced ProductCollection to handle order references
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Add PHP code for Cross-sells collection
* Fix formatting
* Add E2E tests
1. In the Cart Template, it checks that "From products in the cart" is
selected by default for the "My Custom Collection - Cart Context".
2. In the Order Confirmation Template, it verifies that "From products
in the order" is chosen by default for the "My Custom Collection -
Order Context".
* Add 'block' scope to cross-sells collection
* Extract and use reference type constants
This commit extracts the REFERENCE_TYPE_CART and REFERENCE_TYPE_ORDER
constants to the top of the file and updates their usage throughout
the code, including in the getFromCurrentProductRadioLabel function.
* Align variable naming for product references in Product Collection
This commit updates the ProductCollection class to ensure consistency in
variable naming for product references across different collection types,
particularly aligning with the naming convention used in Upsells.
* Add "hadOrderReference" to conditional label display
Key changes:
- Removed `isUsesReferenceIncludesCart` parameter from `getFromCurrentProductRadioLabel`
- Introduced `hasCartReference` and `hasOrderReference` parameters for consistency
- Updated conditional logic to check for both cart and order references
- Adjusted the function call in `LinkedProductControl` to pass both new parameters
* Fallback to 0 for orderId in get_product_ids_from_order calls
---------
Co-authored-by: github-actions <github-actions@github.com>