---
title: 'WooCommerce 11.1: Refunds, EU Order Withdrawal, and Faster Variable Products'
url: 'https://docs.agenteum.top/blog/2026-08-20-woocommerce-11-1-pre-release'
markdown: 'https://docs.agenteum.top/blog/2026-08-20-woocommerce-11-1-pre-release.md'
date: '2026-08-20'
description: 'WooCommerce 11.1 beta: REST API refund endpoint with compute_totals, EU order withdrawal flow, N+1 query fixes for variable products, and smarter block registration.'
taxonomy:
  category:
    - news
  tag:
    - woocommerce
    - wordpress
    - ecommerce
    - release
    - rest-api
  archives_month:
    - aug_2026
  archives_year:
    - '2026'
---

# WooCommerce 11.1: Refunds, EU Order Withdrawal, and Faster Variable Products

WooCommerce 11.1 is in beta, with the final release scheduled for **September 1, 2026**. The headline features are a complete order-withdrawal flow for shoppers, a new REST API refund endpoint, and meaningful performance fixes for variable products. Here's what's coming.

## EU order withdrawal — new `/my-account/withdraw-order/`

WooCommerce 11.1 brings the EU **right of order withdrawal** directly into the store. Customers can request a withdrawal from a new My Account page (`/my-account/withdraw-order/`) — **no authentication required**. Submissions are routed to merchants, who get an email plus an inbox notification to follow up.

The feature is **disabled by default** and must be enabled from **WooCommerce → Settings → Advanced → Features**. For EU-facing stores, this is a compliance box you can finally tick without a plugin.

## REST API refunds: let the server do the math

The refund flow in the WC REST API got a real upgrade:

- `POST /wc/v3/orders/{id}/refunds` now accepts **`compute_totals: true`** — the server calculates refund totals for you instead of manual client-side math
- New endpoint **`POST /wc/v3/orders/{id}/refunds/preview`** — run the calculation and preview the refund without applying it

On the Store API side, checkout endpoints gain an optional **`expected_total`** field. If the customer gets charged a different amount than they saw, the request fails with a `409 woocommerce_rest_checkout_total_mismatch` — a real safeguard against checkout-total drift.

## Variable product performance

Multiple fixes reduce **N+1 queries** around variations and attributes, in both the editor and frontend, plus fewer queries on price caching. For stores with large variable products, this is the release that makes the product editor feel snappy again.

## Smarter block registration

A new `BlockRegistrationContext` guard **skips block registration on cron, AJAX, and REST API requests** — the contexts that never render or edit blocks. Front-end, admin, and editor behavior are preserved. Extensions that assume blocks register on every request must adapt via the new `woocommerce_should_register_blocks` filter.

## CSV import/export fixes

Several fixes landed for product CSV workflows: preserving terms and categories on re-uploads, clearing images when the file says so, respecting existing store currency settings, and better variation handling when the product already exists.

## Experimental: unified block editor assets

An experimental feature replaces per-block editor scripts with **shared JS/CSS bundles**. Testing measured:

- **91.7% fewer editor assets**
- **48.3% reduction in network transfer size**
- **62.3% smaller style bundles**

Disabled by default; opt in under **Settings → Advanced → Features → Experimental**.

## Developer advisories worth noting

- `is_rest_api_request()` now detects `?rest_route=` query params, not just pretty permalinks
- `ProductGalleryUtils::get_product_gallery_image_count()` is deprecated → use `get_product_gallery_media_count()`
- Quantity stepper DOM order now matches visual order (WCAG 1.3.2 / 2.4.3 fixes) — themes with CSS keyed to old DOM should re-test
- New `GET /wc-analytics/activity-panel/counts` collapses **six requests into one** per admin page load
- Analytics pages no longer carry request-derived properties — cached pages can't leak another visitor's data
- Currency symbols fixed: `MOP` → `MOP$`, `ZMW` → `K`

## Bottom line

The refund endpoint and the checkout `expected_total` guard are the kind of API improvements that make integration work noticeably cleaner. The block-registration skip and the analytics consolidation quietly reduce server load across every request. And for EU merchants, the built-in order withdrawal flow removes one more plugin dependency.

*Source: [WooCommerce Developer Blog](https://developer.woocommerce.com/2026/08/18/woocommerce-11-1-pre-release/), August 18, 2026.*

---

## Navigation

- Parent: [Blog](https://docs.agenteum.top/blog.md)
- Previous: [DeepSeek V4-Flash-Vision-Exp: A Multimodal Model That Reads Dashboards Flawlessly](https://docs.agenteum.top/blog/2026-08-21-deepseek-v4-flash-vision-exp.md)
- Next: [WordPress 7.1 "Mary Lou" — Image Formats and Speed Finally Get Real](https://docs.agenteum.top/blog/2026-08-20-wordpress-7-1-mary-lou.md)
