* Make themes util compatible with ext env and unskip relevant tests
* Add theme activation in test helper apis and update util
* Fix whitespace lint issue
* Make the util compatible with local and external envs
* Rename to activate theme
* Add theme name empty check
* Simplify theme util and update relevant tests
* Remove only from the test
* Add missing brackets to the shopper test
* Include error handling to see failure on CI
* Include themes installation in the test setup
* Revert and refact util helper
* Fix WooCommerce Blocks storybook
* Add blocks storybook to main storybook
* Add post build for iframe.html
* Only add WooCommerce Blocks when building storybook
* Use manager file again and add blocks build for storybook build
* Add changelog
* Update CatalogSorting classname to include wp-block class
* Add wp-block class name to the product button block
* Add wp-block classname to the product average rating block
* Add changelog
* Update changelog
* Fix lint issues
* Preserve dash in Mongolia postcodes
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* [wcml-4848] Fixes for incorrect blocks in WC's refunds policy page
Closes#51618
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
In this PR we aim to reduce filesystem modification when copying assets into the core by splitting copy tasks in three (one per source package) and using rsync over remove/copy combo.
* Redirect to canonical product permalink
This ensures that if product permalinks are set to include the
%product_cat% replacement token, arbitrary values for that part of the
URL will redirect to the canonical product category value, rather than
successfully loading the single product page.
Fixes#24244
* phpcs exception
* Update plugins/woocommerce/changelog/fix-24244-custom-permalink
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* WC cleanup plugin
* Fix linter errors
* More linter fixes
* Clean up spacing
* File doc comment
* Remaining linter problems
* Linter warnings too. Sigh.
* Media cleanup, DB table cleanup, tax rate cleanup
* Exclude media files used in tests from cleanup
* Exclude media files regardless of extension
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Render coming-soon template content without header and footer if the current theme is not a fse
* Check for store pages only
* Add changefile(s) from automation for the following project(s): woocommerce
* Make sure get_the_block_template_html exist
* Lint fixes
* Lint fixes
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
* Refactor WooCommerce Helper class
This commit refactors the WooCommerce Helper class in the `class-wc-helper.php` file. The changes include:
- Updating the comparison operator from `==` to `===` in the `activate_plugin` condition.
- Renaming the `get_install_base_url` method to `get_woocommerce_com_base_url`.
- Adding a new `get_install_base_url` method that returns the base URL for the plugin auto installer.
These changes improve the readability and maintainability of the code.
* Refactor data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion
- Refactor the data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion to use a dynamic base URL for the data sources.
- Update the deprecated DATA_SOURCES constant to an empty array in each class.
- Add a new method get_data_sources() in each class to return the updated data sources with the dynamic base URL.
- Modify the constructor of each class to use the get_data_sources() method instead of the deprecated DATA_SOURCES constant.
* Add changelog
* Add set-woocom-base-url tool
* Add changelog
* Rename woo_com and woocom -> wccom
* Change to falsy check !url
* Change woocom/WOOCOM to wccom/WCCOM
* Change default value to https://woocommerce.com/
---------
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Resolved fatal error when applying Brands-restricted coupon
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Update heading for Hand-Picked collection
- Added 'recommend' to the keywords array.
- Changed heading content from 'Hand-Picked' to 'Recommended products'.
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
---------
Co-authored-by: github-actions <github-actions@github.com>
In this PR, we aim to improve the speed of ppm installs by making changes in ppm configuration and post-install hooks. The main principle behind the changes is to leverage the identified parallelization potential.
* Fixed Fatal error call to a member function is_empty() in mini-cart.php:24
* Updated Template Version
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Only register block assets on the frontend during block render
* Add changelog entry
* Add wc-blocks-registry as a dependency to product collection tester script
* Update docs manifest
* darker outline and double outline on focus
* flip outlines for shipping selector
* fix select outline in dark mode
* Fix input labels being cut off due to line height
* adjust outline colors
* fix rest of problems in dark mode
* fix express payment on checkout
* Fix broken styles for shipping cart in medium
* Always center input label
* Fix order note background in dark mode
* remove empty space in payment methods when there's no content inside
* Add changefile(s) from automation for the following project(s): woocommerce-blocks
* fix linter issues
---------
Co-authored-by: github-actions <github-actions@github.com>
* Add styling for dataviews with old nav
* Add toggle to toggle between new and old navigation
* Update dataviews dependency
* Fix width for list view
* Remove unused type
* Add changelogs
* Fix: Prevent adding hidden input to external product forms with URLs
This commit addresses an issue where a hidden input field was being added
unnecessarily to external product forms that already have a URL. The changes
include:
1. Adding a check to determine if the product is an external product with a URL.
2. Only adding the hidden input field for products that are not external
products with URLs.
This fix ensures that external product forms with URLs maintain their intended
functionality without the addition of unnecessary form elements.
* Add changefile(s) from automation for the following project(s): woocommerce
* Fix lint issue
---------
Co-authored-by: github-actions <github-actions@github.com>
* Reverse the dependency on drawing sparklines in the legacy reports from the WooCommerce Status widget on the dashboard page.
* Add a new class to simulate the loading plugin for the legacy reports.
* Decouple the dependency between the legacy reports and the WooCommerce Status widget on the dashboard page.
* Break down the method of forming HTML for the sparkline in Dashboard widget to avoid directly outputting HTML via a filtered callback.
* Update PHP unit tests for WC_Tests_Admin_Dashboard.
* Add changelog.
* Ensure the backward compatibility for the `woocommerce_after_dashboard_status_widget ` action.
Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768751063
* Fix the incorrect indentation of a modified line of codes in the `WC_Admin_Dashboard` class.
Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768690182
* Fix a PHP 8 deprecation message due to a required parameter after an optional parameter in the `WC_Admin_Dashboard` class.
Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768776896
* Tweak the inaccurate PHPDoc for the `get_sales_sparkline ` method in the `WC_Admin_Report` class.
Address: https://github.com/woocommerce/woocommerce/pull/51566#discussion_r1768804777
* Refactor WooCommerce Helper class
This commit refactors the WooCommerce Helper class in the `class-wc-helper.php` file. The changes include:
- Updating the comparison operator from `==` to `===` in the `activate_plugin` condition.
- Renaming the `get_install_base_url` method to `get_woocommerce_com_base_url`.
- Adding a new `get_install_base_url` method that returns the base URL for the plugin auto installer.
These changes improve the readability and maintainability of the code.
* Refactor data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion
- Refactor the data source poller classes for marketing recommendations, payment gateway suggestions, shipping partner suggestions, inbox notifications, remote free extensions, and WooPayments promotion to use a dynamic base URL for the data sources.
- Update the deprecated DATA_SOURCES constant to an empty array in each class.
- Add a new method get_data_sources() in each class to return the updated data sources with the dynamic base URL.
- Modify the constructor of each class to use the get_data_sources() method instead of the deprecated DATA_SOURCES constant.
* Add changelog
* Introduce RadioControl
* Provide better copy and improve styling of radio button
* Implement the logic of choosing current product as a reference
* Add placeholder state in product chooser
* Add placeholder image to product chooser
* Add changelog
* Refactor file
* Improve the condition choosing the default radio value
* Update E2E tests
* Format SVG icon and optimize it
* Increase a gap in radio control
* Make the labels less spcific to related products
* Rename some variables to more meaningful names
* Show placeholder img if product doesnt have one
* Fix type
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Fixed PHP 7.4 Compatibility
The splat operator does not support associative arrays until PHP 8.1.
* Added Related Products Collection Boilerplate
* Added `woocommerceRelatedTo` Collection Parameter
This parameter allows the block to query for products that are related
to the given product IDs.
* Added Collection Related Product Filter
Using `woocommerceRelatedTo`, queries may restrict the products returned
to those that are related to the given product ID(s).
* Removed Unnecessary Tracking
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Removing Misunderstood Option
* Linting Fix
* Fixed Test
* Initialize the Hand-Picked collection
* Removed Unnecessary Keyword
* Render the collection-specific control
* try removing for fixing gh syntax hl
* add back
* tweak icon render
* combine conditions for early return
* Remove timeFrame from the query
* Set control label per context
* Use primitives for the icon
* Hide 'order by' control for the Hand-Picked collection
* Support Unlimited `wc_get_related_products()`
This changes related product fetching so that `-1` will return all
related products. I also removed a second +10 offset that seems
to have been accidentally added eight years ago.
* Revert "Set control label per context"
This reverts commit cd537befbe.
* Update titles and description
* Enable sorting by entered order
* Removed `woocommerceRelatedTo` Param
Since we're going to use the collection name, we don't need
this functionality any longer.
* Simplified `post__in` Filtering
Since `merge_queries` was already using an intersection merge for
`post__in`, this second function is unnecessary. I've removed it
as well as refactored the merging logic.
* Pass Collection Name To Final Query
* Improve the query merging logic
* Added Custom Collection Handlers
Developers can register collections along with handlers that implement
the custom behavior.
* Removed Second Test Query Construction
As it was, `build_query_vars_from_query_block()` was triggering the
ProductCollection instance hooked into WordPress. After that, we
called `build_frontend_query()` on our test instance. This caused some
weird behavior in tests. As a result, however, the tax_query merge
test couldn't rely on the tax_query transformation done by WordPress.
* Added Related Product Collection Handlers
* Revert "Support Unlimited `wc_get_related_products()`"
This reverts commit 41c837202e.
* Fixed Preview Mode Query
It looks like we were checking the wrong place for the preview
state.
* Improve the query merging logic
* Fixed Test
* Updated Collection Heading
* Handle collection context / no results state
* Small cleanup
* Better Collection Test Teardown
Passing a callable back means that we can use variables in the
setUp and then the tearDown without any confusion.
* Removed Unnecessary Test Provider
* Fixed `$post__in` Merging
When the intersection is empty it was returning all products. This
makes it so that it returns nothing when there's no results.
* Set perPage to 0 and add Pagination block for better discoverability
* Improve empty state in Editor by providing meaningful instruction
* Make code more defensive
* Hide more filters in scope of handpicked through hideFilters API
* Fixed PHPDoc
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Hide Empty Related Product Collections
* Removed Duplicate Query Function
* Added Hand-Picked Collection Handler
* Revert changes to pnpm
* Improve comment for empty Hand-Picked collection
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Fix: Pagination not working on Frontend
Remove perPage and pages attributes from hand-picked collection
* Remove unused code
* Revert "Improve empty state in Editor by providing meaningful instruction"
This reverts commit 9ac5c20d5e.
* Do not apply layout styles for empty results
* Improve the wording on the empty results message
---------
Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
Co-authored-by: Karol Manijak <20098064+kmanijak@users.noreply.github.com>
* Fixed PHP 7.4 Compatibility
The splat operator does not support associative arrays until PHP 8.1.
* Added Related Products Collection Boilerplate
* Added `woocommerceRelatedTo` Collection Parameter
This parameter allows the block to query for products that are related
to the given product IDs.
* Added Collection Related Product Filter
Using `woocommerceRelatedTo`, queries may restrict the products returned
to those that are related to the given product ID(s).
* Removed Unnecessary Tracking
* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce
* Removing Misunderstood Option
* Linting Fix
* Fixed Test
* Removed Unnecessary Keyword
* Support Unlimited `wc_get_related_products()`
This changes related product fetching so that `-1` will return all
related products. I also removed a second +10 offset that seems
to have been accidentally added eight years ago.
* Removed `woocommerceRelatedTo` Param
Since we're going to use the collection name, we don't need
this functionality any longer.
* Simplified `post__in` Filtering
Since `merge_queries` was already using an intersection merge for
`post__in`, this second function is unnecessary. I've removed it
as well as refactored the merging logic.
* Pass Collection Name To Final Query
* Added Custom Collection Handlers
Developers can register collections along with handlers that implement
the custom behavior.
* Removed Second Test Query Construction
As it was, `build_query_vars_from_query_block()` was triggering the
ProductCollection instance hooked into WordPress. After that, we
called `build_frontend_query()` on our test instance. This caused some
weird behavior in tests. As a result, however, the tax_query merge
test couldn't rely on the tax_query transformation done by WordPress.
* Added Related Product Collection Handlers
* Revert "Support Unlimited `wc_get_related_products()`"
This reverts commit 41c837202e.
* Fixed Preview Mode Query
It looks like we were checking the wrong place for the preview
state.
* Fixed Test
* Updated Collection Heading
* Add Upsells collection definition
* Register Upsells
* Add collection handlers for Upsells
* Add changelog
* Remove on sale query param
* Better Collection Test Teardown
Passing a callable back means that we can use variables in the
setUp and then the tearDown without any confusion.
* Removed Unnecessary Test Provider
* Added Upsell Collection Unit Test
* Product ID Confidence Check
* Added Collection Product Reference
* Don't display Upsells collection if there's no upsells
* Change the Upsells collection heading
* Add Upsells supporting cart context
* Consume the cart productIds and display Upsells in there
* Fixed `$post__in` Merging
When the intersection is empty it was returning all products. This
makes it so that it returns nothing when there's no results.
* Fix lint
* Extract the variable
* Fix lint
---------
Co-authored-by: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>