=== WooCommerce ===
Contributors: automattic, woocommerce, mikejolley, jameskoster, claudiosanches, rodrigosprimo, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, wpmuguru, royho, barryhughes-1, claudiulodro, tiagonoronha, ryelle, levinmedia, aljullu, nerrad, joshuawold, assassinateur, haszari, mppfeiffer, nielslange, opr18, ralucastn, tjcafferkey, danielwrobert, patriciahillebrandt, albarin, dinhtungdu, imanish003, karolmanijak, sunyatasattva, alexandrelara, gigitux, danieldudzic, samueljseay, alexflorisca, opr18, tarunvijwani, pauloarromba, saadtarhi, bor0, kloon, coreymckrill, jorgeatorres, leifsinger, neosinner
Tags: online store, ecommerce, shop, shopping cart, sell online
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 10.7.0
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Everything you need to launch an online store in days and keep it growing for years. From your first sale to millions in revenue, Woo is with you.

== Description ==

[WooCommerce](https://woocommerce.com/woocommerce/) is the open-source ecommerce platform for WordPress.

Our core platform is free, flexible, and amplified by a global community. The freedom of open-source means you retain full ownership of your store’s content and data forever.

Whether you’re launching a business, taking brick-and-mortar retail online, or developing sites for clients, use WooCommerce for a store that powerfully blends content and commerce.

- **Create beautiful, enticing storefronts** with [themes](https://woocommerce.com/product-category/themes/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) suited to your brand and industry.
- **Increase revenue** with an optimized [shopping cart experience](https://woocommerce.com/checkout-blocks/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) that converts.
- **Customize product pages in minutes** using modular [product blocks](https://woocommerce.com/document/woocommerce-blocks/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
- Showcase physical and digital goods, product variations, custom configurations, instant downloads, and affiliate items.
- Sell [subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [bookings](https://woocommerce.com/products/woocommerce-bookings/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), or [memberships](https://woocommerce.com/products/woocommerce-memberships/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), with our developer-vetted extensions.
- **Rise to the top of search results** by leveraging [WordPress’ SEO advantage](https://www.searchenginejournal.com/wordpress-best-cms-seo/).
- **Build on a platform that scales.** Get flexible ecommerce for [high-volume stores](https://woocommerce.com/high-volume-stores/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

= ALL THE TOOLS YOU NEED TO SELL =

Built-in tools and popular integrations help you efficiently manage your business operations. Many services are free to add with a single click via the optional [Setup Wizard](https://woocommerce.com/document/woocommerce-setup-wizard/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

- **Choose how you want to get paid**. Conveniently manage payments from the comfort of your store with [WooPayments](https://woocommerce.com/payments/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (Available in the U.S., U.K., Ireland, Australia, New Zealand, Canada, Spain, France, Germany, and Italy). Securely accept credit cards, mobile wallets, bank transfers, and cash thanks to [100+ payment gateways](https://woocommerce.com/product-category/woocommerce-extensions/payment-gateways/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) – including [Stripe](https://woocommerce.com/products/stripe/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [PayPal](https://woocommerce.com/products/woocommerce-gateway-paypal-checkout/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), and [Square](https://woocommerce.com/products/square/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
- **Configure your shipping options**. Print USPS labels right from your dashboard and even schedule a pickup with [WooCommerce Shipping](https://woocommerce.com/products/shipping/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (U.S.-only). Connect with [well-known carriers](https://woocommerce.com/product-category/woocommerce-extensions/shipping-methods/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) such as UPS and FedEx – plus a wide variety of delivery, inventory, and fulfillment solutions for your locale.
- **Simplify sales tax**. Add [WooCommerce Tax](https://woocommerce.com/products/tax/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) or [similar integrated services](https://woocommerce.com/product-category/woocommerce-extensions/tax?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to make automated calculations a reality.

= Grow your business, add features, and monitor your store on the go =

WooCommerce means business. Keep tabs on the performance metrics most important to you with a powerful and flexible central dashboard built into WooCommerce.

Expand your audience across marketing and social channels with [Google Ads](https://woocommerce.com/products/google-ads/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [HubSpot](https://woocommerce.com/products/hubspot-for-woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [Mailchimp](https://woocommerce.com/products/mailchimp-for-woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), and [Facebook](https://woocommerce.com/products/facebook/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) integrations. You can always check out the in-dashboard [Marketing Hub](https://woocommerce.com/document/marketing-hub/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) for fresh ideas and tips to help you succeed.

Enhance store functionality with hundreds of free and paid extensions from the [WooCommerce Marketplace](https://woocommerce.com/products/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). Our developers [vet each new extension](https://woocommerce.com/document/marketplace-overview/#section-6?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and regularly review existing extensions to maintain Marketplace quality standards. We are actively [looking for products that help store builders create successful stores](https://woocommerce.com/document/marketplace-overview/#section-2?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

Manage your store from anywhere with the free WooCommerce [mobile app](https://woocommerce.com/mobile/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (Android and iOS). Spoiler alert: Keep an ear out for the slightly addictive "cha-ching" notification sound each time you make a new sale!

= Own and control your store data – forever =

With [WooCommerce](https://woocommerce.com/woocommerce/), your data belongs to you. Always.

If you opt to share [usage data](https://woocommerce.com/usage-tracking/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) with us, you can feel confident knowing that it’s anonymized and kept secure. Choose to opt-out at any time without impacting your store.

Unlike hosted ecommerce solutions, WooCommerce store data is future-proof; you’re free to export all your content and take your site to any platform you choose. No restrictions.

= Why developers choose (and love) WooCommerce =

Developers can use [WooCommerce](https://woocommerce.com/woocommerce/) to create, customize, and scale a store to meet a client’s exact specifications, making enhancements through extensions or custom solutions.

- Leverage [hooks and filters](https://woocommerce.com/document/introduction-to-hooks-actions-and-filters/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to modify or create functionality.
- Integrate virtually any service using a robust [REST API](https://developer.woocommerce.com/docs/getting-started-with-the-woocommerce-rest-api/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and webhooks.
- Design and build custom content blocks with React.
- [Inspect and modify](https://developer.woocommerce.com/docs/category/extension-development/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) any aspect of the core plugin code.
- Speed up development with a lightning-fast [CLI](https://developer.woocommerce.com/docs/category/wc-cli/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

The core platform is tested rigorously and often, supported by a dedicated development team working across time zones. Comprehensive documentation is updated with each release, empowering you to build exactly the store required.

= Be part of our growing international community =

WooCommerce has a large, passionate community dedicated to helping merchants succeed – and it’s growing fast.

There are [WooCommerce Meetups](https://woocommerce.com/meetups/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) in locations around the world that you can attend for free and even get involved in running. These events are a great way to learn from others, share your expertise, and connect with like-minded folks.

WooCommerce also has a regular presence at WordCamps across the globe – we’d love to meet you.

= Contribute and translate =

WooCommerce is developed and supported by Automattic, the creators of WordPress.com and Jetpack. We also have hundreds of independent contributors, and there’s always room for more. Head to the [WooCommerce GitHub Repository](https://github.com/woocommerce/woocommerce?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to find out how you can pitch in.

WooCommerce is translated into multiple languages, including Danish, Ukrainian, and Persian. Help localize WooCommerce even further by adding your locale – visit [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

= Connection to WooCommerce.com =

You can connect your store to [WooCommerce.com](https://woocommerce.com/) to manage your subscriptions on WooCommerce Marketplace and receive product updates without leaving WordPress admin. Connection also enables installation of purchased products right from WooCommerce.com and streamlines access to technical support. If you’d like to learn about what data is gathered and how it is used, please refer to our [Privacy Policy](https://automattic.com/privacy/).

== Frequently Asked Questions ==

= Where can I find WooCommerce documentation and user guides? =

For help setting up and configuring WooCommerce, please refer to [Getting Started](https://woocommerce.com/documentation/plugins/woocommerce/getting-started/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and the [New WooCommerce Store Owner Guide](https://woocommerce.com/guides/new-store/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

For extending or theming WooCommerce, see our [documentation](https://github.com/woocommerce/woocommerce/tree/trunk/docs), as well as the [Plugin Developer Best Practices](https://github.com/woocommerce/woocommerce/blob/trunk/docs/extension-development/extension-development-best-practices.md).

= Where can I get help or talk to other users about WooCommerce Core? =

If you get stuck, you can ask for help in the [WooCommerce Support Forum](https://wordpress.org/support/plugin/woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) by following [these guidelines](https://wordpress.org/support/topic/guide-to-the-woocommerce-forum/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), reach out via the [WooCommerce Community Slack](https://woocommerce.com/community-slack/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), or post in the [WooCommerce Community group](https://www.facebook.com/groups/advanced.woocommerce?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) on Facebook.

= Where can I get help for extensions I have purchased from the WooCommerce Marketplace? =

For assistance with paid extensions from the WooCommerce Marketplace: first, review our [self-service troubleshooting guide](https://woocommerce.com/document/woocommerce-self-service-guide/). If the problem persists, kindly log a support ticket via [our helpdesk](https://woocommerce.com/my-account/create-a-ticket/). Our dedicated Happiness Engineers aim to respond within 24 hours.

= I’m having trouble logging in to WooCommerce.com – what now? =

First, troubleshoot common login issues using this helpful [step-by-step guide](https://woocommerce.com/document/log-into-woocommerce-com-with-wordpress-com/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). Still not working? [Get in touch with us](https://woocommerce.com/contact-us/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

= Will WooCommerce work with my theme? =

Yes! WooCommerce will work with any theme but may require some additional styling. If you’re looking for a theme featuring deep WooCommerce integration, we recommend [Storefront](https://woocommerce.com/storefront/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

= How do I update WooCommerce? =

We have a detailed guide on [How To Update WooCommerce](https://woocommerce.com/document/how-to-update-woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

= My site broke – what do I do? =

Start by diagnosing the issue using our helpful [troubleshooting guide](https://woocommerce.com/documentation/get-help/troubleshooting-get-help/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

If you noticed the error after updating a theme or plugin, there might be compatibility issues between it and WooCommerce. If the issue appeared after updating WooCommerce, there could be a conflict between WooCommerce and an outdated theme or plugin.

In both instances, we recommend running a conflict test using [Health Check](https://woocommerce.com/document/troubleshooting-using-health-check/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (which allows you to disable themes and plugins without affecting your visitors) or troubleshooting the issue using a [staging site](https://woocommerce.com/document/how-to-test-for-conflicts/#section-3?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).

= Where can I report bugs? =

Report bugs on the [WooCommerce GitHub repository](https://github.com/woocommerce/woocommerce/issues?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). You can also notify us via our support forum – be sure to search the forums to confirm that the error has not already been reported.

= Where can I request new features, themes, and extensions? =

Request new features and extensions and vote on existing suggestions on our official [feature request board](https://woocommerce.com/feature-requests/woocommerce?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). Our Product teams regularly review requests and consider them valuable for product planning.

= WooCommerce is awesome! Can I contribute? =

Yes, you can! Join in on our [GitHub repository](https://github.com/woocommerce/woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and follow the [development blog](https://woocommerce.wordpress.com/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to stay up-to-date with everything happening in the project.

= Where can I find REST API documentation? =

Extensive [WooCommerce REST API Documentation](https://woocommerce.github.io/woocommerce-rest-api-docs/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) is available on GitHub.

= My question is not listed here. Where can I find more answers? =

Check out [Frequently Asked Questions](https://woocommerce.com/document/frequently-asked-questions/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) for more.

== Installation ==

= Minimum Requirements =

* PHP 7.4 or greater is required (PHP 8.0 or greater is recommended)
* MySQL 5.5.5 or greater, OR MariaDB version 10.1 or greater, is required
* WordPress 6.8 or greater
* (Recommended) WordPress [memory limit](https://woocommerce.com/document/increasing-the-wordpress-memory-limit/) of 256 MB or greater.
* (Recommended) [HTTPS](https://woocommerce.com/document/ssl-and-https/) support.

= Automatic installation =

Automatic installation is the easiest option -- WordPress will handle the file transfer, and you won’t need to leave your web browser. To do an automatic install of WooCommerce, log in to your WordPress dashboard, navigate to the Plugins menu, and click “Add New.”

In the search field type “WooCommerce,” then click “Search Plugins.” Once you’ve found us,  you can view details about it such as the point release, rating, and description. Most importantly of course, you can install it by! Click “Install Now,” and WordPress will take it from there.

= Manual installation =

Manual installation method requires downloading the WooCommerce plugin and uploading it to your web server via your favorite FTP application. The WordPress codex contains [instructions on how to do this here](https://wordpress.org/support/article/managing-plugins/#manual-plugin-installation).

= Updating =

Automatic updates should work smoothly, but we still recommend you back up your site.

If you encounter issues with the shop/category pages after an update, flush the permalinks by going to WordPress > Settings > Permalinks and hitting “Save.” That should return things to normal.

= Sample data =

WooCommerce comes with some sample data you can use to see how products look; import sample_products.xml via the [WordPress importer](https://wordpress.org/plugins/wordpress-importer/). You can also use the core [CSV importer](https://woocommerce.com/document/product-csv-importer-exporter/?utm_source=wp%20org%20repo%20listing&utm_content=3.6) or our [CSV Import Suite extension](https://woocommerce.com/products/product-csv-import-suite/?utm_source=wp%20org%20repo%20listing&utm_content=3.6) to import sample_products.csv

== Changelog ==

= 10.8.0-beta.2 2026-05-11 =

**WooCommerce**

* Fix - Add periodic cleanup for place-order debug log files and dangling order meta that the existing batch processor doesn't cover. [#63756](https://github.com/woocommerce/woocommerce/pull/63756)
* Fix - Adds a fallback path to the plugin file during plugin activation step. Prevents `unknown_filename` error when trying to activate a plugin during the auto-installation flow. [#63796](https://github.com/woocommerce/woocommerce/pull/63796)
* Fix - Add __next40pxDefaultSize prop to SelectControl components to resolve deprecated size warning on WP 7.0+. [#63847](https://github.com/woocommerce/woocommerce/pull/63847)
* Fix - Add __nextHasNoMarginBottom prop to dashboard-charts interval SelectControl to resolve deprecation warning. [#63843](https://github.com/woocommerce/woocommerce/pull/63843)
* Fix - Clarify tax inclusion/exclusion in Orders REST API schema descriptions and add total_tax field to inline refund data. [#63692](https://github.com/woocommerce/woocommerce/pull/63692)
* Fix - Customer Account: visual fixes of newly added dropdown [#64073](https://github.com/woocommerce/woocommerce/pull/64073)
* Fix - Do not update theme support option or queue rewrite rule flush when running in WP-CLI or cron contexts, preventing hosts that run WP-CLI with --skip-themes from corrupting the shop page rewrite rules. [#64117](https://github.com/woocommerce/woocommerce/pull/64117)
* Fix - Ensure value attribute is updated when selecting autocomplete address [#63524](https://github.com/woocommerce/woocommerce/pull/63524)
* Fix - Fix 404 requests for category-title and category-description block frontend scripts [#63945](https://github.com/woocommerce/woocommerce/pull/63945)
* Fix - Fix: missing handling for null meta keys/values in POST/PUT endpoints [#63971](https://github.com/woocommerce/woocommerce/pull/63971)
* Fix - Fix account password field showing validation error immediately when "Create an account" checkbox is checked on checkout. [#64064](https://github.com/woocommerce/woocommerce/pull/64064)
* Fix - Fix address autocomplete branding logo not rendering in block checkout due to sanitizeHTML stripping img tags [#63985](https://github.com/woocommerce/woocommerce/pull/63985)
* Fix - Fix address autocomplete dropdown appearing after browser autofill on checkout [#63902](https://github.com/woocommerce/woocommerce/pull/63902)
* Fix - Fix Add to Cart + Options grouped product child quantity inputs to respect each child product's own constraints on WordPress 6.8 [#64571](https://github.com/woocommerce/woocommerce/pull/64571)
* Fix - Fix a `_load_textdomain_just_in_time` notice for the `woocommerce` domain on WordPress 6.7+ caused by the new dual code / GraphQL API checking its feature flag too early during plugin load. [#64332](https://github.com/woocommerce/woocommerce/pull/64332)
* Fix - Fix Cart/Checkout blocks not displaying product images with non-ASCII filenames. [#63763](https://github.com/woocommerce/woocommerce/pull/63763)
* Fix - Fix Cart and Checkout block crash caused by WordPress emoji detection script corrupting React DOM when product names contain emoji characters. [#64072](https://github.com/woocommerce/woocommerce/pull/64072)
* Fix - Fix colour picker swatch height to match WP 7.0 input height on Emails settings tab. [#63814](https://github.com/woocommerce/woocommerce/pull/63814)
* Fix - Fix command palette command registration on WooCommerce admin pages by loading the command scripts in admin and preserving settings/analytics command hydration. [#64164](https://github.com/woocommerce/woocommerce/pull/64164)
* Fix - Fix core profiler shipping_partner_impression tracking event reporting wrong country when plugins step is reached via direct navigation or page refresh. [#64133](https://github.com/woocommerce/woocommerce/pull/64133)
* Fix - Fix Coupon Code block search to include coupons in all default statuses (draft, future, pending, private, publish), not just published ones [#63933](https://github.com/woocommerce/woocommerce/pull/63933)
* Fix - Fix customer history "Total orders" tooltip to dynamically reflect excluded order statuses instead of using hardcoded text. [#64036](https://github.com/woocommerce/woocommerce/pull/64036)
* Fix - Fix CustomerHistory metabox to query real-time order data (HPOS) instead of analytics tables, ensuring accurate customer order count and spend data regardless of analytics sync status. [#63715](https://github.com/woocommerce/woocommerce/pull/63715)
* Fix - Fix DB update admin note not reappearing after being dismissed by the user. [#63657](https://github.com/woocommerce/woocommerce/pull/63657)
* Fix - Fix duplicate wc_customer_lookup rows when a guest registers via delayed account creation on the order confirmation page. [#63989](https://github.com/woocommerce/woocommerce/pull/63989)
* Fix - Fixed a fatal error where urldecode() received an array in wc_product_canonical_redirect() when running on PHP 8 or higher. [#63723](https://github.com/woocommerce/woocommerce/pull/63723)
* Fix - Fixed featured products not showing on multisite. [#63204](https://github.com/woocommerce/woocommerce/pull/63204)
* Fix - Fix email editor styling regressions: logo/title font competition, inconsistent bold in order totals, and incorrect content indentation in block emails. [#63974](https://github.com/woocommerce/woocommerce/pull/63974)
* Fix - Fixes "Additional Information" tab content being cut off on mobile devices. [#63255](https://github.com/woocommerce/woocommerce/pull/63255)
* Fix - Fix excessive express payment button spacing in Safari on the block cart page by switching from block layout to flexbox with explicit gap. [#64074](https://github.com/woocommerce/woocommerce/pull/64074)
* Fix - Fix fatal error on shop page when a product attribute taxonomy used in Product Filters block is deleted. [#63982](https://github.com/woocommerce/woocommerce/pull/63982)
* Fix - Fix fatal TypeError when Product Collection block offset or perPage is an empty string. [#64012](https://github.com/woocommerce/woocommerce/pull/64012)
* Fix - Fix Hidden product search visibility [#63181](https://github.com/woocommerce/woocommerce/pull/63181)
* Fix - Fix HPOS data cache cross-bleed between order data store subclasses [#64067](https://github.com/woocommerce/woocommerce/pull/64067)
* Fix - Fix insufficient color contrast for Select2 placeholder text to meet WCAG 2.2 AA requirements. [#63751](https://github.com/woocommerce/woocommerce/pull/63751)
* Fix - Fix is_checkout/is_cart cache poisoning causing 404 on checkout endpoints when called before main query is ready [#63966](https://github.com/woocommerce/woocommerce/pull/63966)
* Fix - Fix locale filter breaking address forms when hiding fields. Country is now enforced as always visible and required since it is the lookup key for locale resolution. Also fixes state field not being hideable by locale in classic checkout, and fixes address card displaying stale values for hidden fields. [#63928](https://github.com/woocommerce/woocommerce/pull/63928)
* Fix - Fix logo image inheriting unintended margin-right from global img rule in improved email design. [#64137](https://github.com/woocommerce/woocommerce/pull/64137)
* Fix - Fix Mini-cart does not update or open when adding through legacy events [#64152](https://github.com/woocommerce/woocommerce/pull/64152)
* Fix - Fix moment-timezone console errors in WooCommerce Admin by using WordPress core's bundled moment-timezone instead of a stripped copy [#64201](https://github.com/woocommerce/woocommerce/pull/64201)
* Fix - Fix Product Results Count block not updating when filtering products with the Interactivity API. [#63969](https://github.com/woocommerce/woocommerce/pull/63969)
* Fix - Fix Product SKU not visible for variable products inside Product Collections [#63990](https://github.com/woocommerce/woocommerce/pull/63990)
* Fix - Fix Product Summary "Upgrade now (just this block)" button not working in the Site Editor. [#63937](https://github.com/woocommerce/woocommerce/pull/63937)
* Fix - Fix product title with $ breaking Add to cart with options [#63653](https://github.com/woocommerce/woocommerce/pull/63653)
* Fix - Fix RTL text alignment in email order details table headers by replacing inline styles with RTL-aware CSS classes. [#63921](https://github.com/woocommerce/woocommerce/pull/63921)
* Fix - Fix scheduled import preference lost after analytics option rename in 10.5.0. [#63808](https://github.com/woocommerce/woocommerce/pull/63808)
* Fix - Fix scheduled sale actions leaving lookup table data stale [#63856](https://github.com/woocommerce/woocommerce/pull/63856)
* Fix - Fix setup wizard TypeError on first site load by reading site title from wcSettings instead of core-data entity record. [#63929](https://github.com/woocommerce/woocommerce/pull/63929)
* Fix - Fix some input misalignment in Settings on WP 7.0 [#64145](https://github.com/woocommerce/woocommerce/pull/64145)
* Fix - Fix SQL error when searching with empty or exclusion-only terms by falling back to default ordering instead of relevance. [#63760](https://github.com/woocommerce/woocommerce/pull/63760)
* Fix - Fix Store API products endpoint allowing transient bloat via arbitrary product IDs in the `related` query parameter. [#63846](https://github.com/woocommerce/woocommerce/pull/63846)
* Fix - Fix two typos in available-slot-fills.md — remove duplicate word and correct wrong article. [#64228](https://github.com/woocommerce/woocommerce/pull/64228)
* Fix - Fix unauthenticated access to guest order fulfillments via REST API. [#64130](https://github.com/woocommerce/woocommerce/pull/64130)
* Fix - Fix validation error message overlapping the advanced cost help text in Flat Rate shipping method settings. [#63398](https://github.com/woocommerce/woocommerce/pull/63398)
* Fix - Inherit font color in Checkout block saved addresses [#64148](https://github.com/woocommerce/woocommerce/pull/64148)
* Fix - Log get_order() exceptions to WC Logger for easier debugging. [#64347](https://github.com/woocommerce/woocommerce/pull/64347)
* Fix - My Account: navigation items have unified padding [#63769](https://github.com/woocommerce/woocommerce/pull/63769)
* Fix - Normalise filter query vars before hashing cache keys so equivalent filter combinations (e.g. filter_color=red,blue vs blue,red) share the same cache entry. [#64041](https://github.com/woocommerce/woocommerce/pull/64041)
* Fix - Only add valueAddedTaxIncluded to structured data when taxes are enabled (#63266) [#63304](https://github.com/woocommerce/woocommerce/pull/63304)
* Fix - Pass `tested` and `icons` fields from WooCommerce.com update-check API response into the `update_plugins` site transient, allowing WordPress to display compatibility info and extension icons on the Updates page. [#63986](https://github.com/woocommerce/woocommerce/pull/63986)
* Fix - Prevent a fatal error in the cart template when a filter on `woocommerce_cart_item_product` returns a non-product value, by moving the product name lookup inside the existing product validity check. [#64252](https://github.com/woocommerce/woocommerce/pull/64252)
* Fix - Prevent empty quantity output markers in order email templates. [#63878](https://github.com/woocommerce/woocommerce/pull/63878)
* Fix - Prevent fatal errors in email footer placeholder replacement when third-party filters return non-string values. [#64056](https://github.com/woocommerce/woocommerce/pull/64056)
* Fix - Prevent fatal error when product attribute data is malformed [#63953](https://github.com/woocommerce/woocommerce/pull/63953)
* Fix - Remove confusing error notice when shipping tour completion flag fails to save. [#64466](https://github.com/woocommerce/woocommerce/pull/64466)
* Fix - REST API: prevent PUT /wc/v(2|3)/orders/{id} from converting non-shop_order records into orders. [#64050](https://github.com/woocommerce/woocommerce/pull/64050)
* Fix - Restore case-insensitive coupon lookups on databases with case-sensitive collations. [#63800](https://github.com/woocommerce/woocommerce/pull/63800)
* Fix - Restore the Shipping task on US, CO, and MX stores by adding them back to the home-screen auto-zone whitelist. [#64560](https://github.com/woocommerce/woocommerce/pull/64560)
* Fix - Schedule sale events when sale date meta is written directly, so sales activate on time for importers and integrations that bypass WooCommerce CRUD. [#64140](https://github.com/woocommerce/woocommerce/pull/64140)
* Fix - Skip unnecessary DELETE queries in update_line_items_from_cart when order ID is 0. [#63890](https://github.com/woocommerce/woocommerce/pull/63890)
* Fix - Store Notices: Remove margins from empty Store Notices container [#63749](https://github.com/woocommerce/woocommerce/pull/63749)
* Fix - Strip sensitive fields (downloads, COGS, purchase note) from V4 products REST API response for users without product management capabilities. [#63895](https://github.com/woocommerce/woocommerce/pull/63895)
* Fix - Suppress harmless duplicate key database errors logged during WooCommerce table creation on update. [#64188](https://github.com/woocommerce/woocommerce/pull/64188)
* Fix - Use default cursor in Product Gallery large image when it's not clickable [#63956](https://github.com/woocommerce/woocommerce/pull/63956)
* Fix - Add row layout data to the WooCommerce Shipping partner suggestion so the card renders correctly in row / vertical placements. [#64593](https://github.com/woocommerce/woocommerce/pull/64593)
* Fix - Fix PHP 8.5 fatal error when unsetting string offsets in StoreApi AbstractSchema [#64670](https://github.com/woocommerce/woocommerce/pull/64670)
* Fix - Prevent re-entrant order reads triggered by cached refund objects. [#64657](https://github.com/woocommerce/woocommerce/pull/64657)
* Fix - Revert PR 62843 which added checkout evidence validation to WC_Order::payment_complete() [#64687](https://github.com/woocommerce/woocommerce/pull/64687)
* Add - Add a GraphQL settings section under Advanced with a toggle for the GET endpoint. [#64293](https://github.com/woocommerce/woocommerce/pull/64293)
* Add - Add an offline banner to WooCommerce admin that appears when the browser loses its connection, and surface a clear notice when save requests fail silently due to network loss. [#64334](https://github.com/woocommerce/woocommerce/pull/64334)
* Add - Add auto-generation mode to the coupon code email block, allowing users to configure coupon rules that generate unique codes at send time. [#64342](https://github.com/woocommerce/woocommerce/pull/64342)
* Add - Add optional customer note field to fulfillment updated email notification. [#63855](https://github.com/woocommerce/woocommerce/pull/63855)
* Add - Add woocommerce_email_order_details_heading and woocommerce_email_display_order_number filters to the email order details template. [#63898](https://github.com/woocommerce/woocommerce/pull/63898)
* Add - Export Skeleton component via PaymentMethodInterface components prop for payment gateway extensions. [#63788](https://github.com/woocommerce/woocommerce/pull/63788)
* Add - Introduce the dual code + GraphQL API for WooCommerce [#63772](https://github.com/woocommerce/woocommerce/pull/63772)
* Add - Add a new "Review request" transactional email that invites customers to review the products they purchased. Disabled by default and configurable under WooCommerce → Settings → Emails. [#64624](https://github.com/woocommerce/woocommerce/pull/64624)
* Add - Add a `/review-order/{id}/?key={order_key}` URL and a tokenized, read-only landing page for the Customer Review Request feature, plus the public `wc_get_review_order_url()` helper. The page is read-only; form controls land in a follow-up. [#64628](https://github.com/woocommerce/woocommerce/pull/64628)
* Add - Add the accessible 5-star rating control used by the Review Order page. Native radio inputs with keyboard navigation (arrows, Home, End), dynamic caption, and visible focus ring; filterable labels via `woocommerce_review_order_rating_labels`. [#64689](https://github.com/woocommerce/woocommerce/pull/64689)
* Add - Add the accessible 5-star rating control used by the Review Order page. Native radio inputs with keyboard navigation (arrows, Home, End), dynamic caption, and visible focus ring; filterable labels via `woocommerce_review_order_rating_labels`. [#64701](https://github.com/woocommerce/woocommerce/pull/64701)
* Add - Add the per-item review form row on the Review Order page: linked product title, thumbnail, accessible star rating, review textarea, and an extensions hook (`woocommerce_review_order_form_fields`). Submit button is gated on at least one rating being selected. Narrow-viewport layout stacks the row vertically below 600px. [#64701](https://github.com/woocommerce/woocommerce/pull/64701)
* Add - Schedule the Review request email via Action Scheduler so it fires automatically a configurable number of days after an order is completed, and cancel the pending send when the order is cancelled, refunded, trashed or deleted. [#64625](https://github.com/woocommerce/woocommerce/pull/64625)
* Update - Add a woocommerce/product-context iAPI store for use in Add to Cart with Options [#63208](https://github.com/woocommerce/woocommerce/pull/63208)
* Update - Add to Cart Button: open external products link in a new tab [#63970](https://github.com/woocommerce/woocommerce/pull/63970)
* Update - Bump @wordpress/* dependencies to the wp-6.8 minimum across the admin, blocks, email-editor, product-editor, and settings-editor packages. [#64114](https://github.com/woocommerce/woocommerce/pull/64114)
* Update - Exclude checkout-draft orders from default REST API order queries (status=any). API consumers that rely on checkout-draft orders appearing in unfiltered order listings will need to explicitly request them via `status=checkout-draft`. [#63743](https://github.com/woocommerce/woocommerce/pull/63743)
* Update - Improve messages in the Reviews Form block when users can't leave reviews [#64004](https://github.com/woocommerce/woocommerce/pull/64004)
* Update - Internalize the webonyx GraphQL package [#64317](https://github.com/woocommerce/woocommerce/pull/64317)
* Update - Introduce new 'Create value' modal in variable product editor [#64251](https://github.com/woocommerce/woocommerce/pull/64251)
* Update - Make the GraphQL engine externally usable [#64390](https://github.com/woocommerce/woocommerce/pull/64390)
* Update - Migrate all interactive blocks from the old `woocommerce/product-data` store to the new `woocommerce/products` store. [#63662](https://github.com/woocommerce/woocommerce/pull/63662)
* Update - Migrate deferred transactional email sending to Action Scheduler [#63832](https://github.com/woocommerce/woocommerce/pull/63832)
* Update - Modify the meta_key_value in wp_wc_orders_meta to only track the meta_key column [#63897](https://github.com/woocommerce/woocommerce/pull/63897)
* Update - Replace 'Return to Cart' link with a cart icon in the checkout header [#63678](https://github.com/woocommerce/woocommerce/pull/63678)
* Update - Shorten the email editor reset action label from "Reset content to default" to "Reset" for consistency with site template resets and to reduce i18n overhead. [#63828](https://github.com/woocommerce/woocommerce/pull/63828)
* Update - Update copy on the activate payments step in NOX [#63919](https://github.com/woocommerce/woocommerce/pull/63919)
* Update - Show all country-relevant shipping partner recommendations on the settings page even when one of the partners is already installed. [#64629](https://github.com/woocommerce/woocommerce/pull/64629)
* Update - Stamp the new `_wc_email_template_last_core_render` and `_wc_email_backfilled` post meta during email template sync so 10.9's three-way diff change-summary has a base reference on 10.8-era posts. [#64728](https://github.com/woocommerce/woocommerce/pull/64728)
* Dev - Add internal WCEmailTemplateSyncRegistry helper that resolves block email templates participating in template update propagation via their @version header. No runtime behaviour change yet. [#64261](https://github.com/woocommerce/woocommerce/pull/64261)
* Dev - Add server-side POST /woocommerce-email-editor/v1/emails/{id}/reset endpoint that atomically rewrites a woo_email post to its current core template render and stamps sync meta (version, source hash, synced-at, status=in_sync). [#64355](https://github.com/woocommerce/woocommerce/pull/64355)
* Dev - Backfill template sync metadata onto pre-existing block email posts during upgrade so the divergence detector can classify legacy installs safely. [#64364](https://github.com/woocommerce/woocommerce/pull/64364)
* Dev - Detect divergence between generated block email posts and their source templates after plugin updates, classifying each post as in-sync, core-updated-uncustomized, or core-updated-customized. [#64328](https://github.com/woocommerce/woocommerce/pull/64328)
* Dev - Fix workflow path filters to correctly re-run when workflow files change. [#63935](https://github.com/woocommerce/woocommerce/pull/63935)
* Dev - Improve repeated WooCommerce admin and blocks production builds by using webpack filesystem cache outside watch mode. [#64080](https://github.com/woocommerce/woocommerce/pull/64080)
* Dev - Introduce a new performance skill focused on effectively using option cache priming APIs. [#63720](https://github.com/woocommerce/woocommerce/pull/63720)
* Dev - Introduces and implements constants for default customer address options in the WooCommerce plugin codebase. [#64091](https://github.com/woocommerce/woocommerce/pull/64091)
* Dev - Introduces and implements constants for order item types in the WooCommerce plugin codebase. [#63863](https://github.com/woocommerce/woocommerce/pull/63863)
* Dev - Introduces and implements constants for tax based on options in the WooCommerce plugin codebase. [#64104](https://github.com/woocommerce/woocommerce/pull/64104)
* Dev - Monorepo: complete migration to @woocommerce/internal-style-build/webpack-rtl-plugin [#64161](https://github.com/woocommerce/woocommerce/pull/64161)
* Dev - Monorepo: refresh DependencyExtractionWebpackPlugin for compatibility with filesystem cache, admin build cleanup. [#64111](https://github.com/woocommerce/woocommerce/pull/64111)
* Dev - QAO-185: add bridge aggregator for blocks e2e migration. [#64179](https://github.com/woocommerce/woocommerce/pull/64179)
* Dev - Reduce WooCommerce Blocks non-production build time by using a single Terser compression pass outside production. [#64081](https://github.com/woocommerce/woocommerce/pull/64081)
* Dev - Remove the search personal skills part from AGENTS.md [#63900](https://github.com/woocommerce/woocommerce/pull/63900)
* Dev - Replaced patched `@wordpress/data` types with opt-in internal package types. [#63483](https://github.com/woocommerce/woocommerce/pull/63483)
* Dev - Skip unnecessary extension suggestion lookup for offline payment methods in enhance_payment_gateway_details(). [#63930](https://github.com/woocommerce/woocommerce/pull/63930)
* Dev - Stamp sync meta on generated block email posts (version, source hash, synced-at) for emails whose templates expose a parseable @version header. No runtime behaviour change for emails outside the sync registry. [#64287](https://github.com/woocommerce/woocommerce/pull/64287)
* Dev - Update webpack configuration [#64250](https://github.com/woocommerce/woocommerce/pull/64250)
* Dev - Upgrade pnpm from 9.15.0 to 10.33.0 with supply chain security settings. [#63964](https://github.com/woocommerce/woocommerce/pull/63964)
* Tweak - Add "role": "content" to editable block attributes (product-sku, product-reviews-pagination-next, product-reviews-pagination-previous) for WordPress 7.0 contentOnly pattern editing compatibility. [#63977](https://github.com/woocommerce/woocommerce/pull/63977)
* Tweak - Add 8px border-radius to editor meta boxes and product description to align with WP 7.0 dashboard widget styling [#64191](https://github.com/woocommerce/woocommerce/pull/64191)
* Tweak - Add translatable “(incl. tax)” / “(excl. tax)” labels to product price fields depending on WooCommerce tax settings. [#62044](https://github.com/woocommerce/woocommerce/pull/62044)
* Tweak - Align order edit page address Select2 dropdowns (Country/Region, State/County) with WordPress 7.0 input height and padding so they match sibling text inputs. [#64451](https://github.com/woocommerce/woocommerce/pull/64451)
* Tweak - Align settings page input padding, Select2 single/multi-select text padding and border-radius, and shipping zone name/regions controls with WordPress 7.0 native form-control sizing. [#64445](https://github.com/woocommerce/woocommerce/pull/64445)
* Tweak - Encapsulate product lookup table refresh behind a dedicated public method [#64093](https://github.com/woocommerce/woocommerce/pull/64093)
* Tweak - Remove a border-left-color override on Woo's legacy admin notice container so "updated" notices inherit WordPress 7.0's success palette instead of the admin theme color. [#64470](https://github.com/woocommerce/woocommerce/pull/64470)
* Tweak - Replace remaining hardcoded admin blues in legacy Select2 and address autocomplete stylesheets with var(--wp-admin-theme-color) so borders and hover/focus states adopt the merchant's admin color scheme. [#64468](https://github.com/woocommerce/woocommerce/pull/64468)
* Tweak - Show a clear error message when users without plugin install permissions attempt to install plugins, instead of a generic failure message [#64187](https://github.com/woocommerce/woocommerce/pull/64187)
* Tweak - Show clearer errors when a test email fails to send. [#64286](https://github.com/woocommerce/woocommerce/pull/64286)
* Tweak - Show country name instead of country code in checkout address validation [#64008](https://github.com/woocommerce/woocommerce/pull/64008)
* Tweak - Update hardcoded border-radius on three legacy admin custom buttons (addons, setup wizard, helper) from 3–4px to 2px to align with the WordPress 7.0 admin radius. [#64446](https://github.com/woocommerce/woocommerce/pull/64446)
* Tweak - Update myPOS payment gateway icon to match design library [#64138](https://github.com/woocommerce/woocommerce/pull/64138)
* Tweak - Update the Blueprint settings error notice background to match the WordPress 7.0 admin notice spec (#fcf0f0). [#64469](https://github.com/woocommerce/woocommerce/pull/64469)
* Tweak - Vertically centre Product / Coupon Data panel labels and help-tip icons with 40px inputs on WordPress 7.0. [#64458](https://github.com/woocommerce/woocommerce/pull/64458)
* Performance - Add 3s timeout to DataSourcePoller HTTP calls and skip redundant remote fetches in wc_admin_daily when transients are fresh. [#63738](https://github.com/woocommerce/woocommerce/pull/63738)
* Performance - Add missing `_prime_post_caches()` calls in AJAX downloadable product search, scheduled sales processing, and Recent Reviews widget to batch-load post data and reduce individual database queries. [#63773](https://github.com/woocommerce/woocommerce/pull/63773)
* Performance - Add missing `_prime_post_caches()` calls in grouped product structured data, grouped product add-to-cart template, and download permissions adjuster to batch-load child product data to reduce individual database queries. [#63797](https://github.com/woocommerce/woocommerce/pull/63797)
* Performance - A new index has been added to the wc_orders table to improve the performance of order resolution by transaction ID. [#64025](https://github.com/woocommerce/woocommerce/pull/64025)
* Performance - A new index has been added to the `wc_reserved_stock` table to maintain stock reservation performance during peak sales events. [#63864](https://github.com/woocommerce/woocommerce/pull/63864)
* Performance - Avoid duplicate `get_block_type_style()` call in `AbstractBlock::register_block_type()` by caching the result in a local variable. [#64256](https://github.com/woocommerce/woocommerce/pull/64256)
* Performance - Improved cache warmup for the `woocommerce_refresh_order_count_cache` action to increase efficiency. [#63753](https://github.com/woocommerce/woocommerce/pull/63753)
* Performance - Lazy-load _used_by post meta in WC_Coupon to avoid loading all usage records into memory on construction. [#63755](https://github.com/woocommerce/woocommerce/pull/63755)
* Performance - Limit wc_translate_user_roles() to the default-domain contextual gettext hook. [#64078](https://github.com/woocommerce/woocommerce/pull/64078)
* Performance - Optimize SQL performance in the wc_customer_bought_product function. [#63995](https://github.com/woocommerce/woocommerce/pull/63995)
* Performance - Prime featured image caches on product archive pages to reduce SQL queries during rendering. [#63877](https://github.com/woocommerce/woocommerce/pull/63877)
* Performance - Products: reduced the number of SQL queries required to populate cart data in StoreApi. [#63850](https://github.com/woocommerce/woocommerce/pull/63850)
* Performance - Reduced the number of SQL queries needed to populate cart data in StoreApi. [#64088](https://github.com/woocommerce/woocommerce/pull/64088)
* Performance - Reduced the number of SQL queries required to handle order collections in both the storefront and REST interfaces. [#63768](https://github.com/woocommerce/woocommerce/pull/63768)
* Performance - Reduce the number of database queries on the classic cart page by priming post and image caches in `woocommerce_cross_sell_display()`. [#64085](https://github.com/woocommerce/woocommerce/pull/64085)
* Performance - Reduce the number of database queries on the product edit screen by priming attachment caches before rendering the product gallery meta box. [#64089](https://github.com/woocommerce/woocommerce/pull/64089)
* Performance - Reduce the number of database queries on the single product page by priming attachment caches in the StoreApi ProductSchema `get_images()` method. [#64100](https://github.com/woocommerce/woocommerce/pull/64100)
* Performance - Reduce the number of database queries when listing products via the REST API by priming attachment post caches in `get_images()`. [#64070](https://github.com/woocommerce/woocommerce/pull/64070)
* Enhancement - Add 'product.published' webhook topic than runs when a product is published. [#63555](https://github.com/woocommerce/woocommerce/pull/63555)
* Enhancement - Add checkout evidence validation to prevent unintended order completion for orders without checkout context [#62843](https://github.com/woocommerce/woocommerce/pull/62843)
* Enhancement - Add to Cart + Options: render 3rd-party product types quantity inputs with steppers [#62893](https://github.com/woocommerce/woocommerce/pull/62893)
* Enhancement - Allow extensionCartUpdate's overwriteDirtyCustomerData option to accept an object with per-address control ({ shipping_address?: boolean, billing_address?: boolean }) in addition to a boolean. [#64032](https://github.com/woocommerce/woocommerce/pull/64032)
* Enhancement - Cap cached filter combinations to limit transient growth from bot enumeration. [#64039](https://github.com/woocommerce/woocommerce/pull/64039)
* Enhancement - My Subscriptions: show "Managed by host" or "Managed by agency" in the expiry column for host plan and agency subscriptions. [#63925](https://github.com/woocommerce/woocommerce/pull/63925)


[See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/changelog.txt).