* Add checks to see if getCartData finished before rendering address
* Prevent block error due to excessive updates of customValidation
* Do not condense address in admin and handle phone field
* Add missing showPhoneField for billing
---------
Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
* We display the number of selected items, e.g., '5 selected'
* We display a number of all existing items next to the button, e.g., "Select all (25)".
* When only some items are selected on the page, we show an additional button that says "Select page (X)" where X stands for the number of rows on the page. Clicking it selects all rows on the page.
* Clicking "Select all" selects all existing items
* Add changelog file
* Add tracking events
* Saving progress on variations table
* Manage tracking events and error handling
* Hide edition features when at least one variation is selected
* Fix linter errors
* Resolve rebase conflicts
* Remove use selection hook since is not needed anymore
* Fix filter items vertical alignment
* Add changelog files
* Fix inconsistent loading and variations state
* Do not show EmptyTableState when the product has variations but the filter get empty list
* Invalidate cache state before generating variations
* Fix select all after filtering variations
* Remove delete variations from the selection list
* Retreive the product after generating variations
* Fix linter
* Invalidate variations cache after generating variations
* Create Related Products pattern reused in the Single Product template
That's needed in order to make the Related Products string translatable
* Add margin to Related Products heading
* Add margin to Related Products transformed from classic template
* Simplify the translation
* Change string capitalization so it's the same as the other one and can be transklated
* Separate count query
* Fix total_results var
* Add count-low-in-stock endpoint
* Use new count-low-in-stock endpoint
* Fix inconsistent in function names
* Type cast to int
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix spelling
* Separate count query function
* Add changefile(s) from automation for the following project(s): woocommerce
* Use get_count_query
* Use count-low-in-stock endpoint
* Remove condition where it only updates product count when there is less than 2 items -- no longer needed as we are using a new endpoint to count the products
* Fix spelling
* Add changefile(s) from automation for the following project(s): woocommerce
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Bump version in composer.json
* Update lock files
* changelog
* ensure the properties exist before accessing them
* add changelog file
* skip a test that is waiting for a fix from WooCommerce Blocks
* appease the linter
* remove commented out code
* use `empty` instead of `property_exists`
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Update WooCommerce Blocks package to 11.5.1
* Update WooCommerce Blocks package to 11.5.2
* Undo test removal
* bump to woocommerce blocks 11.5.3
---------
Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
Co-authored-by: Leif Singer <git@singer.sh>
Co-authored-by: Leif Singer <leif@automattic.com>
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
Co-authored-by: Luigi <gigitux@gmail.com>
* Clean up created pages and posts
* Move tax tests so that they run last
* Improve locators
* Changelog
* Improve locators
* Improve locator on heading
* Change assertions to look for alert text
* Change assertion to look for text
* Update locators
* Update locator
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Fix attempts to count possible non-countable variables or usage of undefined variables
This fixes a few miscellaneous small problems where a possibly undefined variable was attempted to be accessed or a variable that wasn't necessarily countable was passed to `count()`
These were found by running Rector with rules specific to finding issues with php8.
* Fixing lint spacing issue
* Use wp_post table instead wp_option to store patterns data generated by AI
* avoid crash when there isn't any patterns_ai_data post type
* restore check
* remove unnecessary constant
* catch error
* pass boolean to return WP_Error
* Marketplace: table design updates
* Marketplace: address PR feedback
- Added enum for status levels
- Fixed color for the table rows
- Used ADMIN_URL for referencing plugins page
-
* Marketplace: Update WooCommerce.com references to Woo.com
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Marketplace: fix how status badges look on narrower screens
---------
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Add support for filtering products by featured status
- Added `featured` attribute to `ProductCollectionQuery` type to enable filtering by featured status.
- Implemented `FeaturedProductsControl` to provide a toggle option in the inspector controls.
- Integrated `FeaturedProductsControl` into `ProductCollectionInspectorControls`.
- Added `get_featured_query` function in `ProductCollection` class to generate query for fetching featured products.
- Updated existing functions and queries in `ProductCollection` class to support featured products filtering.
* Revert changes to composer.lock
* Refactor handling of 'featured' parameter
This commit makes the handling of the 'featured' parameter consistent in the ProductCollection class. Previously, the 'featured' parameter was being type-casted to boolean, which was not necessary and could lead to incorrect results. Now, the 'featured' parameter is used directly without type-casting, and the check for 'featured' products in the get_featured_query method has been updated accordingly. This ensures that the 'featured' parameter is handled consistently and correctly throughout the class.
* Handle undefined 'featured' index
This commit adds null coalescing operator to handle the case when 'featured' index is not set in the $query array. This prevents potential PHP notices or errors that may arise when trying to access an undefined index.