Commit 29a44400b57 for woocommerce
commit 29a44400b574161c302381a66582cd6b0f0c3413
Author: woocommercebot <30233865+woocommercebot@users.noreply.github.com>
Date: Tue Apr 14 15:43:11 2026 +0000
Update changelog.txt after 10.7.0 (#64151)
* Update changelog.txt after release 10.7.0
* Remove duplicated entry
---------
Co-authored-by: woocommercebot <woocommercebot@users.noreply.github.com>
Co-authored-by: Ján Mikláš <neosinner@gmail.com>
diff --git a/changelog.txt b/changelog.txt
index 9d79c37a76a..8371a094456 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,145 @@
== Changelog ==
+= 10.7.0 2026-04-14 =
+
+**WooCommerce**
+
+* Fix - Added try/catch guards to store notices to prevent fatal errors when context is missing. [#63402](https://github.com/woocommerce/woocommerce/pull/63402)
+* Fix - Add missing session methods to StoreApi SessionHandler for compatibility with WC_Session_Handler. [#63606](https://github.com/woocommerce/woocommerce/pull/63606)
+* Fix - Add nonce verification to `product_ordering` and `term_ordering` AJAX handlers to prevent CSRF. [#63422](https://github.com/woocommerce/woocommerce/pull/63422)
+* Fix - Address deprecation warnings in feedback button. [#63554](https://github.com/woocommerce/woocommerce/pull/63554)
+* Fix - Always show radio for payment methods on checkout. [#63351](https://github.com/woocommerce/woocommerce/pull/63351)
+* Fix - Fix - Show 'Billing address' instead of 'Billing and shipping address' when Local Pickup is selected and shipping is forced to the billing address. [#58220](https://github.com/woocommerce/woocommerce/pull/58220)
+* Fix - Fix a bug with the Store Email personalization tag that caused it to always return the admin email instead of using the `get_from_address` method from the email object context [#63605](https://github.com/woocommerce/woocommerce/pull/63605)
+* Fix - Fix add to cart not working on stale nonces on cached pages [#62892](https://github.com/woocommerce/woocommerce/pull/62892)
+* Fix - Fix a small punctuation issue at the LYS page. [#63874](https://github.com/woocommerce/woocommerce/pull/63874)
+* Fix - Fix attribute matching for non-ASCII characters in product CSV importer [#62963](https://github.com/woocommerce/woocommerce/pull/62963)
+* Fix - Fix attribute terms REST API writing menu_order to wrong meta key. [#63390](https://github.com/woocommerce/woocommerce/pull/63390)
+* Fix - Fix cart: prevent false "Quantity changed to 1" notices and add optimistic removal feedback [#63403](https://github.com/woocommerce/woocommerce/pull/63403)
+* Fix - Fix Cart and Checkout block editor detection for post-new.php and other custom editor contexts. [#63759](https://github.com/woocommerce/woocommerce/pull/63759)
+* Fix - Fix console warnings in the editor when using cart and checkout blocks. [#63541](https://github.com/woocommerce/woocommerce/pull/63541)
+* Fix - Fix customer note email preview using wrong note text and missing newline support in admin order note personalization tag. [#63459](https://github.com/woocommerce/woocommerce/pull/63459)
+* Fix - Fix Customers Reports advanced filters (email, username, name) by consolidating autocompleter customer IDs into customers/customers_exclude params in the Controller, and add customers_exclude support. [#63232](https://github.com/woocommerce/woocommerce/pull/63232)
+* Fix - Fix dashboard status widget not showing after task list completion by adding a DeprecatedOptions bridge for woocommerce_task_list_complete. [#63522](https://github.com/woocommerce/woocommerce/pull/63522)
+* Fix - Fix duplicate "Fulfillment updated" order notes caused by redundant save_meta_data() call in OrderFulfillmentsRestController. [#63544](https://github.com/woocommerce/woocommerce/pull/63544)
+* Fix - Fixed sold individually validation on shortcode cart and checkout pages. Products marked as "Sold Individually" after being added to cart now have quantity automatically reduced to 1 with correct totals calculation. [#62293](https://github.com/woocommerce/woocommerce/pull/62293)
+* Fix - Fixes issue where actions for shipping extension in onboarding didn't display. [#63348](https://github.com/woocommerce/woocommerce/pull/63348)
+* Fix - Fix extra padding on analytics tables, dashboard charts, leaderboards, and store alerts on WordPress 7.0 by setting Card/CardBody size to "none". [#63826](https://github.com/woocommerce/woocommerce/pull/63826)
+* Fix - Fix floating point precision error in REST API v4 refund amount validation that caused valid refunds to be rejected. [#63667](https://github.com/woocommerce/woocommerce/pull/63667)
+* Fix - Fix fulfillment created email subject and heading to use correct plural form when shipment contains multiple items. [#63765](https://github.com/woocommerce/woocommerce/pull/63765)
+* Fix - Fix incorrect new hook names in deprecated filter hooks mapping for order refund amount and reason. [#56511](https://github.com/woocommerce/woocommerce/pull/56511)
+* Fix - Fix insufficient color contrast for status indicators on the System Status page to meet WCAG 2.2 AA requirements. [#63746](https://github.com/woocommerce/woocommerce/pull/63746)
+* Fix - Fix insufficient colour contrast in Dashboard Status widget link text to meet WCAG 2.2 AA requirements. [#63521](https://github.com/woocommerce/woocommerce/pull/63521)
+* Fix - Fix invalid JSON Schema in MCP tool definitions: convert date-time type to proper string+format, deduplicate enum values, handle mixed/action/unrecognized types, normalize array types, recursively sanitize nested schemas, sanitize output schemas, and strip boolean required from nested properties. [#63811](https://github.com/woocommerce/woocommerce/pull/63811)
+* Fix - Fix math expressions being rejected in the flat rate shipping cost field [#63453](https://github.com/woocommerce/woocommerce/pull/63453)
+* Fix - Fix Mini-Cart badge becoming invisible after client-side navigation. [#63014](https://github.com/woocommerce/woocommerce/pull/63014)
+* Fix - Fix misaligned order rows on the edit order screen when Cost of Goods Sold is enabled. [#63396](https://github.com/woocommerce/woocommerce/pull/63396)
+* Fix - Fix older PayPal Standard orders failing shipping callbacks when the request has no token by checking for token meta before validating the token parameter. [#63885](https://github.com/woocommerce/woocommerce/pull/63885)
+* Fix - Fix order meta box action buttons stacking poorly on smaller viewports (~1200px) with WordPress 7.0. [#63837](https://github.com/woocommerce/woocommerce/pull/63837)
+* Fix - Fix PayPal Standard webhook handling for invalid links. [#63886](https://github.com/woocommerce/woocommerce/pull/63886)
+* Fix - Fix PHP "Undefined property" warnings in `set_order_props_from_data` when HPOS Data Caching is enabled and cached objects have missing properties. [#63295](https://github.com/woocommerce/woocommerce/pull/63295)
+* Fix - Fix REST v4 API silently corrupting password and API key fields with special characters [#63597](https://github.com/woocommerce/woocommerce/pull/63597)
+* Fix - Fix selectWoo not initializing on the layered nav dropdown widget when using the OR query type. [#63275](https://github.com/woocommerce/woocommerce/pull/63275)
+* Fix - Fix session cookie when guest creates account during checkout. [#63335](https://github.com/woocommerce/woocommerce/pull/63335)
+* Fix - Fix settings password fields silently stripping characters that resemble percent-encoded sequences. [#63595](https://github.com/woocommerce/woocommerce/pull/63595)
+* Fix - Fix styling issues with WP 7.0 [#63824](https://github.com/woocommerce/woocommerce/pull/63824)
+* Fix - Fix System Status template override detection to show actual runtime behavior, including plugin filter overrides. [#62964](https://github.com/woocommerce/woocommerce/pull/62964)
+* Fix - Fix template overrides with missing version headers being incorrectly flagged as outdated, and render overrides as individual rows in the System Status report for improved readability. [#63460](https://github.com/woocommerce/woocommerce/pull/63460)
+* Fix - Fix the misalignment of the set new/lost password fields for twenty twenty and twenty twenty one themes. [#59273](https://github.com/woocommerce/woocommerce/pull/59273)
+* Fix - Fix undefined site_url variable in robots_txt [#63589](https://github.com/woocommerce/woocommerce/pull/63589)
+* Fix - Fix variable products not working when name is different than the slug [#63736](https://github.com/woocommerce/woocommerce/pull/63736)
+* Fix - Fix _load_textdomain_just_in_time warning in FulfillmentsController by checking feature option directly instead of using FeaturesController::feature_is_enabled() before init action. [#63893](https://github.com/woocommerce/woocommerce/pull/63893)
+* Fix - Make select focused state consistent with other input types [#63608](https://github.com/woocommerce/woocommerce/pull/63608)
+* Fix - Make sure that woocommerce_email_templates_*_post_id options are properly deleted when woo_email posts are removed in non-admin environments, such as WP-CLI. [#63500](https://github.com/woocommerce/woocommerce/pull/63500)
+* Fix - Make username and password optional in V4 Customers REST API regardless of store registration settings. [#63536](https://github.com/woocommerce/woocommerce/pull/63536)
+* Fix - Make zone locations optional in the V4 Shipping Zones REST API schema so that "Everywhere" zones can be created without providing a locations array. [#63685](https://github.com/woocommerce/woocommerce/pull/63685)
+* Fix - Mini-Cart: use server-computed item count when third-party filters modify `woocommerce_cart_contents_count`. [#63378](https://github.com/woocommerce/woocommerce/pull/63378)
+* Fix - Prevent "Order again" button showing on order confirmation page [#63499](https://github.com/woocommerce/woocommerce/pull/63499)
+* Fix - Prevent Activity panel abbreviated notification SlotFill from triggering repeated re-renders by creating the slot at module scope. [#63830](https://github.com/woocommerce/woocommerce/pull/63830)
+* Fix - Prevent draft products from being accessible via Store API and redact content for password-protected products [#63466](https://github.com/woocommerce/woocommerce/pull/63466)
+* Fix - Prevent fatal error when FTP filesystem connection fails during logging operations. [#63298](https://github.com/woocommerce/woocommerce/pull/63298)
+* Fix - Prevent mini-cart drawer having a white background and use page background instead [#63758](https://github.com/woocommerce/woocommerce/pull/63758)
+* Fix - Prevent stored XSS on order notes added via REST API v4 [#63661](https://github.com/woocommerce/woocommerce/pull/63661)
+* Fix - Skip initial save of POS store name setting so emails use the current site name instead of the stale "My WordPress Site" default. [#63505](https://github.com/woocommerce/woocommerce/pull/63505)
+* Fix - Update slug sanitize callback to use sanitize_slug [#63342](https://github.com/woocommerce/woocommerce/pull/63342)
+* Fix - Wrong escaping of "&" character in product name in img alt tag in cart and checkout pages [#63637](https://github.com/woocommerce/woocommerce/pull/63637)
+* Fix - Add to Cart + Options: Ensure attributes with spaces and special characters work well in dropdown mode [#64037](https://github.com/woocommerce/woocommerce/pull/64037)
+* Fix - Fix Add to Cart button not visible when displaying a Single Product block with a variation with only one product left [#63947](https://github.com/woocommerce/woocommerce/pull/63947)
+* Fix - Fix cart shipping and totals stuck as loading when removing bundled products [#64000](https://github.com/woocommerce/woocommerce/pull/64000)
+* Fix - Fix issues when Product Gallery was used inside the Product block [#63976](https://github.com/woocommerce/woocommerce/pull/63976)
+* Fix - Fix settings page label vertical alignment on WordPress 7.0 where increased form element height caused labels to sit too high relative to their fields. [#63924](https://github.com/woocommerce/woocommerce/pull/63924)
+* Fix - Fix entity-encoded HTML in `item_data` being incorrectly decoded during mini-cart rendering. [#64122](https://github.com/woocommerce/woocommerce/pull/64122)
+* Fix - Fix fatal error on Payments settings page when `woocommerce_gateway_order` option contains legacy integer keys. [#64061](https://github.com/woocommerce/woocommerce/pull/64061)
+* Fix - Fix inconsistent icon spacing in the customer account block header on mobile. [#64126](https://github.com/woocommerce/woocommerce/pull/64126)
+* Fix - Fix shipping provider filter on orders list using wrong meta key, causing no results to appear. [#64101](https://github.com/woocommerce/woocommerce/pull/64101)
+* Fix - Fix tracking number lookup breaking when custom shipping provider definitions contain non-string values. [#64075](https://github.com/woocommerce/woocommerce/pull/64075)
+* Add - Add custom shipping providers settings UI and shipping provider filter for the orders list. [#63879](https://github.com/woocommerce/woocommerce/pull/63879)
+* Add - Add description for COD enable_for_methods field in v4 settings API. [#63767](https://github.com/woocommerce/woocommerce/pull/63767)
+* Add - Add design-aligned grouped settings schemas for offline payment gateways (cheque, BACS, COD) in the v4 settings API. [#63734](https://github.com/woocommerce/woocommerce/pull/63734)
+* Add - Add embeddable _links for upsells, cross-sells, and related products to Store API Products endpoint. [#62603](https://github.com/woocommerce/woocommerce/pull/62603)
+* Add - Add export column and item filters to Revenue Stats, Taxes, and Variations report controllers, and forward selected currency from URL query params into the export job payload. [#63618](https://github.com/woocommerce/woocommerce/pull/63618)
+* Add - Add formatted_weight and formatted_dimensions to Store API ProductSchema [#63405](https://github.com/woocommerce/woocommerce/pull/63405)
+* Add - Add notice to Cart/Checkout blocks front-end to show notices about incompatible plugins to admin users. [#62242](https://github.com/woocommerce/woocommerce/pull/62242)
+* Add - Add order notes for fulfillment lifecycle events (created, updated, deleted, status changes) to improve order history tracking and auditability. [#63516](https://github.com/woocommerce/woocommerce/pull/63516)
+* Add - Add reset notification email content action to the email editor, allowing users to reset email content to the original plugin-distributed state. [#63558](https://github.com/woocommerce/woocommerce/pull/63558)
+* Add - Add server-side auto-selection of email template when template_id is omitted in send_email endpoint. [#63556](https://github.com/woocommerce/woocommerce/pull/63556)
+* Add - Add ShipStation and Packlink as shipping extension options in the Core Profiler for supported countries (ShipStation: CA, DE, GB, AU, NZ; Packlink: FR, ES, IT, NL, AT, BE). [#63385](https://github.com/woocommerce/woocommerce/pull/63385)
+* Add - Add ShipStation and Packlink PRO as recommended shipping solutions on the Shipping settings page, filtered by store country. [#63383](https://github.com/woocommerce/woocommerce/pull/63383)
+* Add - Add smaller image options for product images in srcset to reduce bandwidth/load time on cart/checkout pages [#63731](https://github.com/woocommerce/woocommerce/pull/63731)
+* Add - Add support for notice data in recommended payment methods, enabling payment gateways to surface requirement warnings during onboarding. [#63854](https://github.com/woocommerce/woocommerce/pull/63854)
+* Add - Add telemetry for fulfillment feature adoption and usage tracking [#63820](https://github.com/woocommerce/woocommerce/pull/63820)
+* Add - Add unified shipping partner Tracks events (impression, click, install, activate) in the Core Profiler onboarding flow. [#63439](https://github.com/woocommerce/woocommerce/pull/63439)
+* Add - Add woocommerce_delete_expired_draft_orders_batch_size filter to make draft order cleanup batch size configurable [#63740](https://github.com/woocommerce/woocommerce/pull/63740)
+* Add - Add `woocommerce_email_block_template_html` filter to allow customization of email block template HTML before it is saved. [#63607](https://github.com/woocommerce/woocommerce/pull/63607)
+* Add - Apply `woocommerce_variation_option_name` filter in ProductItemTrait, allowing third-parties to optionally add relevant information to variation option names. [#63673](https://github.com/woocommerce/woocommerce/pull/63673)
+* Add - Exclude WCPay test orders from analytics data to prevent test transactions from polluting reports. [#63550](https://github.com/woocommerce/woocommerce/pull/63550)
+* Add - Show preview products and placeholder cards in the email editor for product collection blocks when the store has no products [#63612](https://github.com/woocommerce/woocommerce/pull/63612)
+* Add - Add myPOS and Evergreen Payments as official payment partners. [#64097](https://github.com/woocommerce/woocommerce/pull/64097)
+* Update - Accept top-level enabled, title, description, and order fields in the v4 payment gateway settings PUT endpoint. This aligns the PUT shape with the GET response, enabling @wordpress/core-data to track dirty state correctly. The values parameter remains supported for backwards compatibility. [#63714](https://github.com/woocommerce/woocommerce/pull/63714)
+* Update - Add weight and dimensions to Store API ProductSchema / Products endpoint. [#63334](https://github.com/woocommerce/woocommerce/pull/63334)
+* Update - Change Cache Product Objects feature default plugin compatibility to COMPATIBLE so extensions that haven't explicitly declared compatibility are no longer shown as incompatible. [#63243](https://github.com/woocommerce/woocommerce/pull/63243)
+* Update - Disable HPOS sync-on-read by default and add admin notice for affected sites. [#63175](https://github.com/woocommerce/woocommerce/pull/63175)
+* Update - Extract "get_primed_visible_children()" helper in "WC_Product_Grouped". [#63284](https://github.com/woocommerce/woocommerce/pull/63284)
+* Update - Make checkout item quantity round and inherit theme colours [#63007](https://github.com/woocommerce/woocommerce/pull/63007)
+* Update - Refactor cart, cart-link, mini-cart and checkout blocks to use isPreviewMode flag [#63313](https://github.com/woocommerce/woocommerce/pull/63313)
+* Update - Register fulfillments data store via WC_Data_Store for extensibility, allowing extensions to provide custom data store implementations. [#63485](https://github.com/woocommerce/woocommerce/pull/63485)
+* Update - Replace Facebook and Meta Ads/Kliken with Reddit and Snapchat in the Marketing Overview channels list, reorder the sales channels, and update the Google for WooCommerce description [#63416](https://github.com/woocommerce/woocommerce/pull/63416)
+* Update - Standardize closing support text across all customer-facing block email templates. [#63463](https://github.com/woocommerce/woocommerce/pull/63463)
+* Update - Textarea inputs on Checkout will now have the correct placeholder colour on light themes [#63539](https://github.com/woocommerce/woocommerce/pull/63539)
+* Update - Update 'on hold' email copy in block email editor to be more neutral for services and virtual products. [#63496](https://github.com/woocommerce/woocommerce/pull/63496)
+* Update - Admin styling adjustments with WordPress 7.0 [#64027](https://github.com/woocommerce/woocommerce/pull/64027)
+* Dev - Convert e2e-pw API test files to TypeScript. [#63314](https://github.com/woocommerce/woocommerce/pull/63314)
+* Dev - Convert e2e-pw utils to TypeScript. [#63318](https://github.com/woocommerce/woocommerce/pull/63318)
+* Dev - Convert fixtures and utils of the e2e-pw directory to TypeScript. [#63315](https://github.com/woocommerce/woocommerce/pull/63315)
+* Dev - Introduce a new performance skill focused on effectively using caching priming APIs. [#63706](https://github.com/woocommerce/woocommerce/pull/63706)
+* Dev - Introduce end-to-end tests for PayPal Standard (enablement flow). [#63068](https://github.com/woocommerce/woocommerce/pull/63068)
+* Dev - Introduce end-to-end tests for PayPal Standard (Jetpack onboarding flow). [#62982](https://github.com/woocommerce/woocommerce/pull/62982)
+* Dev - Migrate dinero.js from v1.9.1 to v2.0.0 in WooCommerce Blocks. [#63543](https://github.com/woocommerce/woocommerce/pull/63543)
+* Dev - Consolidate get_shipping_providers and get_shipping_providers_object into a single method that always returns AbstractShippingProvider instances. [#64102](https://github.com/woocommerce/woocommerce/pull/64102)
+* Tweak - Add data-cart-item-key attribute to cart line item row block. [#63090](https://github.com/woocommerce/woocommerce/pull/63090)
+* Tweak - Fulfillment UI/UX minor tweaks: clickable card headers, reduced padding, copy confirmation, provider label resolution, and tracking URL auto-update. [#63899](https://github.com/woocommerce/woocommerce/pull/63899)
+* Tweak - Refine order notification email styling: adjust order summary layout and item alignment [#63306](https://github.com/woocommerce/woocommerce/pull/63306)
+* Performance - Added the missing shipping tables indexes to improve the performance of cart and checkout workflows for complex shipping configurations. [#63674](https://github.com/woocommerce/woocommerce/pull/63674)
+* Performance - Blocks: pin the number of SQL queries required to retrieve block templates from the database (2 per template type). [#63399](https://github.com/woocommerce/woocommerce/pull/63399)
+* Performance - Cache Store API products last modified timestamp in the object cache to avoid a database query on every request. [#63228](https://github.com/woocommerce/woocommerce/pull/63228)
+* Performance - Customers: guarded updates of the last activity timestamp. [#63355](https://github.com/woocommerce/woocommerce/pull/63355)
+* Performance - Performance: reduced the number of SQL queries required to persist a draft order during checkout (with CoGS enabled). [#63372](https://github.com/woocommerce/woocommerce/pull/63372)
+* Performance - Performance: reduced the number of SQL queries required to persist a draft order during checkout. [#63258](https://github.com/woocommerce/woocommerce/pull/63258)
+* Performance - Prime order item meta caches during HPOS order queries to eliminate N+1 queries in REST API serialization. [#63440](https://github.com/woocommerce/woocommerce/pull/63440)
+* Performance - Prime product caches and add targetHints to REST API v4 orders endpoint to reduce N+1 queries during serialization. [#63654](https://github.com/woocommerce/woocommerce/pull/63654)
+* Performance - Products: reduced the number of SQL queries required to populate cart data in StoreApi. [#63319](https://github.com/woocommerce/woocommerce/pull/63319)
+* Performance - Reduce SQL queries on legacy product grid blocks, Product Gallery, and Product Button by adding missing "_prime_post_caches()" calls to batch-load post data. [#63750](https://github.com/woocommerce/woocommerce/pull/63750)
+* Performance - Reduce the number of SQL queries on the linked products meta box and sales by product report by adding missing cache priming. [#63737](https://github.com/woocommerce/woocommerce/pull/63737)
+* Performance - Remove unnecessary `calculate_totals()` call from `DELETE /wc/store/v1/cart/coupons`. The result was never used since the endpoint returns an empty response body. [#63404](https://github.com/woocommerce/woocommerce/pull/63404)
+* Enhancement - Add optional dropdown navigation to the Customer Account block, displaying account menu links in a dropdown menu when enabled. [#63301](https://github.com/woocommerce/woocommerce/pull/63301)
+* Enhancement - Improve fulfillment drawer accessibility: unique ARIA IDs, fix redundant aria-labels, eliminate double screen reader announcements, and replace setTimeout-based focus management with requestAnimationFrame [#63876](https://github.com/woocommerce/woocommerce/pull/63876)
+* Enhancement - Integrate the payment gateway admin notification into the WooCommerce email system with full support for email styling, customizable settings, and block email editor. [#63249](https://github.com/woocommerce/woocommerce/pull/63249)
+* Enhancement - Make email header image/logo clickable with a link to the store homepage in classic email templates. Adds `woocommerce_email_header_image_url` filter for customization. [#63559](https://github.com/woocommerce/woocommerce/pull/63559)
+* Enhancement - Suppress standard transactional emails and auto-trigger POS email templates for orders paid at POS, regardless of where the order was created. [#63322](https://github.com/woocommerce/woocommerce/pull/63322)
+* Enhancement - Update cart, checkout, and mini-cart block item spacing to improve clarity. [#63241](https://github.com/woocommerce/woocommerce/pull/63241)
+* Enhancement - Use the configured email subject from WC_Email settings when sending preview emails instead of the raw post title. [#63504](https://github.com/woocommerce/woocommerce/pull/63504)
+
+
= 10.6.2 2026-03-31 =
**WooCommerce**