Commit 5acf6928f99 for woocommerce
commit 5acf6928f9916a7e35f6bfedcf71d34e62eed834
Author: woocommercebot <30233865+woocommercebot@users.noreply.github.com>
Date: Tue May 26 22:35:36 2026 +0530
Update changelog.txt after 10.8.0 (#65323)
Update changelog.txt after release 10.8.0
Co-authored-by: woocommercebot <woocommercebot@users.noreply.github.com>
Co-authored-by: Panos (Panagiotis Synetos) <2484390+PanosSynetos@users.noreply.github.com>
diff --git a/changelog.txt b/changelog.txt
index 8371a094456..cd4dc913970 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,190 @@
== Changelog ==
+= 10.8.0 2026-05-26 =
+
+**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)
+* Fix - Cancel the delayed Customer Review Request email when the order leaves `completed` for any status, and refuse to send if the order is no longer in an eligible status at trigger time. [#64786](https://github.com/woocommerce/woocommerce/pull/64786)
+* Fix - Fix Add to Cart + Options steppers not working on extension quantity inputs [#64847](https://github.com/woocommerce/woocommerce/pull/64847)
+* Fix - Prevent invalid cache prefixes from causing fatal errors on the My Account orders page. [#64870](https://github.com/woocommerce/woocommerce/pull/64870)
+* Fix - Restore the meta_value column to the meta_key_value index on the wc_orders_meta table to fix a performance regression. [#65162](https://github.com/woocommerce/woocommerce/pull/65162)
+* 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)
+* Add - Add the AJAX submission handler that turns the Review Order form into product reviews — one verified-buyer comment per rated row, per-row outcome, `comment_moderation` honoured. [#64805](https://github.com/woocommerce/woocommerce/pull/64805)
+* Add - Exclude fully-refunded line items from the customer Review Order page so customers can't review products they no longer own. [#64840](https://github.com/woocommerce/woocommerce/pull/64840)
+* Add - Pre-fill the Review Order form with the customer's existing review for this order, scoped per-order so repeat purchases of the same product get a fresh empty row. [#64832](https://github.com/woocommerce/woocommerce/pull/64832)
+* Add - Render an empty-state thank-you view on the customer Review Order page when no actionable rows remain (every eligible item is already reviewed or skipped because reviews are disabled). [#64840](https://github.com/woocommerce/woocommerce/pull/64840)
+* 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)
+* Update - Update version requirements to WordPress 6.9. [#65211](https://github.com/woocommerce/woocommerce/pull/65211)
+* 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)
+* Dev - Gate the Customer Review Request feature behind a FeaturesController flag (off by default). The host page is created lazily on the first request after the feature is enabled, not on plugin install. [#64895](https://github.com/woocommerce/woocommerce/pull/64895)
+* Dev - Make `WC_Email_Customer_Review_Request_Test` self-contained for the `customer_review_request` feature gate so `test_is_registered_with_wc_emails` doesn't depend on incidental test ordering. [#64895](https://github.com/woocommerce/woocommerce/pull/64895)
+* 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)
+* Tweak - Hide the duplicate page title heading on the Customer Review Order page so the shortcode body's heading is the only H1 visitors and screen readers encounter. [#64849](https://github.com/woocommerce/woocommerce/pull/64849)
+* 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)
+* Enhancement - Align the Customer Review Order page with the Figma design: ship the functional state gaps, swap to theme-aware classes, and route the customer to a thank-you view in place after any successful submission. [#64867](https://github.com/woocommerce/woocommerce/pull/64867)
+
+
= 10.7.0 2026-04-14 =
**WooCommerce**