WooCommerce 11.2.0 Technical Guide: Features, API Changes, and Developer Advisories

Overview and Release Schedule of WooCommerce 11.2.0

WooCommerce 11.2.0 is scheduled for general release during the week of October 06, 2026. The beta release is available for testing via the WooCommerce Beta Tester plugin under the Beta channel. Store owners and extension developers are encouraged to review the functional highlights, test extensions against breaking changes, and submit feedback prior to the final production release.

Key highlights of this release include improved product matching mechanisms during CSV imports, configurable order withdrawal request emails, date field support in the Additional Checkout Fields API, expanded styling options across core blocks, and several important adjustments to developer APIs and database schemas.

Product CSV Importer Improvements: GTIN Matching and Scoped Cleanup

The Product CSV importer in WooCommerce 11.2.0 features enhanced matching logic for catalog updates. When importing products with the Update existing products option enabled, the importer can now match existing products using Global Unique Identifiers—specifically GTIN, UPC, EAN, or ISBN—if no primary Product ID or SKU is supplied in the CSV row.

The system evaluates identifiers strictly in the following lookup order:

  1. Product ID
  2. SKU
  3. Global Unique ID (GTIN, UPC, EAN, or ISBN)

If a non-blank identifier is provided in the CSV but matches no product in the database, WooCommerce 11.2.0 skips the row entirely instead of creating a new product. Additionally, if an identifier matches a product of a different product type, the update operation is refused to prevent silent alterations of product types.

Import cleanup handling has also been optimized. Previously, the import cleanup process executed site-wide deletions for orphan variations, post meta, and term relationships. On large product catalogs, this step added over a minute to small import tasks and risked deleting unrelated store data. In WooCommerce 11.2.0, cleanup actions (identified in pull requests #68392, #68090, and #67940) strictly remove temporary placeholder products generated during that specific import batch.

Additional Checkout Fields API: Date Picker Support and Validation

The Additional Checkout Fields API now supports native date field types, permitting developers and extensions to capture temporal data such as customer birthdates or preferred delivery dates directly within the Checkout block and My Account forms (#68143, #68083, #68048).

Date fields utilize the browser’s native date picker, ensuring consistent controls on desktop and mobile devices. Key technical characteristics include:

  • Locale and Display: Shoppers input dates using their local browser locale format. Emails and order details display the captured date according to the store’s configured date format.
  • Date Constraints: Developers can enforce constraints using fixed date boundaries (min and max options) or relative periods calculated from the current date (e.g., defining a delivery window from tomorrow up to the next 30 days).
  • Schema Validation: Field validation rules for date fields in the Checkout block are enforced using JSON Schema.

Configurable Email Workflows and Gutenberg Block Styling

WooCommerce 11.2.0 introduces dedicated, configurable emails for order withdrawal requests (#67799). These notifications include automatic acknowledgments sent to customers upon submitting a request and notifications dispatched to store administrators.

Store owners can manage these workflows directly under WooCommerce > Settings > Emails. Configurable properties include:

  • Recipient email address management
  • Custom additional content
  • Email previewing capabilities
  • Global enable/disable toggles per email type

On the Gutenberg block front, several core WooCommerce blocks have received expanded style attributes that can be applied in block instances or via Global Styles (Appearance > Editor > Styles > Blocks):

  • Product Image Block: Adds border style support (#68342).
  • Product Quantity Block: Adds border styles, border radius (#68000), box shadow controls (#68148), and background/text color support (#68040). These styles extend to the Cart block quantity selector.
  • Product Filters Block: Supports sticky positioning (#68256).
  • Chips Block: Introduces typography controls, custom padding, and border radius properties (#68105).
  • Cart and Checkout Blocks Layout: The order summary sidebar changes from a 35% percentage width to a fixed 360px flex column. The is-large two-column container breakpoint shifts from 700px to 920px width threshold. Custom CSS reliant on the 700px query or percentage widths must be audited.

Developer Advisories and Breaking Changes

Developers must take note of critical behavior changes and functional deprecations in version 11.2.0:

  • PhotoSwipe Error Messages: The %url% placeholder in custom PhotoSwipe error messages is no longer replaced with the failed image source URL and will render literally (#68888).
  • Date Filter Timezones: Standard queries via wc_get_orders() and wc_get_products() now interpret date strings (e.g., 2026-07-20) relative to the store’s local timezone rather than UTC (#67903, #67827). Product queries change across all store types; order queries change on stores that retain orders as custom post types.
  • Attribute Deletion Lifecycle: Calling wc_delete_attribute() unregisters the taxonomy immediately during request execution rather than deferring to the end of the request. Slugs (such as pa_color) can be recreated instantly within the same execution context (#68212).
  • Admin Settings Hook Priority: The register_wp_admin_settings function hook priority changes from 10 to 999 on admin_init (#67718). Late settings and email class registrations execute without falling behind, though unprioritized remove_action() calls on this hook will silently fail.
  • Webhook Post Validation: WC_Webhook::is_valid_post_action() derives the resource type directly from the post ID rather than relying on request globals. Trashing a variable product during a front-end request now triggers distinct webhook deliveries per variation (#68208).
  • Sequential Coupon Rules: With sequential discounts enabled, coupons possessing equal priority and item limits apply in the precise order entered by the customer, rather than sorting by lowest discount amount first (#68030).
  • Admin Line Item Quantities: Order item AJAX endpoints reject negative quantities beneath the minimum floor (#67921). The woocommerce_quantity_input_min_admin filter gains an add context and server-side enforcement. Returning an empty string ('') no longer removes minimums; an explicit numeric floor must be returned.
  • Category Display Standardization: Product category display types are now processed through sanitize_key() upon saving. A value like Custom_Grid is converted and stored as custom_grid.
  • Category Breadcrumb Ordering: Classic product templates (single-product/meta.php) pass a new breadcrumb order parameter displaying parent categories first (e.g., “Electronics, Cameras” instead of “Cameras, Electronics”). The original order can be restored via the woocommerce_product_meta_category_orderby filter (#67633).
  • HTML Filtering Controls: wp_kses_post() is now applied to tooltip_html in checkbox fields and text/select/checkbox labels within WC_Widget::form(). Inline scripts or custom event attributes placed in these locations are stripped.
  • Blueprint Export Modifications: The Payments configuration has been removed from Blueprint exports. The deprecated ExportWCPaymentGateways class returns an empty step, requiring manual gateway setup during provisioning.

REST API and Store API Updates

WooCommerce 11.2.0 introduces updates across both REST API endpoints and Store API routes:

  • Refund Attribution: Unauthenticated REST API refund actions are no longer erroneously attributed to User ID #1.
  • User Endpoint Context: Access to is_super_admin and woocommerce_meta fields in the REST users endpoint is now strictly restricted to the edit context.
  • Store API Resiliency: If loading a cart session fails, the Store API responds with an HTTP 500 status code and omits both Cart-Token and Cart-Hash headers. API clients must treat missing headers as an unavailable cart (#67920).
  • Rate Limiting Response: Exceeding request rate limits on Store API routes now returns HTTP status 429 instead of HTTP 400.
  • Order Item Data Structures: The Store API Order endpoint formats item_data as a explicit list containing an id property. Appended entries set id to null and include a raw_key property.
  • Extension Data Publishing: The Store API Cart items endpoint now publishes cart-item extension data directly rather than product extension data.
  • Analytics & Reports: Phone number columns (billing and shipping) are added to the Analytics Customers report and its REST API endpoint. The Products report endpoint now accepts a search argument.

Database Migrations and Feature Deprecations

WooCommerce 11.2.0 completely removes the experimental abandoned cart recovery feature and the experimental Agentic Checkout APIs (including all wc/agentic/v1 routes) without replacement endpoints (#67726, #67914). Running the version 11.2 database update automatically cancels all queued recovery actions and drops the wc_email_unsubscribes database table.

The release includes the following official database update routines:

  • wc_update_11201_invalidate_analytics_reports_cache (#67626)
  • wc_update_11201_migrate_tax_lookup_order_items (#67896)
  • wc_update_11202_reset_refund_returning_customer_markers (#67713)
  • wc_update_11203_normalize_stock_notification_emails (#68386)
  • wc_update_1120_cleanup_inherited_variation_images (#68389)
  • wc_update_1120_delete_surface_cart_checkout_note (#68088)
  • wc_update_1120_migrate_stock_notifications_alpha_constant (#64490)
  • wc_update_1120_remove_abandoned_cart_recovery (#67726)

Frequently asked questions

How does the Product CSV importer match products in WooCommerce 11.2.0 when primary IDs are missing?

When 'Update existing products' is enabled and no Product ID or SKU is provided in the CSV, WooCommerce 11.2.0 matches rows by Global Unique Identifiers (GTIN, UPC, EAN, or ISBN). The match order evaluates ID first, SKU second, and Global Unique ID third. If an identifier matches nothing, the row is skipped instead of creating a product.

How can developers configure date constraints in the Additional Checkout Fields API?

Developers can pass fixed 'min' and 'max' parameters or define relative date limits relative to the current date (for example, limiting selection from tomorrow through the next 30 days). Validation is enforced in the Checkout block using JSON Schema.

What happens to the abandoned cart recovery database tables in WooCommerce 11.2.0?

The experimental abandoned cart recovery feature has been removed. Running the 11.2 database migration cancels all queued recovery actions and drops the wc_email_unsubscribes table from the database.

How do date queries in wc_get_orders() and wc_get_products() change in WooCommerce 11.2.0?

Date strings (such as '2026-07-20') passed to wc_get_orders() and wc_get_products() are evaluated as a day in the store's local timezone rather than in UTC.

Primary reference: Review the original announcement for exact release details. This article is an independent explanation and does not reproduce the source text.