== 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** * Fix - Fix a small punctuation issue at the LYS page. [#63873](https://github.com/woocommerce/woocommerce/pull/63873) * Fix - Fix extra padding on analytics tables, dashboard charts, leaderboards, and store alerts on WordPress 7.0 by setting Card/CardBody size to "none". [#63827](https://github.com/woocommerce/woocommerce/pull/63827) * Fix - Fix order meta box action buttons stacking poorly on smaller viewports (~1200px) with WordPress 7.0. [#63836](https://github.com/woocommerce/woocommerce/pull/63836) * Fix - Fix styling issues with WP 7.0 [#63825](https://github.com/woocommerce/woocommerce/pull/63825) * Fix - Fix variable products not working when name is different than the slug [#63771](https://github.com/woocommerce/woocommerce/pull/63771) * Fix - Prevent Activity panel abbreviated notification SlotFill from triggering repeated re-renders by creating the slot at module scope. [#63829](https://github.com/woocommerce/woocommerce/pull/63829) * Tweak - Remove unused code from the Product Collection cart-contents handler. [#63927](https://github.com/woocommerce/woocommerce/pull/63927) = 10.6.1 2026-03-12 = **WooCommerce** * Fix - Add to Cart: fix validation of attributes with multi-word names [#63647](https://github.com/woocommerce/woocommerce/pull/63647) * Fix - Place newly installed payment gateways above offline payment methods instead of at the bottom of the list. [#63648](https://github.com/woocommerce/woocommerce/pull/63648) * Fix - Show shipping package title as "Shipment" instead of "Shipment 1" [#63649](https://github.com/woocommerce/woocommerce/pull/63649) = 10.6.0 2026-03-10 = **WooCommerce** * Fix - Accessibility improvement for order summary in Checkout block [#62453](https://github.com/woocommerce/woocommerce/pull/62453) * Fix - Add Cache-Control headers to cart API responses to prevent browser caching [#62653](https://github.com/woocommerce/woocommerce/pull/62653) * Fix - Add to Cart + Options: add default margin between inner elements [#63220](https://github.com/woocommerce/woocommerce/pull/63220) * Fix - Adjust classes used for menu notification bubbles. [#62799](https://github.com/woocommerce/woocommerce/pull/62799) * Fix - Allow the Products onboarding task to revert to incomplete when all products are removed [#63239](https://github.com/woocommerce/woocommerce/pull/63239) * Fix - Don't disable submit button in meta boxes with empty textarea fields [#62590](https://github.com/woocommerce/woocommerce/pull/62590) * Fix - Ensure Store API cart sessions restore correctly for rest_route requests with Cart-Token. [#62973](https://github.com/woocommerce/woocommerce/pull/62973) * Fix - fix: ensure address autocomplete is persisted on both billing and shipping forms [#62796](https://github.com/woocommerce/woocommerce/pull/62796) * Fix - Fix: get order(s) REST API endpoints failing when invalid coupon metadata is stored [#63010](https://github.com/woocommerce/woocommerce/pull/63010) * Fix - Fix: Round percentage-based flat rate shipping fee to display decimals to prevent $0.01 rounding errors. [#62722](https://github.com/woocommerce/woocommerce/pull/62722) * Fix - Fix a bug where error notices don't show up in the Mini Cart on first load. [#62315](https://github.com/woocommerce/woocommerce/pull/62315) * Fix - Fix an a11y issue when only one country is available, ensure the country is still rendered as an input field, but retain existing styling. [#61835](https://github.com/woocommerce/woocommerce/pull/61835) * Fix - Fix auto-cancellation for unpaid checkout block orders [#58262](https://github.com/woocommerce/woocommerce/pull/58262) * Fix - Fix cart quantity selector briefly reverting to previous value when changing quantity rapidly. [#62788](https://github.com/woocommerce/woocommerce/pull/62788) * Fix - Fix dashboard showing $0 revenue when browser timezone differs from store timezone [#62872](https://github.com/woocommerce/woocommerce/pull/62872) * Fix - Fix duplicate breadcrumb entries on My Account endpoint pages when using the Breadcrumb block in global templates. [#62793](https://github.com/woocommerce/woocommerce/pull/62793) * Fix - Fixed case-sensitive email verification issue that prevented guests from accessing order payment pages when entering their email address in a different case than stored in the order. [#62974](https://github.com/woocommerce/woocommerce/pull/62974) * Fix - Fix email preview to use the configured WooCommerce "From" email address and name instead of WordPress defaults. [#62936](https://github.com/woocommerce/woocommerce/pull/62936) * Fix - Fix empty email subject for "Partially refunded order" email in the block email editor by properly retrieving the subject_partial option. [#63047](https://github.com/woocommerce/woocommerce/pull/63047) * Fix - Fixes a bug where updating the stock count from the dashboard for a variable product changed its product type back to a simple product and removed all variations. [#63250](https://github.com/woocommerce/woocommerce/pull/63250) * Fix - Fixes a bug with analytics stock totals that included trashed products [#63160](https://github.com/woocommerce/woocommerce/pull/63160) * Fix - Fixes an issue where Analytics > Categories would crash if a product category had a `parent` that no longer exists in the taxonomy tables due to manual deletion outside the admin UI. [#58312](https://github.com/woocommerce/woocommerce/pull/58312) * Fix - Fix get_site_user_meta method to respect arguments passed to it. [#61926](https://github.com/woocommerce/woocommerce/pull/61926) * Fix - Fix Local Pickup not rendering in Block Checkout when third-party plugins call calculate_totals() early with shortcode cart context. [#62873](https://github.com/woocommerce/woocommerce/pull/62873) * Fix - Fix missing closing HTML tags for shipping zones examples [#60386](https://github.com/woocommerce/woocommerce/pull/60386) * Fix - Fix PHPStan errors in wc_get_product_attachment_props() by adding is_array() checks before accessing array offsets. [#62919](https://github.com/woocommerce/woocommerce/pull/62919) * Fix - Fix PHP warnings when product categories have non-sequential array keys due to plugin filters. [#63263](https://github.com/woocommerce/woocommerce/pull/63263) * Fix - Fix POS catalog cleanup job to schedule deletion for each generated file instead of only the first one. [#63107](https://github.com/woocommerce/woocommerce/pull/63107) * Fix - Fix Store API order endpoint returning empty values for "Any" variation attributes. Retrieves customer selections from order metadata to match cart endpoint behavior. [#62476](https://github.com/woocommerce/woocommerce/pull/62476) * Fix - Fix WC_Geolocation::geolocate_ip() doesn't use fallback if MaxMind integration is disabled. [#62660](https://github.com/woocommerce/woocommerce/pull/62660) * Fix - Implement request batching/queueing for cart operations to fix multiple issues with state resolution in the cart UI. [#62766](https://github.com/woocommerce/woocommerce/pull/62766) * Fix - Improve order editor locking support for sub-types (like subscriptions) when using HPOS. [#62671](https://github.com/woocommerce/woocommerce/pull/62671) * Fix - Prevent fatal errors when WooCommerce.com Helper API transients contain corrupted data. [#62865](https://github.com/woocommerce/woocommerce/pull/62865) * Fix - Prevent undefined index notices when connecting admin pages without an `id`. [#61904](https://github.com/woocommerce/woocommerce/pull/61904) * Fix - Product Collection: implement support for Taxonomy filters on posts and pages [#62860](https://github.com/woocommerce/woocommerce/pull/62860) * Fix - Product Collection: prevent warnings if block is saved in a picker state [#63032](https://github.com/woocommerce/woocommerce/pull/63032) * Fix - Show variable product price in schema based on woocommerce_tax_display_shop setting so the visual prices matches the schema price [#61662](https://github.com/woocommerce/woocommerce/pull/61662) * Fix - Updated offerCount product schema value to only count purchasable product variations, excluding those without price or stock. [#61649](https://github.com/woocommerce/woocommerce/pull/61649) * Fix - Update email settings actions menu: remove divider between Edit and Send test email, change terminology from Enable/Disable to Activate/Deactivate email. [#63001](https://github.com/woocommerce/woocommerce/pull/63001) * Fix - Update pattern names to follow naming convention [#62700](https://github.com/woocommerce/woocommerce/pull/62700) * Fix - Use atomic locking to prevent WC_Install::install() from running concurrently. [#63100](https://github.com/woocommerce/woocommerce/pull/63100) * Fix - Use existing "Save %s" translation for mini cart discount badge to ensure correct translation for discount savings. [#62647](https://github.com/woocommerce/woocommerce/pull/62647) * Fix - Validate page IDs returned by the `woocommerce_navigation_connect_page_options` filter before registering them [#62925](https://github.com/woocommerce/woocommerce/pull/62925) * Fix - Verify checkout page exists before adding customizer styles. [#61847](https://github.com/woocommerce/woocommerce/pull/61847) * Fix - Fix Store API batch endpoint path validation to prevent routing requests to non-Store-API endpoints. [#63512](https://github.com/woocommerce/woocommerce/pull/63512) * Fix - Fix - Handle PayPal Standard duplicate invoice ID errors by updating the invoice ID in the PayPal order and retrying payment capture. [#63540](https://github.com/woocommerce/woocommerce/pull/63540) * Fix - Fix Product Gallery dialog page refresh on WordPress 7.0 by using withSyncEvent for the openDialog action. [#63571](https://github.com/woocommerce/woocommerce/pull/63571) * Fix - Prevent repeated PayPal Standard order details API requests when the first request returns 404. [#63561](https://github.com/woocommerce/woocommerce/pull/63561) * Fix - Validate shipping country against PayPal’s supported countries instead of WooCommerce’s full country list to avoid invalid country codes in PayPal requests. [#63548](https://github.com/woocommerce/woocommerce/pull/63548) * Fix - Prevent stored XSS on order notes added via REST API [#63616](https://github.com/woocommerce/woocommerce/pull/63616) * Add - Add "Products by Brand" collection to Product Collection block. [#62817](https://github.com/woocommerce/woocommerce/pull/62817) * Add - Add caching for the taxes REST API endpoints [#62931](https://github.com/woocommerce/woocommerce/pull/62931) * Add - Add dedicated email class and block template for partially refunded orders in the block email editor to ensure consistent visual styling across all transactional emails. [#62895](https://github.com/woocommerce/woocommerce/pull/62895) * Add - Add filters `woocommerce_emails_api_settings_schema_validate_and_sanitize_settings` and `woocommerce_emails_settings_schema_validate_and_sanitize_settings` to allow customization of email settings validation in the REST API. [#63170](https://github.com/woocommerce/woocommerce/pull/63170) * Add - Add Reddit Ads to core profiler onboarding wizard [#62932](https://github.com/woocommerce/woocommerce/pull/62932) * Add - Adds Marketplace CTAs to some of the settings pages. [#63112](https://github.com/woocommerce/woocommerce/pull/63112) * Add - Add Snapchat Ads to core profiler onboarding wizard [#62916](https://github.com/woocommerce/woocommerce/pull/62916) * Add - Add support for array of slugs in REST API terms controller slug parameter. The slug parameter now accepts both a single string and an array of strings, matching WordPress core WP_Term_Query capabilities. [#60565](https://github.com/woocommerce/woocommerce/pull/60565) * Add - Add `woocommerce_shipping_prices_include_tax` filter to support tax-inclusive shipping prices [#62944](https://github.com/woocommerce/woocommerce/pull/62944) * Add - Bind some Cart/Checkout UI elements to block themes' "extra-small" font size for consistency. [#62866](https://github.com/woocommerce/woocommerce/pull/62866) * Add - Breadcrumbs: Filter final list of crumbs in core block [#62770](https://github.com/woocommerce/woocommerce/pull/62770) * Add - Handpicked Products: journey starts with product picker [#62989](https://github.com/woocommerce/woocommerce/pull/62989) * Add - Modified the Add to Cart + Options block to auto-select attribute fields, and display attributes in conflict [#61389](https://github.com/woocommerce/woocommerce/pull/61389) * Add - Product Reviews block: add support for replies [#63161](https://github.com/woocommerce/woocommerce/pull/63161) * Add - Products by Brand: journey starts with choosing initial Brands [#63023](https://github.com/woocommerce/woocommerce/pull/63023) * Add - Products by Tag/Category: journey starts with terms picker [#62993](https://github.com/woocommerce/woocommerce/pull/62993) * Add - Taxonomy Filters: Add option to sort terms by menu_order [#62940](https://github.com/woocommerce/woocommerce/pull/62940) * Update - Add caching for the continents REST API endpoints [#62856](https://github.com/woocommerce/woocommerce/pull/62856) * Update - Add caching for the countries REST API endpoints [#62834](https://github.com/woocommerce/woocommerce/pull/62834) * Update - Add caching for the currencies REST API endpoints [#62816](https://github.com/woocommerce/woocommerce/pull/62816) * Update - Add document for `woocommerce_sale_badge_text` filter [#62896](https://github.com/woocommerce/woocommerce/pull/62896) * Update - Add global identifier (GTIN/UPC/EAN/ISBN) support to admin product search. [#60052](https://github.com/woocommerce/woocommerce/pull/60052) * Update - Add migration UI and conversion logic to upgrade WooCommerce Accordion blocks to the WordPress core Accordion block in WP 6.9+. [#62787](https://github.com/woocommerce/woocommerce/pull/62787) * Update - Add missing relevant hooks info for products and currencies REST API endpoints caching [#62859](https://github.com/woocommerce/woocommerce/pull/62859) * Update - Add relevant version strings support to the RestApiCache trait [#62961](https://github.com/woocommerce/woocommerce/pull/62961) * Update - Add support for relevant files to the RestApiCache trait [#62768](https://github.com/woocommerce/woocommerce/pull/62768) * Update - Add the OrdersVersionStringInvalidator class [#63079](https://github.com/woocommerce/woocommerce/pull/63079) * Update - Change the "discount" colour in Cart/Checkout block totals to be more accessible (now uses the same colour as the theme) [#62971](https://github.com/woocommerce/woocommerce/pull/62971) * Update - Enable customer cancelled order email notification by default for new installations [#63094](https://github.com/woocommerce/woocommerce/pull/63094) * Update - feat: allow payment methods to render a custom "Place order" button on block-based checkout. [#62509](https://github.com/woocommerce/woocommerce/pull/62509) * Update - feat: allow payment methods to render a custom "Place order" button on shortcode-based checkout. [#62509](https://github.com/woocommerce/woocommerce/pull/62509) * Update - Improve Product Collection block in email editor: rename "Products per page" to "Number of products" and add support for two-column layout. [#63122](https://github.com/woocommerce/woocommerce/pull/63122) * Update - Item data and variation data now show inline on the Cart and Checkout blocks [#62897](https://github.com/woocommerce/woocommerce/pull/62897) * Update - Make Product Gallery and Add to Cart + Options blocks the default inside the Product block and when updating from the Classic Template block [#60872](https://github.com/woocommerce/woocommerce/pull/60872) * Update - Make VersionStringGenerator and RestApiCache more robust against bad-behaved object caches [#63259](https://github.com/woocommerce/woocommerce/pull/63259) * Update - Move add note on the order details to the top to be close to the most recent note [#61375](https://github.com/woocommerce/woocommerce/pull/61375) * Update - Move the "Save $X" badges in Cart/Mini-cart alongside the individual item prices to save vertical space. [#63012](https://github.com/woocommerce/woocommerce/pull/63012) * Update - Position the remove button to the right of the quantity picker and use trash icon instead of text in Cart block [#62965](https://github.com/woocommerce/woocommerce/pull/62965) * Update - Prevent errors showing on empty checkout fields until the form is submitted. [#62689](https://github.com/woocommerce/woocommerce/pull/62689) * Update - Register TemplateSelection via EmailActionsFill for extensibility [#63277](https://github.com/woocommerce/woocommerce/pull/63277) * Update - Remove heading block from Product Collection when used in the email editor. [#63180](https://github.com/woocommerce/woocommerce/pull/63180) * Update - Removes PanelBody and uses ToolsPanel for Button, Image and Title blocks [#62712](https://github.com/woocommerce/woocommerce/pull/62712) * Update - Removes PanelBody and uses ToolsPanel for Catalog Sorting Block [#62699](https://github.com/woocommerce/woocommerce/pull/62699) * Update - Removes PanelBody and uses ToolsPanel for Order Confirmation Block [#62698](https://github.com/woocommerce/woocommerce/pull/62698) * Update - Removes PanelBody and uses ToolsPanel for Product Filters blocks [#62723](https://github.com/woocommerce/woocommerce/pull/62723) * Update - Removes PanelBody and uses ToolsPanel for Product Gallery block [#62724](https://github.com/woocommerce/woocommerce/pull/62724) * Update - Removes PanelBody and uses ToolsPanel in Product Category Title block [#62904](https://github.com/woocommerce/woocommerce/pull/62904) * Update - Removes PanelBody and uses ToolsPanel in Product Specifications block [#62903](https://github.com/woocommerce/woocommerce/pull/62903) * Update - Update default email template footer styling and center-align footer text across all block email templates. [#63011](https://github.com/woocommerce/woocommerce/pull/63011) * Update - Update downloadable file URL placeholder from 'http://' to 'https://'. [#63081](https://github.com/woocommerce/woocommerce/pull/63081) * Update - Update inputs and border colours in Cart/Checkout blocks to match the theme's text colour. [#62710](https://github.com/woocommerce/woocommerce/pull/62710) * Update - Update the `cancel_url` of PayPal Standard to the checkout page URL. [#63050](https://github.com/woocommerce/woocommerce/pull/63050) * Update - Added hooks for user triggered cart updates. [#63575](https://github.com/woocommerce/woocommerce/pull/63575) * Dev - Add experimental wc_interactivity_api_load_product API for hydrating product state for iAPI powered blocks. [#62167](https://github.com/woocommerce/woocommerce/pull/62167) * Dev - Add missing @return PHPDoc annotations to 5 files, reducing PHPStan baseline by 149 errors (batch 3). [#63149](https://github.com/woocommerce/woocommerce/pull/63149) * Dev - Add missing @return PHPDoc annotations to 6 files, reducing PHPStan baseline by 152 errors (batch 4). [#63173](https://github.com/woocommerce/woocommerce/pull/63173) * Dev - Add missing @return PHPDoc annotations to 6 files, reducing PHPStan baseline by 278 errors (batch 2). [#63148](https://github.com/woocommerce/woocommerce/pull/63148) * Dev - Add missing @return PHPDoc annotations to reduce PHPStan baseline by 374 errors. [#63147](https://github.com/woocommerce/woocommerce/pull/63147) * Dev - Add PR template instructions to CLAUDE.md for AI-assisted development. [#62878](https://github.com/woocommerce/woocommerce/pull/62878) * Dev - Convert e2e-utils-playwright package to TypeScript. [#63102](https://github.com/woocommerce/woocommerce/pull/63102) * Dev - Convert fifth set of e2e-pw test files to TypeScript. [#63214](https://github.com/woocommerce/woocommerce/pull/63214) * Dev - Convert first set of e2e-pw tests to TypeScript. [#63190](https://github.com/woocommerce/woocommerce/pull/63190) * Dev - Convert fourth set of e2e-pw test file to TypeScript. [#63213](https://github.com/woocommerce/woocommerce/pull/63213) * Dev - Convert second set of e2e-pw test files to TypeScript. [#63198](https://github.com/woocommerce/woocommerce/pull/63198) * Dev - Convert third set of e2e-pw tests to TypeScript. [#63212](https://github.com/woocommerce/woocommerce/pull/63212) * Dev - Fix PHPStan baseline after email tracker endpoint removal [#63134](https://github.com/woocommerce/woocommerce/pull/63134) * Dev - Interactivity API Mini Cart: utilize data-wp-on-document directive to handle add/remove cart events. [#62673](https://github.com/woocommerce/woocommerce/pull/62673) * Dev - Mention internal code in more places in the documentation [#63108](https://github.com/woocommerce/woocommerce/pull/63108) * Dev - Only apply no-store header to GET request of Mini Cart store. [#62615](https://github.com/woocommerce/woocommerce/pull/62615) * Dev - Remove fail-safe WooPayments onboarding URLs. [#63247](https://github.com/woocommerce/woocommerce/pull/63247) * Dev - Remove orphaned email tracker REST endpoint and deprecate track_opened_email method (follow-up to #55660) [#63071](https://github.com/woocommerce/woocommerce/pull/63071) * Dev - Replace custom `needsRefreshForInteractivityAPI` with native `clientNavigationDisabled` from WordPress core's Interactivity Router. [#63230](https://github.com/woocommerce/woocommerce/pull/63230) * Dev - Replace internal wiki links with updated developer docs links [#63251](https://github.com/woocommerce/woocommerce/pull/63251) * Dev - Scaffold support files for TypeScript conversion of e2e-pw tests. [#63188](https://github.com/woocommerce/woocommerce/pull/63188) * Dev - Update Add to Cart with Options to use server hydrated product state. [#62880](https://github.com/woocommerce/woocommerce/pull/62880) * Dev - Adjust tests for WP 7.0-beta.1 compatibility [#63427](https://github.com/woocommerce/woocommerce/pull/63427) * Dev - E2E tests adjustments to WP 7.0 [#63432](https://github.com/woocommerce/woocommerce/pull/63432) * Tweak - Add instanceof/is_callable checks to the `clear` method of `WC_Logger` [#62637](https://github.com/woocommerce/woocommerce/pull/62637) * Tweak - Changed subscription status from "Cancelled" to "Auto-renew: off" for non-auto-renewing subscriptions in My Subscriptions. [#62772](https://github.com/woocommerce/woocommerce/pull/62772) * Tweak - Fix Kurdistan state name formatting in Iranian provinces to use parentheses like all other states [#60337](https://github.com/woocommerce/woocommerce/pull/60337) * Tweak - Fix N-Genius Online payment extension suggestion name and description. [#63245](https://github.com/woocommerce/woocommerce/pull/63245) * Tweak - Limit `/products` and `/products/reviews` StoreAPI endpoints to 100 results per page. [#61755](https://github.com/woocommerce/woocommerce/pull/61755) * Tweak - Move `handleSubmit` inside `addToCart` in `add-to-cart-with-options` store. [#63105](https://github.com/woocommerce/woocommerce/pull/63105) * Tweak - Refactor `getQuantityConstraints` and `normalizeProductFromStore` in iAPI cart store [#63033](https://github.com/woocommerce/woocommerce/pull/63033) * Tweak - Replace admin bar height with css variable [#62608](https://github.com/woocommerce/woocommerce/pull/62608) * Tweak - Stop autoloading `woocommerce_status_log_db_sources` option [#62806](https://github.com/woocommerce/woocommerce/pull/62806) * Tweak - Use wp_is_serving_rest_request() in MCPAdapterProvider instead of contants. [#62972](https://github.com/woocommerce/woocommerce/pull/62972) * Tweak - Update PayPal Standard logo on classic checkout. [#63530](https://github.com/woocommerce/woocommerce/pull/63530) * Performance - Admin: Improved the performance of approved comment counting and reduced the number of SQL queries on the product reviews page. [#62805](https://github.com/woocommerce/woocommerce/pull/62805) * Performance - Admin: optimized SQL fetching dates for month filter on orders page [#63039](https://github.com/woocommerce/woocommerce/pull/63039) * Performance - Avoid extra queries in group product pages by priming the post cache. [#63267](https://github.com/woocommerce/woocommerce/pull/63267) * Performance - Customer data store: Optimize SQL queries to retrieve user-specific order statistics, including order count, last order, and total amount spent. [#62874](https://github.com/woocommerce/woocommerce/pull/62874) * Performance - Defer has_products() check to shutdown hook for bulk delete/trash products. [#63261](https://github.com/woocommerce/woocommerce/pull/63261) * Performance - Improved the performance of the product attributes lookup table synchronization (insert and delete operations). [#62748](https://github.com/woocommerce/woocommerce/pull/62748) * Performance - Integrate the `akismet_excluded_comment_types` hook from `Akismet::get_user_comments_approved()` to ensure order notes are excluded from the count. [#62913](https://github.com/woocommerce/woocommerce/pull/62913) * Performance - Orders: optimized a slow SQL query executed on the order confirmation page, checking for the existence of downloadable products. [#63043](https://github.com/woocommerce/woocommerce/pull/63043) * Performance - Performance: optimize attribute meta migration for variable products, addressing edge cases found in older setups. [#62966](https://github.com/woocommerce/woocommerce/pull/62966) * Performance - Performance: reintroduced the optimized and hardened version of the recent reviews widget. [#63224](https://github.com/woocommerce/woocommerce/pull/63224) * Performance - Performance: separate the transient deletion of legacy reports from the order cache refresh and execute these operations asynchronously. [#63118](https://github.com/woocommerce/woocommerce/pull/63118) * Performance - Prevent duplicate table names from accumulating in $wpdb->tables during multisite blog switching. [#60174](https://github.com/woocommerce/woocommerce/pull/60174) * Performance - Products: consolidate cache priming calls within product data stores. [#62999](https://github.com/woocommerce/woocommerce/pull/62999) * Performance - Products: defer publishing the 'product_add_publish' Tracks-event when importing products. [#62888](https://github.com/woocommerce/woocommerce/pull/62888) * Performance - Products: performance tweaks for data store SQLs setting stock and total sales. [#62930](https://github.com/woocommerce/woocommerce/pull/62930) * Performance - Products: reduced the number of SQL queries required to display upsell and related products on the product page. [#63006](https://github.com/woocommerce/woocommerce/pull/63006) * Performance - Products: reduce the number of SQL queries needed to construct product objects. [#62998](https://github.com/woocommerce/woocommerce/pull/62998) * Performance - Skip category term processing in product permalinks when structure doesn't include category placeholders [#63121](https://github.com/woocommerce/woocommerce/pull/63121) * Performance - The number of SQL queries on the orders pages (admin and my account) has been reduced to improve performance. [#62820](https://github.com/woocommerce/woocommerce/pull/62820) * Performance - The number of SQL queries required to fetch settings on admin pages has been reduced to improve performance. [#62853](https://github.com/woocommerce/woocommerce/pull/62853) * Performance - Use variation objects instead of arrays in ProductGallery block to avoid unnecessary data processing [#62792](https://github.com/woocommerce/woocommerce/pull/62792) * Performance - Use variation objects instead of arrays in ProductPrice block to avoid unnecessary data processing [#62797](https://github.com/woocommerce/woocommerce/pull/62797) * Performance - Use variation objects instead of arrays in VariationSelectorAttribute block to avoid unnecessary data processing [#62795](https://github.com/woocommerce/woocommerce/pull/62795) * Enhancement - Accessibility fixes for the Payment Settings page [#62841](https://github.com/woocommerce/woocommerce/pull/62841) * Enhancement - Add filter for modifying product attributes/downloads before reading & additional `extra_data` option [#62572](https://github.com/woocommerce/woocommerce/pull/62572) * Enhancement - Add lazy loading attribute to product image block. Introduce a new filter `woocommerce_product_image_loading_attr` to modify the loading attribute. [#62829](https://github.com/woocommerce/woocommerce/pull/62829) * Enhancement - Display a notice if Helper response from WooCommerce.com indicates the connection might have been removed on that end. [#62864](https://github.com/woocommerce/woocommerce/pull/62864) * Enhancement - Enable WC page header on reviews page [#63041](https://github.com/woocommerce/woocommerce/pull/63041) * Enhancement - Introduced a new filter `woocommerce_product_stock_default_amount` to allow change of the default stock amount. [#62678](https://github.com/woocommerce/woocommerce/pull/62678) * Enhancement - Introduce `cartItemScreenReaderPrice` checkout filter. [#62080](https://github.com/woocommerce/woocommerce/pull/62080) * Enhancement - Product Collection: improve taxonomies filters in inspector controls [#63025](https://github.com/woocommerce/woocommerce/pull/63025) * Enhancement - Updated Variation Selector Attribute Options block settings UI for improved clarity [#63038](https://github.com/woocommerce/woocommerce/pull/63038) * Enhancement - Update woocommerce_email_editor_integration_personalizer_context_data filter to allow overwrite values from core [#63231](https://github.com/woocommerce/woocommerce/pull/63231) * Enhancement - Use vanilla JS to replace order_notes after ajax updates [#60913](https://github.com/woocommerce/woocommerce/pull/60913) = 10.5.3 2026-03-02 = **WooCommerce** * Fix - Fix Store API batch endpoint path validation to prevent routing requests to non-Store-API endpoints. [#63501](https://github.com/woocommerce/woocommerce/pull/63501) = 10.5.2 2026-02-13 = **WooCommerce** * Fix - Fix variable products add-to-cart button appearing disabled in some stores [#63262](https://github.com/woocommerce/woocommerce/pull/63262) = 10.5.1 2026-02-10 = **WooCommerce** * Fix - Admin: revert to the previous version of the recent reviews widget, as errors have been reported in some setups. [#63195](https://github.com/woocommerce/woocommerce/pull/63195) * Fix - Fix issue that caused the shop page not to show up in Divi under certain circumstances [#63205](https://github.com/woocommerce/woocommerce/pull/63205) * Fix - Only disable add-to-cart button in variable products when wc-add-to-cart-variation is enqueued [#63194](https://github.com/woocommerce/woocommerce/pull/63194) * Enhancement - Add additional validation in the PayPal Standard shipping callback method. [#63193](https://github.com/woocommerce/woocommerce/pull/63193) = 10.5.0 2026-02-04 = **WooCommerce** * Fix - Add conditional checks to prevent the WooCommerce Accordion block from appearing in the block inserter on WordPress 6.9 and later. [#62626](https://github.com/woocommerce/woocommerce/pull/62626) * Fix - Added validation for PayPal Standard purchase unit amount in create-order requests to prevent errors when order totals are invalid. [#62385](https://github.com/woocommerce/woocommerce/pull/62385) * Fix - Adds an ID for the setup wizard, avoiding a deprecation error under PHP 8.5. [#62288](https://github.com/woocommerce/woocommerce/pull/62288) * Fix - Add support for collectable shipping methods in local pickup functionality [#62623](https://github.com/woocommerce/woocommerce/pull/62623) * Fix - Add the CallbackUtil class and fix get_price_hash for variations [#61779](https://github.com/woocommerce/woocommerce/pull/61779) * Fix - Add to Cart Button: use a11y utils from script module [#62014](https://github.com/woocommerce/woocommerce/pull/62014) * Fix - Compatibility with WP 6.9: improve the way WooCommerce block theme styles are enqueued [#62048](https://github.com/woocommerce/woocommerce/pull/62048) * Fix - Ensure block email content preview displays the correct item. [#62206](https://github.com/woocommerce/woocommerce/pull/62206) * Fix - Ensure discount fees are included in the order subtotal calculation on the admin order view [#62454](https://github.com/woocommerce/woocommerce/pull/62454) * Fix - Ensure guest orders cannot be read by customers without providing the key and billing address. [#62559](https://github.com/woocommerce/woocommerce/pull/62559) * Fix - Fix: order being incorrectly changed to Completed [#62191](https://github.com/woocommerce/woocommerce/pull/62191) * Fix - Fix: Store API: Orders endpoint now returns an empty array for the `variation` field on simple products, matching cart endpoint behavior. [#62162](https://github.com/woocommerce/woocommerce/pull/62162) * Fix - Fix a bug where Preact warns in development about inconsistent rendering between SSR content and client. [#62155](https://github.com/woocommerce/woocommerce/pull/62155) * Fix - Fix a bug where the `Dimension` block attribute of Mini-Cart Contents was not respected. [#62384](https://github.com/woocommerce/woocommerce/pull/62384) * Fix - Fix Analytics Products report to support product types extending WC_Product_Variable by checking variations array as fallback. [#62648](https://github.com/woocommerce/woocommerce/pull/62648) * Fix - Fix bottom margin deprecation notices for controls in the Product Collection block. [#62705](https://github.com/woocommerce/woocommerce/pull/62705) * Fix - Fix decoding attribute option name [#62562](https://github.com/woocommerce/woocommerce/pull/62562) * Fix - Fixed enqueuing of the whole `wordpress/editor` script where unnecessary. [#62438](https://github.com/woocommerce/woocommerce/pull/62438) * Fix - Fixed order creation failures in PayPal Standard when items contain negative amounts or fractional quantities by omitting the item breakdown in these cases, allowing orders to proceed with the total amount only. [#62576](https://github.com/woocommerce/woocommerce/pull/62576) * Fix - Fixed REST API handling of attribute names containing special characters when creating product variations [#61939](https://github.com/woocommerce/woocommerce/pull/61939) * Fix - Fixes breadcrumbs sometimes throwing errors when categories inconsistencies happened in the Database. [#62210](https://github.com/woocommerce/woocommerce/pull/62210) * Fix - Fixes for Migrator CLI [#61453](https://github.com/woocommerce/woocommerce/pull/61453) * Fix - Fix fatal error when viewing old orders with legacy tax data format in order item metadata. The fix preserves tax values and attempts to infer the tax rate ID from order context for better backwards compatibility. Applies to product, shipping, and fee order items. [#62352](https://github.com/woocommerce/woocommerce/pull/62352) * Fix - Fix Import Status Bar UI overlap with filter dropdowns and add loading state feedback [#62675](https://github.com/woocommerce/woocommerce/pull/62675) * Fix - Fix intermittent blank shop page when WordPress resolves by `slug` instead of `page ID`. [#61788](https://github.com/woocommerce/woocommerce/pull/61788) * Fix - Fix minicart focus when multiple minicarts are in the page [#62494](https://github.com/woocommerce/woocommerce/pull/62494) * Fix - Fix minicart prices formatted with too many decimals [#62355](https://github.com/woocommerce/woocommerce/pull/62355) * Fix - Fix missing order attribution elements when checkout page is pre-rendered. [#62609](https://github.com/woocommerce/woocommerce/pull/62609) * Fix - Fix PHP warning undefined array key "post_type". [#55354](https://github.com/woocommerce/woocommerce/pull/55354) * Fix - Fix product permalinks to use deepest category instead of highest parent term ID when product is assigned to multiple categories. [#62321](https://github.com/woocommerce/woocommerce/pull/62321) * Fix - Fix REST API V4 country/state validation to accept state codes with country prefixes (e.g., DE:DE-BY) for compatibility with V3 API format. [#62495](https://github.com/woocommerce/woocommerce/pull/62495) * Fix - Fix scheduled sales starting/ending at wrong times by using per-product Action Scheduler events instead of relying solely on daily cron. [#62115](https://github.com/woocommerce/woocommerce/pull/62115) * Fix - Fix tax calculation for manual orders when using fixed total price mode (woocommerce_adjust_non_base_location_prices filter). [#62271](https://github.com/woocommerce/woocommerce/pull/62271) * Fix - Fix Tracks events being rejected when array properties are passed by automatically converting arrays to valid formats [#61729](https://github.com/woocommerce/woocommerce/pull/61729) * Fix - Fix using null as array index warning in variable products data store [#62452](https://github.com/woocommerce/woocommerce/pull/62452) * Fix - Fix variation date_modified not updating when toggling POS visibility on variable products. [#62827](https://github.com/woocommerce/woocommerce/pull/62827) * Fix - Fix warning when rendering subcategory thumbnails if the thumbnail attachment lookup fails. [#62198](https://github.com/woocommerce/woocommerce/pull/62198) * Fix - Flat rate: allow empty main cost so class-only rates work again [#61313](https://github.com/woocommerce/woocommerce/pull/61313) * Fix - Handles authorization already captured errors on PayPal Standard by ignoring the error and properly setting the PayPal order status meta to `CAPTURED`. [#62582](https://github.com/woocommerce/woocommerce/pull/62582) * Fix - Improved Shipping Method block alignment and mobile responsiveness when shipping method titles are long. [#62610](https://github.com/woocommerce/woocommerce/pull/62610) * Fix - Limit ProductControl component to loading a maximum of 25 variations at once [#61853](https://github.com/woocommerce/woocommerce/pull/61853) * Fix - Migrate BlocksSharedState to a class with static methods to fix a bug where state was duplicated between block instances. [#62168](https://github.com/woocommerce/woocommerce/pull/62168) * Fix - Navigation store: don't call deprecated onHistoryChange [#62049](https://github.com/woocommerce/woocommerce/pull/62049) * Fix - Prevent an error that occurred when duplicating a product if the duplicate's SKU matched the SKU of a trashed product [#62628](https://github.com/woocommerce/woocommerce/pull/62628) * Fix - Prevent delay/jarring rendering of pickup location in checkout block. [#61852](https://github.com/woocommerce/woocommerce/pull/61852) * Fix - Prevent errors when plugins incorrectly call wc_add_notice before session is initialized [#62310](https://github.com/woocommerce/woocommerce/pull/62310) * Fix - Prevent fatal errors when retrieving orders with deleted products on Store API [#62074](https://github.com/woocommerce/woocommerce/pull/62074) * Fix - Prevent Select2 styles from leaking into other plugins [#61956](https://github.com/woocommerce/woocommerce/pull/61956) * Fix - Product Collection: Remove unnecessary margin-top when there's no store notices displayed [#62144](https://github.com/woocommerce/woocommerce/pull/62144) * Fix - Product Gallery: Fix arrows gap on the frontend [#62261](https://github.com/woocommerce/woocommerce/pull/62261) * Fix - Product Gallery: Fix variation image not displayed when it's the same as the product main image [#62803](https://github.com/woocommerce/woocommerce/pull/62803) * Fix - Product Gallery: improve layout of full page gallery [#62172](https://github.com/woocommerce/woocommerce/pull/62172) * Fix - Remove unnecessary data from shipping zone objects [#62157](https://github.com/woocommerce/woocommerce/pull/62157) * Fix - Remove usage of feature_is_enabled in ProductVersionStringInvalidator::init [#62665](https://github.com/woocommerce/woocommerce/pull/62665) * Fix - Respect “Sold individually” for variable products in Order Again; normalize variation attributes, enforce qty=1, prevent duplicate variations; add unit test. [#61344](https://github.com/woocommerce/woocommerce/pull/61344) * Fix - Stores the PayPal Standard order status upon creation and skips capture when payer action is required. [#62433](https://github.com/woocommerce/woocommerce/pull/62433) * Fix - Styling and copy improvements to Launch Your Store screen [#62254](https://github.com/woocommerce/woocommerce/pull/62254) * Fix - Support embeds in V4 order endpoint when using plain permalinks. [#62366](https://github.com/woocommerce/woocommerce/pull/62366) * Fix - Update the email content block to display the correct information. [#62010](https://github.com/woocommerce/woocommerce/pull/62010) * Fix - Update woocommerce_block_asset_resource_hints to work per-site, rather than across the network on multisite instances [#62211](https://github.com/woocommerce/woocommerce/pull/62211) * Fix - Use WordPress core Accordion block in Product Details block for WP 6.9+, with fallback for older versions. [#62339](https://github.com/woocommerce/woocommerce/pull/62339) * Fix - Ensure there's no deprecation warning about deprecated feature flags when plugins are activated. [#62939](https://github.com/woocommerce/woocommerce/pull/62939) * Fix - Prevent PHP warnings when accessing templates without content [#62909](https://github.com/woocommerce/woocommerce/pull/62909) * Fix - Fix fatal error when third-party plugins instantiate REST controllers before WooCommerce is fully initialized. [#63069](https://github.com/woocommerce/woocommerce/pull/63069) * Add - Add a basic RestApiCache trait [#61798](https://github.com/woocommerce/woocommerce/pull/61798) * Add - Add ability to hide products from Point of Sale. [#62534](https://github.com/woocommerce/woocommerce/pull/62534) * Add - Add analytics-scheduled-import feature flag to control scheduled analytics imports feature [#62149](https://github.com/woocommerce/woocommerce/pull/62149) * Add - Add analytics import mode setting to Settings API [#62169](https://github.com/woocommerce/woocommerce/pull/62169) * Add - Add analytics import status and manual trigger endpoints [#62196](https://github.com/woocommerce/woocommerce/pull/62196) * Add - Add a new controller for generating a product feed for the Woo mobile app. [#62313](https://github.com/woocommerce/woocommerce/pull/62313) * Add - Add block email template for Fulfillment emails. [#62146](https://github.com/woocommerce/woocommerce/pull/62146) * Add - Add configurable clone mode to WC_Data to support both duplication and caching workflows while maintaining backward compatibility. [#61591](https://github.com/woocommerce/woocommerce/pull/61591) * Add - Add currency data to the order item response in REST API V4 [#61415](https://github.com/woocommerce/woocommerce/pull/61415) * Add - Add date status and manual update UI to Analytics pages [#62276](https://github.com/woocommerce/woocommerce/pull/62276) * Add - Add default scheduled import option for new installations [#62331](https://github.com/woocommerce/woocommerce/pull/62331) * Add - Add DELETE endpoint for shipping zone methods in REST API v4. [#62015](https://github.com/woocommerce/woocommerce/pull/62015) * Add - Add DELETE endpoint for shipping zones in REST API v4. [#62016](https://github.com/woocommerce/woocommerce/pull/62016) * Add - Add import mode control to Analytics settings, allowing users to choose between scheduled (every 12 hours) and immediate updates [#62187](https://github.com/woocommerce/woocommerce/pull/62187) * Add - Add password manager support to password fields in my account screen. [#62625](https://github.com/woocommerce/woocommerce/pull/62625) * Add - Add REST API endpoint `/wc/v4/fulfillments/providers` to expose shipping provider information including labels, icons, and tracking URLs for CIAB Next Admin integration. [#61910](https://github.com/woocommerce/woocommerce/pull/61910) * Add - Adds Blaze as a default marketing channel [#62160](https://github.com/woocommerce/woocommerce/pull/62160) * Add - Add scheduled updates promotion inbox note [#62226](https://github.com/woocommerce/woocommerce/pull/62226) * Add - Add scheduled updates promotion notices [#62225](https://github.com/woocommerce/woocommerce/pull/62225) * Add - Add support for filtering product categories by parent level in the Store API. [#62447](https://github.com/woocommerce/woocommerce/pull/62447) * Add - Add support to Hydration class to get store API responses with url and query params. [#62057](https://github.com/woocommerce/woocommerce/pull/62057) * Add - Add variation_id in error data for `order_item_product_invalid_variation_id` errors. [#62240](https://github.com/woocommerce/woocommerce/pull/62240) * Add - Add WordPress environment type to site status report. [#62458](https://github.com/woocommerce/woocommerce/pull/62458) * Add - Add `woocommerce_email_content_post_data` filter hook for customizing email template post data before creation. [#62512](https://github.com/woocommerce/woocommerce/pull/62512) * Add - Breadcrumbs: Set preferred term in core Breadcrumbs block to keep compatibility with Woo's block [#62746](https://github.com/woocommerce/woocommerce/pull/62746) * Add - Implement cache control headers for REST API responses [#61476](https://github.com/woocommerce/woocommerce/pull/61476) * Add - Introduce Product Object feature for improved performance. [#62041](https://github.com/woocommerce/woocommerce/pull/62041) * Add - Make refunds embeddable and payment gateway settings embeddable in Order V4 [#61463](https://github.com/woocommerce/woocommerce/pull/61463) * Add - New block for the email editor that lets users add a coupon code in their emails * Add - Product Gallery: add active Thumbnails outline style to existing overlay [#62253](https://github.com/woocommerce/woocommerce/pull/62253) * Add - Product Gallery Large Image: allow inserting other blocks [#62030](https://github.com/woocommerce/woocommerce/pull/62030) * Add - Set Product Categories as the preferred taxonomy for the Breadcrumbs block [#62283](https://github.com/woocommerce/woocommerce/pull/62283) * Update - Add additional customization to RestApiCache trait [#61838](https://github.com/woocommerce/woocommerce/pull/61838) * Update - Add caching and cache control headers for product REST API responses [#62258](https://github.com/woocommerce/woocommerce/pull/62258) * Update - Add db update to autoload frequently used options [#62036](https://github.com/woocommerce/woocommerce/pull/62036) * Update - Add HTTP headers to cached outputs in RestApiCache [#61931](https://github.com/woocommerce/woocommerce/pull/61931) * Update - Add N-Genius Online to Recommended Payment Partners [#62807](https://github.com/woocommerce/woocommerce/pull/62807) * Update - Add prefixes to checkout autocomplete attributes to help with Safari autofill [#62513](https://github.com/woocommerce/woocommerce/pull/62513) * Update - Add relevant hooks tracking for cached outputs in RestApiCache [#61878](https://github.com/woocommerce/woocommerce/pull/61878) * Update - Add REST API backend caching and cache control headers configuration [#61986](https://github.com/woocommerce/woocommerce/pull/61986) * Update - Adds a woocommerce_shipping_tax_class filter to allow dynamically calculating the shipping tax class. [#62040](https://github.com/woocommerce/woocommerce/pull/62040) * Update - Allow “Email FROM” to automatically use the “Store Title” as the value unless the merchant manually changes it. [#62369](https://github.com/woocommerce/woocommerce/pull/62369) * Update - Blocks Checkout design improvements for multiple shipping packages. [#61625](https://github.com/woocommerce/woocommerce/pull/61625) * Update - Customize Your Store: remove unnecessary code upon simplifying the journey [#62161](https://github.com/woocommerce/woocommerce/pull/62161) * Update - Customize Your Store: Simplify the flow [#62158](https://github.com/woocommerce/woocommerce/pull/62158) * Update - Deprecate the marketplace feature flag - the in-app marketplace is now always enabled and the feature check is no longer necessary. [#62264](https://github.com/woocommerce/woocommerce/pull/62264) * Update - Ensure rewrite rules are updated whenever new block email templates are generated. [#62117](https://github.com/woocommerce/woocommerce/pull/62117) * Update - Product Gallery: Call the block stable [#62278](https://github.com/woocommerce/woocommerce/pull/62278) * Update - Product Gallery: Rename Large Image block to Viewer [#62163](https://github.com/woocommerce/woocommerce/pull/62163) * Update - Reduce option loading in Brands code. [#62000](https://github.com/woocommerce/woocommerce/pull/62000) * Update - Reduce options queried on admin page loads. [#62033](https://github.com/woocommerce/woocommerce/pull/62033) * Update - Refactor Add to Cart + Options grouped product template part to decrease the gap between quantity selector and product name [#62702](https://github.com/woocommerce/woocommerce/pull/62702) * Update - Refactored the address update functionality of PayPal Standard with improved status tracking to prevent duplicate requests. [#62418](https://github.com/woocommerce/woocommerce/pull/62418) * Update - Remove database option fetch for legacy coupon menu display preference. [#62053](https://github.com/woocommerce/woocommerce/pull/62053) * Update - Update hooks alternatives documentation [#62263](https://github.com/woocommerce/woocommerce/pull/62263) * Update - Update WordPress Abilities API to v0.4.0 [#62027](https://github.com/woocommerce/woocommerce/pull/62027) * Update - Re-add the AccessiblePrivateMethods trait [#63088](https://github.com/woocommerce/woocommerce/pull/63088) * Dev - Add @template annotations to DI container for better PHPStan type inference. [#62301](https://github.com/woocommerce/woocommerce/pull/62301) * Dev - Add a checkbox for automatic milestone assignment on pull requests [#62063](https://github.com/woocommerce/woocommerce/pull/62063) * Dev - Add cache invalidation interface and product invalidator [#61613](https://github.com/woocommerce/woocommerce/pull/61613) * Dev - Add E2E tests for analytics scheduled updates feature [#62332](https://github.com/woocommerce/woocommerce/pull/62332) * Dev - Added deprecation notices for deprecated methods in 'WC_Gateway_Paypal_Helper' and 'WC_Gateway_Paypal_Notices' classes. [#62645](https://github.com/woocommerce/woocommerce/pull/62645) * Dev - Add mechanism to detect scripts not declaring blocks dependencies [#62229](https://github.com/woocommerce/woocommerce/pull/62229) * Dev - Add performance guidance to WC_Product_Variable::get_available_variations() docblock [#62715](https://github.com/woocommerce/woocommerce/pull/62715) * Dev - Add PHPStan analyze support and Github action to run on each PR. [#62064](https://github.com/woocommerce/woocommerce/pull/62064) * Dev - Add PHPStan conditional return type to WC_Product_Variable::get_available_variations(). [#62656](https://github.com/woocommerce/woocommerce/pull/62656) * Dev - CI: Update the latest PHP version in use to 8.5 [#62650](https://github.com/woocommerce/woocommerce/pull/62650) * Dev - Deprecate orders v2 related methods in WC_Gateway_Paypal_Request class in favor of the Automattic\WooCommerce\Gateways\PayPal\Request class. [#62640](https://github.com/woocommerce/woocommerce/pull/62640) * Dev - Deprecate WC_Gateway_Paypal_Buttons class in favor of Automattic\WooCommerce\Gateways\PayPal\Buttons class. [#62633](https://github.com/woocommerce/woocommerce/pull/62633) * Dev - Deprecate WC_Gateway_Paypal_Constants class in favor of Automattic\WooCommerce\Gateways\PayPal\Constants. [#62595](https://github.com/woocommerce/woocommerce/pull/62595) * Dev - Deprecate WC_Gateway_Paypal_Helper class in favor of Automattic\WooCommerce\Gateways\PayPal\Helper. [#62596](https://github.com/woocommerce/woocommerce/pull/62596) * Dev - Deprecate WC_Gateway_Paypal_Notices class in favor of Automattic\WooCommerce\Gateways\PayPal\Notices class. [#62599](https://github.com/woocommerce/woocommerce/pull/62599) * Dev - Deprecate WC_Gateway_Paypal_Transact_Account_Manager class in favor of Automattic\WooCommerce\Gateways\PayPal\TransactAccountManager class. [#62624](https://github.com/woocommerce/woocommerce/pull/62624) * Dev - Deprecate WC_Gateway_Paypal_Webhook_Handler class in favor of Automattic\WooCommerce\Gateways\PayPal\WebhookHandler class. [#62630](https://github.com/woocommerce/woocommerce/pull/62630) * Dev - Fix analytics overview flaky tests [#62244](https://github.com/woocommerce/woocommerce/pull/62244) * Dev - Fix flaky mini-cart e2e test by handling page closure during localStorage cleanup [#61950](https://github.com/woocommerce/woocommerce/pull/61950) * Dev - Introduces new constants to store PayPal Standard order meta keys. [#62635](https://github.com/woocommerce/woocommerce/pull/62635) * Dev - Pass input element as context in quantity selector [#62045](https://github.com/woocommerce/woocommerce/pull/62045) * Dev - Reduce PHPStan level from 9 to 8 to improve developer productivity while maintaining strong type safety [#62387](https://github.com/woocommerce/woocommerce/pull/62387) * Dev - Remove skipped E2E tests for WordPress versions <= 6.7 [#62391](https://github.com/woocommerce/woocommerce/pull/62391) * Dev - Remove the AccessiblePrivateMethods trait [#62200](https://github.com/woocommerce/woocommerce/pull/62200) * Dev - Update AI backend skill to always be invoked before writing tests [#62531](https://github.com/woocommerce/woocommerce/pull/62531) * Dev - [Experimental] Add to Cart + Options: improve quantity selection by removing imperative DOM manipulation. [#61821](https://github.com/woocommerce/woocommerce/pull/61821) * Dev - Update PayPal REST API controllers to use new namespaced classes instead of deprecated WC_Gateway_Paypal_* classes. [#63040](https://github.com/woocommerce/woocommerce/pull/63040) * Tweak - - Includes a source parameter for requests to the `/update-check` and `/subscriptions` endpoints on WooCommerce.com if the request originates from the Refresh button on My Subscriptions - Fix source parameter for other requests to the `/subscriptions` endpoint originating from the My Subscriptions page [#62674](https://github.com/woocommerce/woocommerce/pull/62674) * Tweak - Add a hook enabling Woo extensions to set the Personalizer context for their personalization tags. [#62337](https://github.com/woocommerce/woocommerce/pull/62337) * Tweak - Add deprecated tag to wc_enqueue_js(). [#62219](https://github.com/woocommerce/woocommerce/pull/62219) * Tweak - Add null-check to cart handler--prevents accessing cart if not initialized [#62644](https://github.com/woocommerce/woocommerce/pull/62644) * Tweak - Auto-paginate variation loading in the `ProductControl` component. [#62114](https://github.com/woocommerce/woocommerce/pull/62114) * Tweak - Clarify account creation setting description [#60404](https://github.com/woocommerce/woocommerce/pull/60404) * Tweak - Improved the translation string for order headings in the dashboard orders widget. [#62362](https://github.com/woocommerce/woocommerce/pull/62362) * Tweak - Improve UX for tax-inclusive pricing configuration by adding validation notice and clearer setting description when base tax rate is not configured. [#61471](https://github.com/woocommerce/woocommerce/pull/61471) * Tweak - Moved package_id and package_name generation from CartController to WC_Cart::get_shipping_packages() method to ensure these fields are always present in shipping packages, regardless of how they are accessed. [#62393](https://github.com/woocommerce/woocommerce/pull/62393) * Performance - Add index to user_email within woocommerce_downloadable_product_permissions to improve performance [#62101](https://github.com/woocommerce/woocommerce/pull/62101) * Performance - Add to Cart + Options: Avoid loading unnecessary scripts when rendering 3rd-party product types [#62681](https://github.com/woocommerce/woocommerce/pull/62681) * Performance - Cache tax display option to avoid repeated get_option() calls in variation price loop [#61782](https://github.com/woocommerce/woocommerce/pull/61782) * Performance - Fix: Set expiration time for filter data cache to avoid autoloading all cache data [#62575](https://github.com/woocommerce/woocommerce/pull/62575) * Performance - Implement batched pixel requests for improved performance when sending tracking events [#62461](https://github.com/woocommerce/woocommerce/pull/62461) * Performance - Optimize ProductImage block to avoid unnecessary gallery image calculations. [#62107](https://github.com/woocommerce/woocommerce/pull/62107) * Performance - Performance: clean up filter data transients cache along with the product/shop transients cache. [#62591](https://github.com/woocommerce/woocommerce/pull/62591) * Performance - Prime caches before fetching child products in grouped product price calculations [#61784](https://github.com/woocommerce/woocommerce/pull/61784) * Performance - Recent Reviews widget: improve widget performance. [#62680](https://github.com/woocommerce/woocommerce/pull/62680) * Performance - Rely on case-insensitive collation when looking coupon codes up. [#62145](https://github.com/woocommerce/woocommerce/pull/62145) * Performance - Replace get_available_variations() with get_visible_children() and get_price() in product-image.php template for better performance. [#62777](https://github.com/woocommerce/woocommerce/pull/62777) * Enhancement - Add missing UTM Parameters to order attribution [#60397](https://github.com/woocommerce/woocommerce/pull/60397) * Enhancement - Disable add to cart button in variable products until the script has loaded [#62631](https://github.com/woocommerce/woocommerce/pull/62631) * Enhancement - Eliminate hard-coded 'grouped' product handling in frontend of quantity selector block [#61496](https://github.com/woocommerce/woocommerce/pull/61496) * Enhancement - Show tax suffix on new line in order email totals [#62059](https://github.com/woocommerce/woocommerce/pull/62059) * Enhancement - Updated wc-analytics/customers API route to include location filtering (country and state), and user type filtering (registered or guest) [#62267](https://github.com/woocommerce/woocommerce/pull/62267) * Enhancement - Update WooEmailTemplate to simplify style application. [#62051](https://github.com/woocommerce/woocommerce/pull/62051) = 10.4.3 2025-12-22 = **WooCommerce** * Fix - Ensure guest orders cannot be read by customers without providing the key and billing address. [#62557](https://github.com/woocommerce/woocommerce/pull/62557) * Fix - Fix undo button after cart item removal in the cart shortcode [#62529](https://github.com/woocommerce/woocommerce/pull/62529) * Fix - Improve handling of order modified date during HPOS sync on read to prevent infinite loops. [#62532](https://github.com/woocommerce/woocommerce/pull/62532) * Update - Add automatic currency transition from BGN to EUR for Bulgaria effective January 1, 2026 [#62478](https://github.com/woocommerce/woocommerce/pull/62478) = 10.4.2 2025-12-12 = **WooCommerce** * Fix - Product Editor: Remove editor mode and unused rich text components [#62428](https://github.com/woocommerce/woocommerce/pull/62428) = 10.4.1 2025-12-12 = **WooCommerce** * Fix - Fix cached API request in iAPI cart store [#62416](https://github.com/woocommerce/woocommerce/pull/62416) * Fix - Prevent excessive debug logging from the Payments Settings page. [#62404](https://github.com/woocommerce/woocommerce/pull/62404) * Fix - Prevent notice as_unschedule_all_actions() was called before the Action Scheduler data store was initialized [#62419](https://github.com/woocommerce/woocommerce/pull/62419) * Fix - Revert to previous sync-on-read logic to prevent unnecessary writes when HPOS and compat mode are enabled. [#62408](https://github.com/woocommerce/woocommerce/pull/62408) = 10.4.0 2025-12-10 = **WooCommerce** * Fix - Adds validation for currency support on PayPal Standard based on the official PayPal currency table for the Orders V2 API. [#62032](https://github.com/woocommerce/woocommerce/pull/62032) * Fix - Add to Cart + Options: add up quantities when the same product is in the cart multiple times as different cart items [#61445](https://github.com/woocommerce/woocommerce/pull/61445) * Fix - Add to Cart + Options: hide Product Quantity block if its inner input is hidden [#61796](https://github.com/woocommerce/woocommerce/pull/61796) * Fix - Add to Cart + Options: hide the Product Quantity and Add to Cart Button blocks in out of stock variations [#61520](https://github.com/woocommerce/woocommerce/pull/61520) * Fix - Add to Cart + Options: improve editor display for users without permissions to edit the template parts [#61663](https://github.com/woocommerce/woocommerce/pull/61663) * Fix - Add to Cart + Options: make grouped product inner blocks show sample data when the store has no products [#61349](https://github.com/woocommerce/woocommerce/pull/61349) * Fix - Add to Cart + Options: support the Product block when a variation is selected [#61639](https://github.com/woocommerce/woocommerce/pull/61639) * Fix - Align Payment Settings header size with other tabs under WC Settings [#61671](https://github.com/woocommerce/woocommerce/pull/61671) * Fix - All Products: Prevent image interaction in the editor [#61951](https://github.com/woocommerce/woocommerce/pull/61951) * Fix - Coerce order total into float when empty string is provided in setter [#61257](https://github.com/woocommerce/woocommerce/pull/61257) * Fix - Consistently format empty strings in decimal format utils [#59368](https://github.com/woocommerce/woocommerce/pull/59368) * Fix - Correctly handle deleted meta in legacy > HPOS sync. [#61193](https://github.com/woocommerce/woocommerce/pull/61193) * Fix - Ensure checkout/place order logger respects log level threshold [#61842](https://github.com/woocommerce/woocommerce/pull/61842) * Fix - Ensure legacy > HPOS sync correctly handles deleted orders deleted while sync was off. [#61290](https://github.com/woocommerce/woocommerce/pull/61290) * Fix - Featured Product block: Fixed default color of title inner block to have better contrast. [#61554](https://github.com/woocommerce/woocommerce/pull/61554) * Fix - Fix: block notice template version. [#61421](https://github.com/woocommerce/woocommerce/pull/61421) * Fix - Fix: order metadata being deleted when order logs were deleted [#61635](https://github.com/woocommerce/woocommerce/pull/61635) * Fix - Fix Abilities API integration tests for WordPress 6.9+ compatibility with backward compatibility for earlier versions. [#61560](https://github.com/woocommerce/woocommerce/pull/61560) * Fix - Fix a bug preventing UAE and Singapore merchants from onboarding in WooPayments. [#61448](https://github.com/woocommerce/woocommerce/pull/61448) * Fix - Fix CES edit survey not displaying [#61660](https://github.com/woocommerce/woocommerce/pull/61660) * Fix - Fix COGS calculation for product order items [#61694](https://github.com/woocommerce/woocommerce/pull/61694) * Fix - Fixes a notice with agentic commerce webhooks due to checking whether the feature was enabled before init. [#61424](https://github.com/woocommerce/woocommerce/pull/61424) * Fix - Fixes flat rate shipping cost input locale formatting issue where comma decimal separator is replaced with a dot resulting in incorrect display and saving at later times. [#61382](https://github.com/woocommerce/woocommerce/pull/61382) * Fix - Fix floating-point precision bug in price conversion where prices like 10.04 would display as 10.03. [#61377](https://github.com/woocommerce/woocommerce/pull/61377) * Fix - Fix isDiscount check for order summary to fix display issues when product is discounted to 0 [#61256](https://github.com/woocommerce/woocommerce/pull/61256) * Fix - Fix issue in where pagination with the modified orderby was causing duplicates in Variation and Product endpoints. [#61410](https://github.com/woocommerce/woocommerce/pull/61410) * Fix - Fix issue where tax reports where showing duplicate rows for orders with multiple tax rates. [#61400](https://github.com/woocommerce/woocommerce/pull/61400) * Fix - Fix issue where updating the woocommerce_default_date_range option was saving stringified undefined values. [#61971](https://github.com/woocommerce/woocommerce/pull/61971) * Fix - Fix keyboard navigation in iAPI minicart [#61716](https://github.com/woocommerce/woocommerce/pull/61716) * Fix - Fix Mini-Cart footer to show only enabled calculation types (shipping, taxes, discounts) instead of always showing all three. [#61861](https://github.com/woocommerce/woocommerce/pull/61861) * Fix - Fix missing data in certain WooCommerce blocks inside the Product block when editing as an author [#61718](https://github.com/woocommerce/woocommerce/pull/61718) * Fix - Fix order summary description text overflow in checkout [#61207](https://github.com/woocommerce/woocommerce/pull/61207) * Fix - Fix PHP notice for indirect modification of overloaded property in WC_Tracks [#61362](https://github.com/woocommerce/woocommerce/pull/61362) * Fix - Fix undefined array key warning when firing woocommerce_variation_prices [#61472](https://github.com/woocommerce/woocommerce/pull/61472) * Fix - Flush subscription usage cache when WooCommerce.com license is activated [#61606](https://github.com/woocommerce/woocommerce/pull/61606) * Fix - For HPOS sync-on-read, ensure metadata is fully read from the CPT datastore. [#61293](https://github.com/woocommerce/woocommerce/pull/61293) * Fix - Hide PayPal Standard for orders v2 from the checkout page when the email is empty in the settings. [#62083](https://github.com/woocommerce/woocommerce/pull/62083) * Fix - iAPI Mini Cart - Fix a bug where attributes were not rendered correctly due to incorrect key. [#61764](https://github.com/woocommerce/woocommerce/pull/61764) * Fix - Improve accessibility of emails by setting the aria-role of layout tables to presentation. [#60447](https://github.com/woocommerce/woocommerce/pull/60447) * Fix - Normalize the URLs in PayPal Standard request data to prevent errors due to unsupported URL format in PayPal. [#62082](https://github.com/woocommerce/woocommerce/pull/62082) * Fix - Patterns: fix duplicated product image in Product Gallery pattern [#61953](https://github.com/woocommerce/woocommerce/pull/61953) * Fix - Prevent accidental syncing of order with placeholder post when HPOS compat mode is enabled. [#61381](https://github.com/woocommerce/woocommerce/pull/61381) * Fix - Prevent core-provided payment gateways from showing deactivation actions on the Payments settings page. [#61700](https://github.com/woocommerce/woocommerce/pull/61700) * Fix - Prevent rendering Mini Cart Footer block when it's hidden [#61828](https://github.com/woocommerce/woocommerce/pull/61828) * Fix - Prevent saving the dummy products in email preview [#61810](https://github.com/woocommerce/woocommerce/pull/61810) * Fix - Prevent unnecessary querying of non-existent options on the admin. [#61818](https://github.com/woocommerce/woocommerce/pull/61818) * Fix - Product Collection: improve accessibility of carousel layout [#61780](https://github.com/woocommerce/woocommerce/pull/61780) * Fix - Product Collection: show 'Preview' label when editing the Products by Brand template [#61401](https://github.com/woocommerce/woocommerce/pull/61401) * Fix - Product Filter: Fix Canonical URL encoding issue [#61766](https://github.com/woocommerce/woocommerce/pull/61766) * Fix - Product Filter: support unicode value [#61769](https://github.com/woocommerce/woocommerce/pull/61769) * Fix - Product Filters: add support for databases using ANSI_QUOTES [#61630](https://github.com/woocommerce/woocommerce/pull/61630) * Fix - Product Gallery: fix mobile layout issue in editor [#61531](https://github.com/woocommerce/woocommerce/pull/61531) * Fix - Redirect payments-related tasks to the Payments Settings page. [#62012](https://github.com/woocommerce/woocommerce/pull/62012) * Fix - Remove glboal event handler for a['role=button'] and assign specific ones to elements that needs it [#61506](https://github.com/woocommerce/woocommerce/pull/61506) * Fix - Remove link to product page when already viewing the product in missing variation ID error message [#61532](https://github.com/woocommerce/woocommerce/pull/61532) * Fix - Remove unnecessary animation from Add to Cart + Options block skeleton [#61597](https://github.com/woocommerce/woocommerce/pull/61597) * Fix - Remove `Dinero` dependency and use always `raw_prices` [#61233](https://github.com/woocommerce/woocommerce/pull/61233) * Fix - Replace foreign since variable. [#61419](https://github.com/woocommerce/woocommerce/pull/61419) * Fix - Return correct singular version for "Adresses" in My Account Menu Item [#61667](https://github.com/woocommerce/woocommerce/pull/61667) * Fix - Show Cart and Checkout blocks when minicart footer is empty [#61954](https://github.com/woocommerce/woocommerce/pull/61954) * Fix - Support both WordPress 6.9+ and pre-6.9 action hook names for Abilities API registration to ensure compatibility across WordPress versions. [#61562](https://github.com/woocommerce/woocommerce/pull/61562) * Fix - Support same item with different props in the iAPI minicart. [#61542](https://github.com/woocommerce/woocommerce/pull/61542) * Fix - This PR fixes the bug where Customer Analytics are not getting populated for DBs with ANSI_QUOTES enabled [#61212](https://github.com/woocommerce/woocommerce/pull/61212) * Fix - Trigger order status transition hooks regardless of dirty state. (Reverts #46887) [#61459](https://github.com/woocommerce/woocommerce/pull/61459) * Fix - Trigger term recounts for products after visibility terms change instead of after product saving. [#61457](https://github.com/woocommerce/woocommerce/pull/61457) * Fix - Use email $template_base when generating initial templates [#61305](https://github.com/woocommerce/woocommerce/pull/61305) * Fix - Use event handler to reload page, eliminates deprecated warning in checkout block. [#61498](https://github.com/woocommerce/woocommerce/pull/61498) * Fix - Fix fatal error in needs_shipping() when order contains permanently deleted product [#62103](https://github.com/woocommerce/woocommerce/pull/62103) * Fix - Fix PHP 8.4 fatal error in WooCommerce Helper updater when transient contains malformed data [#62094](https://github.com/woocommerce/woocommerce/pull/62094) * Fix - Restore original HPOS status filtering behavior to exclude internal order statuses when status='any', matching post-based storage behavior. [#62106](https://github.com/woocommerce/woocommerce/pull/62106) * Fix - Fix issue in which regular Checkout requests were getting counted toward rate limit if rate limiting is enabled. [#62318](https://github.com/woocommerce/woocommerce/pull/62318) * Fix - Fix Mini Cart showing undefined product title on slow network connections. [#62275](https://github.com/woocommerce/woocommerce/pull/62275) * Fix - Fix PayPal webhook endpoint URL to use home URL instead of site URL. [#62199](https://github.com/woocommerce/woocommerce/pull/62199) * Fix - Fix text visibility in select inputs [#62292](https://github.com/woocommerce/woocommerce/pull/62292) * Fix - Revert payment options icon selector change [#62291](https://github.com/woocommerce/woocommerce/pull/62291) * Add - Add Agentic Commerce checkout `complete` endpoint and `agentic_commerce` payment gateway feature support. [#61271](https://github.com/woocommerce/woocommerce/pull/61271) * Add - Add an entity versions cache [#61600](https://github.com/woocommerce/woocommerce/pull/61600) * Add - Add a new line when concatenating translations in a script for the Mini-Cart block [#61923](https://github.com/woocommerce/woocommerce/pull/61923) * Add - Add BlockEmailRenderer with email context support and Cart Contents product collection [#61546](https://github.com/woocommerce/woocommerce/pull/61546) * Add - Add debug tool to backfill order fulfillment status in Analytics data. [#61721](https://github.com/woocommerce/woocommerce/pull/61721) * Add - Add fulfillment_status column to wc_order_stats table for new installations to enable order fulfillment tracking in analytics. [#61487](https://github.com/woocommerce/woocommerce/pull/61487) * Add - Add GET endpoint for retrieving individual shipping zone methods in REST API v4, allowing direct access to shipping method data by instance ID. [#61957](https://github.com/woocommerce/woocommerce/pull/61957) * Add - Add hook 'woocommerce_update_order_refund' for refund updates. [#61225](https://github.com/woocommerce/woocommerce/pull/61225) * Add - Add offline payments V4 API endpoint. [#61123](https://github.com/woocommerce/woocommerce/pull/61123) * Add - Adds an agentic commerce integration page when the agentic commerce feature is enabled. [#61427](https://github.com/woocommerce/woocommerce/pull/61427) * Add - Adds the checkout_sessions route for the agentic commerce protocol as an experimental feature [#61216](https://github.com/woocommerce/woocommerce/pull/61216) * Add - Add v4 API routes for fetching and updating payment gateways. [#61278](https://github.com/woocommerce/woocommerce/pull/61278) * Add - Add webhook functionality for agentic commerce protocol. [#61325](https://github.com/woocommerce/woocommerce/pull/61325) * Add - Add `/products/catalog` endpoints to v3 API with mock response behind a local feature flag. [#61332](https://github.com/woocommerce/woocommerce/pull/61332) * Add - Allow HTML tags in the cart product item data fields [#61437](https://github.com/woocommerce/woocommerce/pull/61437) * Add - Auto fill tracking url with the tracking number and the selected shipping provider. [#61368](https://github.com/woocommerce/woocommerce/pull/61368) * Add - Customers V4 endpoint [#61336](https://github.com/woocommerce/woocommerce/pull/61336) * Add - Refactor WooCommerce block entity registration and settings [#61131](https://github.com/woocommerce/woocommerce/pull/61131) * Add - Support for reply-to address in transactional emails [#61355](https://github.com/woocommerce/woocommerce/pull/61355) * Add - V4 sorting options in rest api for customers [#61507](https://github.com/woocommerce/woocommerce/pull/61507) * Add - Display an admin notice when the store's currency is not supported by PayPal Standard. [#62285](https://github.com/woocommerce/woocommerce/pull/62285) * Add - Display a notice when merchant's PayPal Standard account is locked or restricted by PayPal. [#62252](https://github.com/woocommerce/woocommerce/pull/62252) * Update - Add back the : symbol to the cart item data name element [#61839](https://github.com/woocommerce/woocommerce/pull/61839) * Update - Added display support for "Unique product id" in wp-admin products table. [#60049](https://github.com/woocommerce/woocommerce/pull/60049) * Update - Add notice to Add to Cart + Options block encouraging users to upgrade from Product Image Gallery block to Product Gallery [#61201](https://github.com/woocommerce/woocommerce/pull/61201) * Update - Add provider onboarding unsupported handling for the Payments settings page. [#61574](https://github.com/woocommerce/woocommerce/pull/61574) * Update - Adds authorization for agentic checkout [#61592](https://github.com/woocommerce/woocommerce/pull/61592) * Update - Add support for conditional "Finish checkout" button text in cart collections for email rendering [#61822](https://github.com/woocommerce/woocommerce/pull/61822) * Update - Add support for storing COGS values for orders when HPOS is disabled [#61307](https://github.com/woocommerce/woocommerce/pull/61307) * Update - Add to Cart + Options: show spinner when grouped product inners blocks are loading in the editor [#61242](https://github.com/woocommerce/woocommerce/pull/61242) * Update - Add to Cart + Options: stretch Product Quantity to the same height as the Add to Cart Button [#61713](https://github.com/woocommerce/woocommerce/pull/61713) * Update - Apply tighter font sizes and spacing in cart and checkout blocks [#59787](https://github.com/woocommerce/woocommerce/pull/59787) * Update - Check user capability before saving any settings. [#61218](https://github.com/woocommerce/woocommerce/pull/61218) * Update - Deprecate wc_enqueue_js in favor of wp_add_inline_script(). [#61474](https://github.com/woocommerce/woocommerce/pull/61474) * Update - Do not preload leaderboards and performance indicators data outside of Analytics screens. [#61190](https://github.com/woocommerce/woocommerce/pull/61190) * Update - E2E tests: adjust the E2E tests to WP 6.9 [#61648](https://github.com/woocommerce/woocommerce/pull/61648) * Update - Enable the Interactivity API-powered Mini Cart by default. [#60823](https://github.com/woocommerce/woocommerce/pull/60823) * Update - Group agentic commerce settings for better comprehension. [#61477](https://github.com/woocommerce/woocommerce/pull/61477) * Update - Implement approved download dirs cache to prevent duplicate queries. [#61159](https://github.com/woocommerce/woocommerce/pull/61159) * Update - Move HPOS Datastore Caching out of experimental phase. [#61521](https://github.com/woocommerce/woocommerce/pull/61521) * Update - Move order logs deletion to a scheduled action [#61121](https://github.com/woocommerce/woocommerce/pull/61121) * Update - Optimize caching of price data for variations [#61286](https://github.com/woocommerce/woocommerce/pull/61286) * Update - Payment gateways can now implement get_provider_links() to provide contextual provider links for the Payments settings page. [#61681](https://github.com/woocommerce/woocommerce/pull/61681) * Update - Prevent unnecessary queries in admin notices. [#61462](https://github.com/woocommerce/woocommerce/pull/61462) * Update - Product Gallery: remove temporary backwards compatible code for beta block [#61934](https://github.com/woocommerce/woocommerce/pull/61934) * Update - Remove CedCommerce from onboarding marketing task [#61758](https://github.com/woocommerce/woocommerce/pull/61758) * Update - Updated all PHP dependencies. [#61753](https://github.com/woocommerce/woocommerce/pull/61753) * Update - Updated MCP adapter to v0.3.0 and refactored initialization process. [#61974](https://github.com/woocommerce/woocommerce/pull/61974) * Update - Update offline methods REST API v4 route to settings/payments/offline-methods. [#61250](https://github.com/woocommerce/woocommerce/pull/61250) * Update - Update payments recommendations in South Africa. [#61922](https://github.com/woocommerce/woocommerce/pull/61922) * Update - Update WooCommerce email titles and descriptions when the block email editor is enabled. [#61883](https://github.com/woocommerce/woocommerce/pull/61883) * Update - Use 'publish' as the default post status for new email editor posts. [#61814](https://github.com/woocommerce/woocommerce/pull/61814) * Update - Add order meta to prevent duplicate PayPal Standard API calls when we have already received a 404 response for a capture request on an authorised payment. [#62314](https://github.com/woocommerce/woocommerce/pull/62314) * Update - Ensure PayPal Standard capture later flow uses the correct authorization ID. [#62212](https://github.com/woocommerce/woocommerce/pull/62212) * Update - Include WooCommerce version in PayPal Standard gateway requests. [#62203](https://github.com/woocommerce/woocommerce/pull/62203) * Update - Include WooCommerce version in the PayPal Standard request header. [#62286](https://github.com/woocommerce/woocommerce/pull/62286) * Update - Update version requirements to WordPress 6.8 and PHP 7.4 in readme.txt and woocommerce.php. [#62341](https://github.com/woocommerce/woocommerce/pull/62341) * Dev - Add wc/v4/shipping-zone-method endpoint for creating a shipping zone with Core Data compatibility and modern v4 architecture patterns. [#61275](https://github.com/woocommerce/woocommerce/pull/61275) * Dev - Add wc/v4/shipping-zone-method endpoint for updating a shipping zone with Core Data compatibility and modern v4 architecture patterns. [#61337](https://github.com/woocommerce/woocommerce/pull/61337) * Dev - Add wc/v4/shipping-zone-method endpoints (POST/PUT) for creating and updating shipping methods with Core Data compatibility and modern v4 architecture patterns. [#61124](https://github.com/woocommerce/woocommerce/pull/61124) * Dev - dev: add ctrf reporter for e2e tests [#61915](https://github.com/woocommerce/woocommerce/pull/61915) * Dev - dev: update CI config for Blocks e2e tests - WP pre-release job [#61537](https://github.com/woocommerce/woocommerce/pull/61537) * Dev - dev: Update sharding arguments for e2e tests to improve distribution [#61280](https://github.com/woocommerce/woocommerce/pull/61280) * Dev - Don't pass attributes: undefined while registering some blocks [#61945](https://github.com/woocommerce/woocommerce/pull/61945) * Dev - E2E tests: add JUnit report configuration [#61450](https://github.com/woocommerce/woocommerce/pull/61450) * Dev - Efficiency improvements to linter config [#61411](https://github.com/woocommerce/woocommerce/pull/61411) * Dev - Fix: [Flaky Test] can upload the CSV file and import products [#61273](https://github.com/woocommerce/woocommerce/pull/61273) * Dev - Implement skills for Claude [#61811](https://github.com/woocommerce/woocommerce/pull/61811) * Dev - Improve instructions for Claude Code [#61489](https://github.com/woocommerce/woocommerce/pull/61489) * Dev - Migrate usage of wc_enqueue_js() to wp_add_inline_script(). [#61494](https://github.com/woocommerce/woocommerce/pull/61494) * Dev - Move the business logic for v4 endpoints for shipping zones and methods from the global model to a dedicated service. [#61714](https://github.com/woocommerce/woocommerce/pull/61714) * Dev - prevent block settings warnings for checkout areas [#61830](https://github.com/woocommerce/woocommerce/pull/61830) * Dev - Remove notice to downgrade from Product Collection to Products (Beta) block [#61203](https://github.com/woocommerce/woocommerce/pull/61203) * Dev - skip iapi blocks E2E tests with WP 6.7 [#61850](https://github.com/woocommerce/woocommerce/pull/61850) * Dev - Update @automattic/webpack-rtl-plugin version [#59425](https://github.com/woocommerce/woocommerce/pull/59425) * Dev - Update email-editor dependency in WooCommerce composer.json to load the mirrored version [#61181](https://github.com/woocommerce/woocommerce/pull/61181) * Tweak - Angle brackets are now encoded in hex when rendered in a `