WooCommerce

Mô tả

WooCommerce là nền tảng thương mại điện tử nguồn mở dành cho WordPress.

Nền tảng cốt lõi của chúng tôi là miễn phí, linh hoạt và được phổ biến bởi cộng đồng toàn cầu. Quyền tự do của nguồn mở có nghĩa là bạn giữ toàn quyền sở hữu nội dung và dữ liệu của cửa hàng mình mãi mãi.

Cho dù bạn đang thành lập doanh nghiệp, bán lẻ trực tuyến truyền thống hay phát triển trang web cho khách hàng, hãy sử dụng WooCommerce cho cửa hàng với sự kết hợp mạnh mẽ nội dung và thương mại.

  • Tạo một gian hàng trực tuyến đẹp, lôi cuốn với giao diện phù hợp cho thương hiệu và ngành hàng của bạn.
  • Tăng doanh thu với một trải nghiệm giỏ hàng được tối ưu để chuyển đổi.
  • Tùy chỉnh trang sản phẩm trong vài phút bằng cách sử dụng mô-đun các khối sản phẩm.
  • Trưng bày hàng hóa vật lý và kỹ thuật số, các biến thể sản phẩm, cấu hình tùy chỉnh, tải xuống tức thì và các mặt hàng tiếp thị liên kết.
  • Bán đăng ký, đặt chỗ hoặc tư cách thành viên, với các tiện ích mở rộng đã được nhà phát triển của chúng tôi kiểm duyệt.
  • Vươn lên vị trí hàng đầu trong kết quả tìm kiếm bằng cách tận dụng lợi thế SEO của WordPress.
  • Xây dựng trên nền tảng có thể mở rộng. Tạo trang thương mại điện tử cho cửa hàng hoạt động cao.

TẤT CẢ CÔNG CỤ BẠN CẦN ĐỂ BÁN HÀNG

Các công cụ tích hợp sẵn và tích hợp phổ biến giúp bạn quản lý hiệu quả hoạt động kinh doanh của mình. Nhiều dịch vụ được thêm miễn phí chỉ bằng một cú nhấp chuột thông qua tùy chọn Trình hướng dẫn thiết lập.

  • Chọn cách bạn muốn được thanh toán. Quản lý thanh toán một cách thuận tiện ngay tại cửa hàng của bạn với WooPayments (Có sẵn trong Hoa Kỳ, Anh, Ireland, Úc, New Zealand, Canada, Tây Ban Nha, Pháp, Đức và Ý). Chấp nhận thẻ tín dụng, ví di động, chuyển khoản ngân hàng và tiền mặt một cách an toàn nhờ Hơn 100 cổng thanh toán – bao gồm Stripe, PayPal, và Square.
  • Định cấu hình các tùy chọn vận chuyển của bạn. In nhãn USPS ngay từ trang tổng quan của bạn và thậm chí lên lịch nhận hàng với WooCommerce Shipping (chỉ ở Hoa Kỳ). Kết nối với các nhà mạng nổi tiếng chẳng hạn như UPS và FedEx – cùng với nhiều giải pháp giao hàng, kiểm kê và xử lý đơn hàng đa dạng cho địa phương của bạn.
  • Đơn giản hóa thuế bán hàng. Thêm Thuế WooCommerce hoặc các dịch vụ tích hợp tương tự để biến các phép tính tự động thành hiện thực.

Phát triển doanh nghiệp của bạn, thêm tính năng và giám sát cửa hàng của bạn khi đang di chuyển

WooCommerce là công cụ kinh doanh chuyên nghiệp. Theo dõi các chỉ số hiệu suất quan trọng nhất đối với bạn bằng bảng điều khiển trung tâm mạnh mẽ và linh hoạt được tích hợp trong WooCommerce.

Mở rộng đối tượng của bạn trên các kênh tiếp thị và xã hội bằng Google Ads, HubSpot, Mailchimp, và Facebook Tích hợp. Bạn luôn có thể kiểm tra Trung tâm tiếp thị trong bảng điều khiển để có những ý tưởng và mẹo mới giúp bạn thành công.

Nâng cao chức năng của cửa hàng với hàng trăm tiện ích mở rộng miễn phí và trả phí từ WooCommerce Marketplace. Các nhà phát triển của chúng tôi kiểm tra từng tiện ích mở rộng mới và thường xuyên xem xét các tiện ích mở rộng hiện có để duy trì các tiêu chuẩn chất lượng của Marketplace. Chúng tôi đang tích cực tìm kiếm các sản phẩm giúp người xây dựng cửa hàng tạo ra các cửa hàng thành công.

Quản lý cửa hàng của bạn từ mọi nơi với ứng dụng di động miễn phí WooCommerce (Android và iOS ). Cảnh báo tiết lộ nội dung: Hãy để ý đến âm thanh thông báo “cha-ching” hơi gây nghiện mỗi khi bạn thực hiện một đợt bán hàng mới!

Sở hữu và kiểm soát dữ liệu cửa hàng của bạn – mãi mãi

Với WooCommerce, dữ liệu của bạn thuộc về bạn. Luôn luôn.

Nếu chọn chia sẻ dữ liệu sử dụng với chúng tôi, bạn có thể cảm nhận được tự tin khi biết rằng nó được ẩn danh và giữ an toàn. Chọn không tham gia bất cứ lúc nào mà không ảnh hưởng đến cửa hàng của bạn.

Không giống như các giải pháp thương mại điện tử được lưu trữ, dữ liệu cửa hàng WooCommerce có tính minh bạch trong tương lai; bạn có thể tự do xuất tất cả nội dung của mình và đưa trang web của mình đến bất kỳ nền tảng nào bạn chọn. Không có hạn chế.

Tại sao các nhà phát triển chọn (và yêu thích) WooCommerce

Nhà phát triển có thể sử dụng WooCommerce để tạo, tùy chỉnh và mở rộng quy mô cửa hàng nhằm đáp ứng các thông số kỹ thuật chính xác của khách hàng, thực hiện các cải tiến thông qua tiện ích mở rộng hoặc giải pháp tùy chỉnh.

  • Tận dụng hooks và các bộ lọc để sửa đổi hoặc tạo ra chức năng.
  • Tích hợp hầu như mọi dịch vụ bằng cách sử dụng REST API mạnh mẽ và webhooks.
  • Thiết kế và xây dựng các khối nội dung tùy chỉnh với React.
  • Kiểm tra và sửa đổi bất kỳ phần nào của mã plugin cốt lõi.
  • Tăng tốc quá trình phát triển với CLI cực nhanh.

Nền tảng cốt lõi được thử nghiệm nghiêm ngặt và thường xuyên, được hỗ trợ bởi một nhóm phát triển chuyên dụng làm việc trên nhiều múi giờ. Tài liệu toàn diện được cập nhật với mỗi bản phát hành, trao quyền cho bạn để xây dựng chính xác cửa hàng cần thiết.

Hãy là một phần của cộng đồng toàn cầu đang phát triển của chúng tôi

WooCommerce có một cộng đồng lớn mạnh, đầy nhiệt huyết, tận tâm giúp đỡ các nhà bán hàng thành công – và cộng đồng này đang phát triển nhanh chóng.

Cuộc gặp gỡ WooCommerce tại các địa điểm trên khắp thế giới mà bạn có thể tham dự miễn phí và thậm chí tham gia chạy bộ. Những sự kiện này là một cách tuyệt vời để học hỏi từ những người khác, chia sẻ chuyên môn của bạn và kết nối với những người cùng chí hướng.

WooCommerce cũng thường xuyên hiện diện tại các sự kiện WordCamp trên toàn cầu – chúng tôi rất muốn được gặp bạn.

Đóng góp và dịch

WooCommerce được phát triển và hỗ trợ bởi Automattic, người tạo ra WordPress.com và Jetpack. Chúng tôi cũng có hàng trăm cộng tác viên độc lập và luôn có nhiều cơ hội hơn nữa. Hãy truy cập Kho lưu trữ WooCommerce GitHub để tìm hiểu cách bạn có thể tham gia .

WooCommerce được dịch sang nhiều ngôn ngữ, bao gồm tiếng Đan Mạch, tiếng Ukraina và tiếng Ba Tư. Giúp bản địa hóa WooCommerce hơn nữa bằng cách thêm ngôn ngữ của bạn – truy cập dịch.wordpress.org.

Kết nối với WooCommerce.com

Bạn có thể kết nối cửa hàng của mình với WooCommerce.com để quản lý đăng ký của bạn trên WooCommerce Marketplace và nhận bản cập nhật sản phẩm mà không cần rời khỏi trang quản trị WordPress. Kết nối cũng cho phép cài đặt các sản phẩm đã mua trực tiếp từ WooCommerce.com và đơn giản hóa việc truy cập hỗ trợ kỹ thuật. Nếu bạn muốn tìm hiểu về loại dữ liệu nào được thu thập và cách sử dụng dữ liệu đó, vui lòng tham khảo Chính sách Bảo mật của chúng tôi.

Ảnh màn hình

Khối

Plugin này cung cấp 1 khối.

  • Coming Soon

Cài đặt

Yêu cầu tối thiểu

  • Yêu cầu PHP 7.4 trở lên (khuyến nghị PHP 8.0 trở lên)
  • Yêu cầu MySQL 5.5.5 trở lên, HOẶC MariaDB phiên bản 10.1 trở lên
  • WordPress 6.9 or greater
  • (Khuyến nghị) Giới hạn bộ nhớ WordPress từ 256 MB trở lên.
  • (Khuyến nghị) Hỗ trợ HTTPS.

Cài đặt tự động

Cài đặt tự động là tùy chọn dễ dàng nhất — WordPress sẽ xử lý việc truyền tệp và bạn sẽ không cần phải rời khỏi trình duyệt web của mình. Để thực hiện cài đặt tự động WooCommerce, hãy đăng nhập vào bảng điều khiển WordPress của bạn, điều hướng đến menu Plugin và nhấp vào “Thêm mới”.

Trong trường tìm kiếm, hãy nhập “WooCommerce”, sau đó nhấp vào “Tìm kiếm Plugin.” Sau khi bạn đã tìm thấy chúng tôi, bạn có thể xem chi tiết về plugin như điểm phát hành, đánh giá và mô tả. Điều quan trọng nhất tất nhiên là bạn có thể cài đặt nó! Nhấp vào “Cài đặt ngay bây giờ” và WordPress sẽ thực hiện phần còn lại.

Cài đặt thủ công

Phương pháp cài đặt thủ công yêu cầu tải xuống plugin WooCommerce và tải nó lên máy chủ web thông qua ứng dụng FTP yêu thích của bạn. Codex WordPress bao gồm hướng dẫn về cách thực hiện cài đặt thủ công tại đây.

Đang cập nhật

Các bản cập nhật tự động sẽ hoạt động trơn tru, nhưng chúng tôi vẫn khuyên bạn nên sao lưu trang web của mình.

Nếu bạn gặp sự cố với trang cửa hàng/danh mục sau khi cập nhật, thiết lập lại permalinks bằng cách truy cập WordPress > Cài đặt > Permalinks và nhấn “Lưu”. Điều đó sẽ khiến mọi thứ trở lại bình thường.

Dữ liệu mẫu

WooCommerce đi kèm với một số dữ liệu mẫu mà bạn có thể sử dụng để xem sản phẩm trông như thế nào; nhập sample_products.xml qua trình nhập WordPress. Bạn cũng có thể sử dụng trình nhập CSV hoặc của chúng tôi tiện ích mở rộng Bộ nhập CSV của chúng tôi để nhập sample_products.csv

Hỏi đáp

Tôi có thể tìm tài liệu và hướng dẫn sử dụng ở đâu?

Để được trợ giúp thiết lập và định cấu hình WooCommerce, vui lòng tham khảo Bắt đầuHướng dẫn mới dành cho chủ cửa hàng WooCommerce.

Để mở rộng hoặc tạo giao diện cho WooCommerce, hãy xem tài liệu của chúng tôi, cũng như Các phương pháp hay nhất dành cho nhà phát triển plugin.

Tôi có thể nhận trợ giúp hoặc trao đổi với những người dùng khác về WooCommerce Core ở đâu?

Nếu gặp khó khăn, bạn có thể yêu cầu trợ giúp trong Diễn đàn hỗ trợ WooCommerce bằng cách theo dõi những điều này hướng dẫn, hãy liên hệ qua Slack Cộng đồng WooCommerce , hoặc đăng trong Nhóm Cộng đồng WooCommerce trên Facebook .

Tôi có thể nhận trợ giúp ở đâu cho các tiện ích mở rộng mà tôi đã mua từ WooCommerce Marketplace?

Để được hỗ trợ về các tiện ích mở rộng trả phí từ WooCommerce Marketplace: trước tiên, hãy xem qua hướng dẫn tự khắc phục sự cố của chúng tôi. Nếu sự cố vẫn tiếp diễn, vui lòng gửi yêu cầu hỗ trợ qua bàn trợ giúp của chúng tôi. Các Kỹ sư Hạnh phúc tận tâm của chúng tôi đặt mục tiêu phản hồi trong vòng 24 giờ.

Tôi đang gặp sự cố khi đăng nhập vào WooCommerce.com – bây giờ phải làm sao?

Trước tiên, hãy khắc phục sự cố đăng nhập thường gặp bằng cách sử dụng hướng dẫn từng bước. Vẫn không làm việc? Hãy liên hệ với chúng tôi.

WooCommerce sẽ hoạt động tốt với giao diện của tôi?

Đúng! WooCommerce sẽ hoạt động với bất kỳ chủ đề nào nhưng có thể yêu cầu một số kiểu dáng bổ sung. Nếu bạn đang tìm một chủ đề có tích hợp sâu WooCommerce, chúng tôi khuyên bạn nên sử dụng Mặt tiền cửa hàng.

Làm cách nào để cập nhật WooCommerce?

Chúng tôi có hướng dẫn chi tiết về Cách cập nhật WooCommerce.

Trang web của tôi bị lỗi – tôi phải làm sao?

Bắt đầu bằng cách chẩn đoán sự cố bằng cách sử dụng khắc phục sự cố hữu ích của chúng tôi hướng dẫn.

Nếu bạn nhận thấy lỗi sau khi cập nhật giao diện hoặc plugin, có thể có sự cố tương thích giữa nó và WooCommerce. Nếu sự cố xuất hiện sau khi cập nhật WooCommerce, có thể có xung đột giữa WooCommerce và giao diện hoặc plugin lỗi thời.

Trong cả hai trường hợp, chúng tôi khuyên bạn nên chạy thử nghiệm xung đột bằng cách sử dụng Kiểm tra tình trạng (cho phép bạn tắt chủ đề và plugin mà không ảnh hưởng đến khách truy cập) hoặc khắc phục sự cố bằng cách sử dụng trang web tổ chức.

Tôi có thể báo cáo lỗi ở đâu?

Báo cáo lỗi trên kho lưu trữ WooCommerce GitHub. Bạn cũng có thể thông báo cho chúng tôi qua diễn đàn hỗ trợ của chúng tôi – hãy nhớ tìm kiếm trên diễn đàn để xác nhận rằng lỗi chưa được báo cáo.

Tôi có thể yêu cầu các tính năng, giao diện và tiện ích mở rộng mới ở đâu?

Yêu cầu các tính năng và tiện ích mở rộng mới cũng như bỏ phiếu cho các đề xuất hiện có trên bảng yêu cầu tính năng chính thức của chúng tôi . Nhóm Sản phẩm của chúng tôi thường xuyên xem xét các yêu cầu và coi chúng có giá trị cho việc lập kế hoạch sản phẩm.

WooCommerce thật tuyệt vời! Tôi có thể tham gia đóng góp không?

Vâng, bạn có thể! Hãy tham gia kho GitHub của chúng tôi và theo dõi blog phát triển để cập nhật mọi thông tin diễn ra trong dự án.

Tôi có thể tìm thấy tài liệu hướng dẫn REST API ở đâu?

Extensive WooCommerce REST API Documentation is available.

Câu hỏi của tôi không có trong danh sách này. Tôi có thể tìm thêm câu trả lời ở đâu?

Hãy xem Câu hỏi thường gặp để biết thêm.

Đánh giá

5 Tháng 8, 2026 1 trả lời
Unfortunately, the latest WooCommerce update has been one of the worst experiences we’ve had in quite some time. Immediately after updating, our site became almost unusable. Page load times increased dramatically, both the frontend and admin became painfully slow, and overall server load skyrocketed. Tasks that previously completed in seconds were taking an extremely long time, making it impossible to manage orders or provide a good customer experience. After spending considerable time troubleshooting plugins, themes, caching, and server configuration, it became clear that the issues began with the WooCommerce update itself. Rolling back to the previous version immediately restored normal performance. Updates should improve stability and performance, not bring production websites to a standstill. Hopefully the development team investigates these performance regressions quickly, as they have the potential to impact many store owners. For anyone experiencing similar symptoms, rolling back to the previous stable release may be the quickest way to get your store operational again while waiting for a fix.
4 Tháng 8, 2026 1 trả lời
I am removing everything Woocommerce but still there is PLUGIN that is impossible to delete. I HAVE THIS APP.
2 Tháng 8, 2026 1 trả lời
Le plugin fonctionne parfaitement avec WooCommerce et Yalidine. Les wilayas et communes sont bien affichées, avec le choix entre livraison à domicile et Stop Desk, et les frais de livraison sont calculés correctement. J’ai rencontré un petit problème au départ, mais le développeur a été très réactif et a rapidement publié une mise à jour qui a corrigé le problème. Merci pour votre excellent travail et votre réactivité ! Je recommande vivement ce plugin.
Đọc tất cả 4.813 đánh giá

Nhật ký thay đổi

11.0.0 2026-08-04

WooCommerce

  • Fix – Add a compatibility shim for the removed product block editor block registry to avoid third-party extension fatals. #65500
  • Fix – Add compatibility shims for the removed block templates PHP API to avoid third-party extension fatals. #65503
  • Fix – Add per-period refunds field to the legacy REST sales report so consumers can compute net sales per day or month (fixes #27552, #42694). #65467
  • Fix – Add referrerPolicy to address autocomplete fetch requests to ensure Referer header is sent even with restrictive site policies. #62967
  • Fix – Addressed cache invalidation gaps for product instance caching refresh. #65431
  • Fix – Add the WooCommerce debug group to HPOS CLI debug messages. #65701
  • Fix – Align email order item names consistently after product thumbnails. #66141
  • Fix – Align Woo Home in-app promo banner styling with updated admin card patterns. #65660
  • Fix – Allow decimal stock quantities below 1 to remain in stock when the woocommerce_stock_amount filter is overridden with floatval. The integer cast inside WC_Abstract_Product::validate_props() truncated values like 0.5 to 0, incorrectly flipping the product to “Out of stock”. #65023
  • Fix – Allow the “Regenerate the product attributes lookup table” tool (and the related abort and resume tools) to run via the REST API instead of failing with an “Invalid nonce” error. #66082
  • Fix – Allow users with the view_woocommerce_reports capability to access the Analytics Leaderboards REST endpoint and view leaderboard data. #65492
  • Fix – Avoid a critical Site Health warning when WooCommerce cannot verify uploads directory protection. #65757
  • Fix – Block add to cart: adding a product that is in the cart only inside a bundle (or only as a booking, add-on configuration, or recipient-differentiated line) now adds a new standalone line instead of showing an error or changing the existing line’s quantity. #65869
  • Fix – Blocks: Fix JS crash when the store returns a non-Error value in useCollection; convert it to a proper Error instance so the error boundary handles it gracefully. #64218
  • Fix – Blueprint: export SQL steps using a table prefix placeholder instead of the source site’s database prefix, so settings can be imported on sites that use a different table prefix. #65942
  • Fix – Cast refund amount values to float for PHP 8.1 TypeError fix. #64362
  • Fix – Check parent product visibility in get_variation AJAX endpoint before returning variation data #65209
  • Fix – Decode HTML entities in PTK pattern titles #65969
  • Fix – Disable the “Continue” button on the product CSV import page until a file is selected or a server path is entered. #66009
  • Fix – Fix ‘current-menu-item’ class not being added to the Shop page in the Page List block #65996
  • Fix – Fix – Make WC_Blocks_Utils::has_block_in_page() search nested blocks recursively. #63386
  • Fix – Fix/normalize the Store API cart/update-item route truncating decimal quantities when dispatching the cart item updated hook. #66312
  • Fix – Fix: allow empty customer session fields to override prior values in WC_Customer_Data_Store_Session #65633
  • Fix – Fix: ensure the dropdown inside Add to Cart + Options block render special character correctly. #66530
  • Fix – Fix: Improve color contrast for delete link in .wc-metabox to meet WCAG 2.2 AA requirements (SC 1.4.3) #65605
  • Fix – Fix: Sync active filters across multiple Product Filters blocks on the same page. #65622
  • Fix – Fix a Sass build error in the Cart proceed-to-checkout block and remove an invalid script module declaration from the Product Price block. #65749
  • Fix – Fix Checkout block shipping method UI after extension cart updates change the selected shipping rate. #66014
  • Fix – Fix custom place order button (shortcode checkout) never submitting the order when a shipping address block is present. Client-side validation now only counts visible invalid fields, so the collapsed “Ship to a different address?” shipping fields no longer block submission. #65933
  • Fix – Fix deferred product transient shutdown ordering before parent product sync. #66470
  • Fix – Fix deleting a newly added custom field on the order edit screen with HPOS enabled. #66132
  • Fix – Fix duplicate “Password Changed” admin notification email sent when a customer resets their password. #66145
  • Fix – Fixed incorrect order counts when custom query_args are added via the order list table prepare_items query args filter. #66207
  • Fix – Fixed quantity selector plus button size mismatch in Cart and Mini-Cart by replacing the fullwidth plus glyph with a standard plus. #65658
  • Fix – Fix email previews for orders with downloadable products. #65856
  • Fix – Fix encoded character in filter option label. #66446
  • Fix – Fixes 0 value attributes from being skipped when variation is added to cart directly #65725
  • Fix – Fixes checkout flow to not save shipping_method in customer meta #65544
  • Fix – Fix exception message info leak to non-admin API callers, null dereferences on missing parent product and order, and duplicate date query key in OrdersTableQuery. #65368
  • Fix – Fix express payment buttons missing a visible focus outline in Cart and Checkout. #65901
  • Fix – Fix false “incompatible extension” notice shown in the block editor for express payment methods whose client-side name differs from their server-side gateway ID. The compatibility check now matches on paymentMethodId (falling back to name). #66017
  • Fix – Fix fatal DB errors during upgrade on sites where HPOS was never enabled by adding a table existence check before attempting to restore the meta_key_value index on wp_wc_orders_meta. #65536
  • Fix – Fix fatal error in Analytics Customers DataStore when a plain WC_Order (rather than the Overrides\Order subclass) is passed to get_or_create_customer_from_order(), and harden date_last_active against a missing date_created by cascading through date_modified and date_paid before falling back to null. #64407
  • Fix – Fix fatal TypeError in ProductVersionStringInvalidator when a persistent object cache returns the cached variation parent ID as a string. #65496
  • Fix – Fix fatal TypeError in wc_modify_map_meta_cap() on PHP 8+ when get_userdata() returns false for an invalid user ID. #65506
  • Fix – Fix hierarchical selection and expansion in SearchListControl for multi-level categories #66023
  • Fix – Fix horizontal page overflow caused by the Settings UI tab bar including its padding outside the declared width. #65715
  • Fix – Fix insufficient color contrast on attribute placeholder text to meet WCAG 2.2 AA requirements. #65608
  • Fix – Fix My Account endpoint page titles showing the page title instead of the endpoint heading (e.g. “Orders”) in block themes when the cart is not empty. #65949
  • Fix – Fix order totals only filling half the width on the admin order screen at mobile widths. #65469
  • Fix – Fix oversized heading on the offline payment settings pages by setting the header font size explicitly instead of relying on the floating-header-scoped rule. #66044
  • Fix – Fix PHP fatal in the Product Collection upsells handler when the product reference is unresolved (editor preview), and stop the cross-sells handler from leaking unresolved product references into its results. #65909
  • Fix – Fix Product Collection block from marking the post as dirty when the editor loads. #65524
  • Fix – Fix Product Collection inner blocks when rendered inside Query Loop post content. #65637
  • Fix – Fix product description editor alignment in the classic product editor. #66087
  • Fix – Fix Quantity Selector block styles when outside the Add to Cart + Options block #66261
  • Fix – Fix refund amount validation message positioning #66248
  • Fix – Fix silent backslash corruption in Agentic Checkout buyer/address fields and Store API checkout field validation. Calling wp_unslash() on JSON request body data that is never magic-quoted was stripping real backslashes typed by the buyer. #65900
  • Fix – Fix silent backslash corruption in Store API (block checkout) address fields. Calling wp_unslash() on JSON body data that is never magic-quoted was stripping real backslashes from address_1, address_2, and other address fields. #65643
  • Fix – Fix SKU duplication corrupting hyphenated SKUs. Duplicating a product with SKU SKU-123 now correctly produces SKU-123-1 instead of SKU-124. #65423
  • Fix – Fix tax country code autocomplete to not be based on full country name #65879
  • Fix – Fix tax state code autocomplete: allow searching by state code and scope suggestions to the selected country #65882
  • Fix – Fix the daily log cleanup so it deletes all expired log files, not just the first 20. #66073
  • Fix – Fix the log entry context being written and displayed as invalid JSON (e.g. with backtraces or namespaced class names) in WooCommerce > Status > Logs. #65565
  • Fix – Fix the PSR-4 upgrade fallback fataling when a foreign Composer ClassLoader returns a non-array from getPrefixesPsr4() or a non-string from findFile(); validate both shapes so it degrades to no fallback instead. #65674
  • Fix – Fix the WooPayments test account activation flow requiring a second click when switching to live payments. #65895
  • Fix – Fix TypeError: string – string in get_formatted_order_total() on PHP 8.3 with refunded orders #65507
  • Fix – Fix undefined behavior and potential infinite loop in WC_Post_Data::do_deferred_product_sync when more products are deferred for sync while a deferred sync is running. #65664
  • Fix – For better compat, use order caps for HPOS placeholder posts. #58432
  • Fix – Generate the POS catalog feed in chunks across several Action Scheduler actions so large catalogs no longer exceed the host request timeout or Action Scheduler’s failure period mid-generation, and detect and restart stuck generation jobs that would otherwise stay pinned in progress forever. #65860
  • Fix – Hardens Store API product/review endpoints checks. #66065
  • Fix – Harden the in-place-upgrade PSR-4 fallback autoloader so its remaining unguarded paths degrade gracefully: a foreign Composer ClassLoader shape and a torn/partially-written class file mid-upgrade now leave the class unresolved instead of fataling, so a defensive class_exists() probe during an upgrade returns false rather than raising an error. #65630
  • Fix – Harden types handling in WC_Tax class get-methods. #65711
  • Fix – Hide Product Gallery arrows and thumbnails for products with one or no images in the editor. #66108
  • Fix – Hide unnecessary WooPayments business structure selection during onboarding. #66069
  • Fix – Improve cart table accessibility and spacing so screen readers announce line items as rows with the correct column headers. #65689
  • Fix – Improve contrast for product IDs in the Products list row actions. #65667
  • Fix – Improve text color contrast on the admin order edit screen so order data, line-item details, and column headers meet WCAG AA accessibility standards. #65714
  • Fix – Invalidate the correct meta cache group when the HPOS order meta corruption guard fires, so a corrupt legacy object-cache entry is re-read from the database instead of persisting across reads. #66554
  • Fix – Keep random Product Collection pagination consistent across pages. #65462
  • Fix – Lock the POS catalog feed file exclusively while writing so two overlapping generation processes can no longer interleave output into a corrupt feed. #65924
  • Fix – Log when the POS product feed directory’s .htaccess cannot be updated, and avoid overwriting an unreadable or custom file during the legacy upgrade. #65621
  • Fix – Mark grouped products add to cart table as presentational #66096
  • Fix – Match orders and stock home panel border with other cards #65864
  • Fix – Move logic to enable or disable the compatibility layer in block templates from ‘template_redirect’ to ‘template_include’ to be more accurate with the resolved template #64504
  • Fix – Omit the LIMIT clause in OrdersTableQuery when an unlimited (-1) row count is requested, matching WP_Query nopaging behavior. Fixes a datatype mismatch error when the orders query runs against a SQLite database. #64396
  • Fix – Order editing: skip reserved internal meta keys when saving order items, so they cannot be added via the “Add meta” button and stored as invisible meta. #65471
  • Fix – Preserve Settings UI pending navigation after form-post saves. #65910
  • Fix – Preserve the “Pending review” product status when exporting and re-importing products via CSV, instead of importing them as drafts. #66194
  • Fix – Prevent a fatal error in the mini-cart and checkout review-order templates when a filter hooked on woocommerce_cart_item_product returns a truthy non-product value. #65685
  • Fix – Prevent a fatal TypeError on the HPOS Orders screen when a persistent object cache returns a corrupt order or meta cache entry: invalid entries are now discarded and re-read from the database instead of breaking the page. #66506
  • Fix – Prevent customer history metabox warnings for CPT-backed orders. #65921
  • Fix – Prevent duplicate wc_product_start_scheduled_sale and wc_product_end_scheduled_sale actions from piling up in Action Scheduler when concurrent processes schedule sale events for the same product. #65709
  • Fix – Prevent email previews from showing unrelated dummy products as downloadable items. #65865
  • Fix – Prevent embedded WooPayments business verification from hanging when the Stripe loader fails. #65863
  • Fix – Prevent fatal error on System Status page when log directory does not exist (e.g. when logging is disabled). #65403
  • Fix – Prevent non-rate package metadata from invalidating cached shipping rates. #65541
  • Fix – Prevent order items from being lost when order resume fails between removing items and saving the order. #64326
  • Fix – Prevent PHP 8.5 deprecation notices when an order tax item has no matching tax rate. #65706
  • Fix – Prevent Product Collection filter resets from clearing lifted collection controls. #66022
  • Fix – Refresh product archive rewrite rules after the Shop page permalink changes. #65967
  • Fix – Register a WooCommerce-scoped Composer PSR-4 fallback autoloader so that future in-place upgrades can resolve newly-added first-party Automattic\WooCommerce classes under src/ that the in-memory Jetpack classmap snapshot would otherwise miss, preventing “class not found” fatals during the upgrade request. #65338
  • Fix – Reject attribute slugs whose taxonomy name (with the “pa_” prefix) exceeds WordPress’s 32-byte limit, instead of incorrectly counting characters. This lets users create attributes with multibyte slugs (Cyrillic, Chinese, etc.) that fit within the limit, and shows a live byte count next to the slug input so users can see how close they are to the limit before submitting. #64159
  • Fix – Reject refund IDs in Store API order authorization to prevent a fatal when wc_get_order() returns a WC_Order_Refund. #64568
  • Fix – Remove additional WooCommerce data when uninstalling with WC_REMOVE_ALL_DATA: the product_visibility taxonomy terms, the placeholder image attachment, and additional WooCommerce user meta. The Action Scheduler tables can also be removed by additionally defining the WC_REMOVE_ACTION_SCHEDULER constant. #65793
  • Fix – Remove the push notification preferences, shopper list, and customer email verification user meta when uninstalling with WC_REMOVE_ALL_DATA. #66468
  • Fix – Remove unnecessary font-weight override on the mini-cart quantity badge and use a theme-resolvable color for the count text in the checkout order summary item badge. #65647
  • Fix – Resolve downloadable file paths and Mini Cart lazy-loaded script URLs against the configured content directory and site URL instead of a hardcoded /wp-content location, so they work on non-default WordPress directory layouts (e.g. Bedrock or a custom WP_CONTENT_DIR). #65599
  • Fix – Resolve the local pickup tax location from the order’s own shipping line instead of attaching a per-call closure to woocommerce_order_get_tax_location during cart sync. #65603
  • Fix – Respect the attribute’s custom term order when creating all product variations. #65501
  • Fix – Restore reduced stock when an order transitions to failed, so inventory held by an order that reduced stock while on-hold (e.g. an accepted-but-pending SEPA/ACH payment) is released instead of staying reduced indefinitely. #66256
  • Fix – Sanitize instead of texturize the email address in the StoreAPI response #66148
  • Fix – Scope the order attribution install banner button styles to the banner, so they no longer center the content of every icon+text components button rendered on WooCommerce admin pages. #66206
  • Fix – Security hardening: pass allowed_classes => false to unserialize() in LookupDataStore to prevent PHP Object Injection via crafted cached data. #65426
  • Fix – Send cancelled order admin emails when pending orders are cancelled. #65855
  • Fix – Serialize mutations of the wc_pending_batch_processes option in BatchProcessingController with a short-lived database lock and a fresh re-read, so concurrent enqueue/dequeue/remove requests no longer clobber each other and silently drop or resurrect batch processors. #66539
  • Fix – Stop re-sending customer order email notifications when restoring orders from the trash. #65121
  • Fix – Store API: ensure the woocommerce_default_order_status filter is always removed after OrderController::create_order_from_cart(), even if order creation throws. #65417
  • Fix – Store API: limit and de-duplicate the attribute and taxonomy count requests accepted by the products/collection-data endpoint to prevent a single request from triggering an excessive number of database queries. #65420
  • Fix – Store API: validate address data on the checkout-order endpoint before it is persisted, so a rejected request can no longer modify an existing order’s address or totals. #65787
  • Fix – Structured data: emit a single Offer with the exact variation price (and inProductGroupWithID) when a variation-specific URL is requested, instead of the parent AggregateOffer price range, fixing Google Merchant “price mismatch” disapprovals. #66043
  • Fix – Tolerate settings section registry failures when resolving the Settings UI request context, preventing update-time fatals. #65975
  • Fix – Updates anchor rendering logic to not show an anchor tag when product image link is disabled #65682
  • Fix – Updates the product_shipping_class taxonomy to be private. #63146
  • Fix – Use a direct filesystem instance for log, import, product feed, and transient file operations inside the uploads directory, so they no longer fail on sites that have FS_METHOD set to an FTP-based method without complete credentials. #64666
  • Fix – Use a fixed black overlay color for the drawer instead of inheriting the theme palette. #65579
  • Fix – Use fixed colors for the coming soon footer banner instead of inheriting them from the active theme. #65580
  • Fix – Use HTTPS for all geolocation IP-lookup and geo-IP requests. Switch the IP-lookup services (ipify, ipecho, ident, tnedi) to HTTPS and replace the HTTP-only ip-api.com geo-IP provider with the HTTPS-based country.is, so visitor IP addresses are never sent over unencrypted connections. #66223
  • Fix – Use the checkout hold stock setting only for core checkout stock reservations. #66048
  • Fix – v4 Orders API: align fee/shipping can_be_refunded with the refund validator — compare on a tax-inclusive absolute basis (so discount/negative fee lines report refundable) and round to currency precision (so a fully-refunded line is not reported refundable on a sub-cent float residue). #65645
  • Fix – Variation bulk action “Set scheduled sale dates”: block submission when the sale end date is earlier than the sale start date, and clear sale dates submitted as blank instead of storing 1970-01-01. #66013
  • Fix – Warn when additional checkout fields are registered before the woocommerce_init action, which can load translations too early. #66172
  • Fix – Warn when an order status key is too long and can’t be stored. #66164
  • Fix – Improve lost connection detection on WooCommerce admin screens #66676
  • Fix – Restore 64px product thumbnails in the Mini Cart. #66747
  • Fix – Canonicalize non-string option values in Settings UI schemas so select and radio fields show the saved selection. #66933
  • Fix – Convert boolean Settings UI schema values the way the client does and canonicalize visibility values alongside their controller field. #66955
  • Fix – Preserve settings navigation when Payments sections fall back from the Settings UI. #66907
  • Fix – Prevent WordPress personal preferences from being exposed as customer metadata. #66840
  • Fix – Show the Save button when an experimental Settings UI page falls back to the legacy renderer. #66980
  • Fix – Stop the HPOS order meta corruption guard from treating extension-injected virtual meta rows (a meta_key and meta_value but no meta_id) as corrupt, which purged the meta cache and logged a warning on every read. #66837
  • Fix – Fix a fatal error on the shortcode checkout when a phone, postcode, or state validated field is registered outside the billing and shipping fieldsets. #67107
  • Fix – Temporary deactivate persistent product status counters and rollback to WordPress API usage. #67094
  • Fix – Add no-op WC_REST_Layout_Templates_Controller and WC_REST_Products_Catalog_Controller stubs so an in-place update from 10.9.x does not fatal when the 10.9 controller list instantiates a class whose file has already been swapped away. #67138
  • Fix – Revert the fixed end-prices order calculation changes from PR #63744, which caused tax-inclusive stores using the woocommerce_adjust_non_base_location_prices filter to charge the net amount on block/Store API checkout #67161
  • Fix – Revert the legacy script blocking change (#64431) that broke the classic cart and checkout on sites loading a second jQuery instance. #67363
  • Add – Add a “Send checkout recovery email” action to the order actions dropdown so merchants can manually send the Checkout Recovery email for pending or checkout-draft orders past the 1-hour abandonment threshold. #65136
  • Add – Add a contextual Marketplace recommendation card to the WooCommerce Orders screen, shown to eligible stores based on locally-evaluated promotion rules. #65970
  • Add – Add a native Settings UI page provider path for registered settings sections. #65975
  • Add – Add a new transactional abandoned cart recovery email that prompts customers to complete a pending checkout, behind the new abandoned_cart_recovery feature flag. #66393
  • Add – Add a recommendation card on the Abandoned cart recovery email settings page. #65136
  • Add – Add a resend action to the temporary-password notice on My Account so customers can request a fresh change-password email. #65821
  • Add – Add a setting to enable or disable backorder stock notification emails, plus a woocommerce_should_send_backorder_notification filter, mirroring the existing low stock and out of stock notifications. #65891
  • Add – Add a user profile control so admins can view and set a customer’s email-confirmation status. #65824
  • Add – Add a woocommerce_format_phone_number filter and a WC_Validation::is_phone_format() method. #66122
  • Add – Add CurrencyPosition enum class for woocommerce_currency_pos option values and adopt it in the Store API and Marketing Campaigns REST API. #66128
  • Add – Add customer email verification, letting shoppers securely link past guest orders to their account once they confirm ownership of their email address. #65822
  • Add – Add DimensionUnit enum class for woocommerce_dimension_unit option values and implement it across the codebase. #66064
  • Add – Added Tax extensions recommendations. #65786
  • Add – Add image_size query parameter to the products and product variations REST API endpoints, allowing consumers to request a specific registered WordPress image size. #64009
  • Add – Add option disabling filter drawer on smaller screens. #65671
  • Add – Add OrderUtil::custom_orders_table_data_sync_is_enabled() so extensions can cheaply check whether HPOS data sync is enabled without running the expensive is_custom_order_tables_in_sync() query. #65649
  • Add – Add refund preview endpoint (POST /wc/v4/refunds/preview) for server-side refund calculation #65335
  • Add – Add styling for settings UI shell header badges. #65825
  • Add – Add TaxDisplayMode enum class for woocommerce_tax_display_shop/cart option values and implement it across the codebase. #65812
  • Add – Add the foundation for POS staff management: an experimental point_of_sale_staff feature flag (off by default), a flag-gated orchestrator, and the pos_* capability access model that keys POS access on holding any pos_* WP capability. No runtime surface yet; the staff endpoint, attribution, and admin UI register behind the flag in follow-up changes. #65657
  • Add – Add theme.json support to breadcrumbs block #65460
  • Add – Add the POS preset layer to the capability model: capability bundles for the Cashier, Manager, and Admin presets, assigned or cleared per user via woocommerce_pos_* capabilities (never WP roles), with the assigned preset recorded in user meta and cleaned up on uninstall. Behind the off-by-default point_of_sale_staff feature flag. #65661
  • Add – Add the woocommerce_variable_product_taxes_influence_price filter. #65394
  • Add – Add Webflow platform to the CLI products migrator. #64866
  • Add – Add WeightUnit enum class for woocommerce_weight_unit option values and implement it across the codebase. #64422
  • Add – Add woocommerce_term_recount_product_count filter to _wc_term_recount. #64374
  • Add – Add woocommerce_validate_phone filter to allow customizing phone number validation #65817
  • Add – Allow POS catalog product feed files to be served by enabling file access on the feed directory while preventing directory listing. #65563
  • Add – Analytics: list failed order imports in the Import historical data section with a retry action. #65509
  • Add – Customers can now unsubscribe from Checkout Recovery emails via a one-click link in the email footer. #65136
  • Add – Inject default sibling-section navigation into native Settings UI page schemas that omit shell.sectionNavigation. #65975
  • Add – Make per-line refund_total optional on POST /wc/v4/refunds. When omitted, the backend computes the tax-inclusive refund total from the order line item’s unit price × quantity. The legacy explicit form (refund_total without quantity) is preserved for v3-style callers. #65439
  • Add – POST /wc/v4/refunds/preview: accept refund_total per line item for partial-amount previews (quantity now optional when refund_total is provided). For the quantity and tax-inclusive refund_total forms, preview and create split tax by the line’s stored total/tax ratio and round amounts identically, so a previewed amount matches the created refund to the cent. #65645
  • Add – Register a GDPR privacy exporter and eraser for shopper lists so admin Export/Erase Personal Data tools cover saved-for-later and wishlist data. #65251
  • Add – Schedule the abandoned cart recovery email to send 2 hours after a pending order is created, and cancel the pending send when the order leaves the pending status. #66393
  • Update – Customer email verification now confirms via a one-time login-gated link instead of a 6-digit code. #65971
  • Update – Deprecate the Point of Sale feature flag and remove its toggle from WooCommerce settings; POS-related functionality (settings page, product visibility, and transactional emails) is now always enabled. The flag setting remains readable via the REST API for mobile app compatibility. #65573
  • Update – Load the WordPress Design System tokens stylesheet on WooCommerce settings pages so Settings UI styles consume real design tokens. #66542
  • Update – Move several WooCommerce admin status notices to Site Health and show regeneration progress in status tools; deprecate the related WC_Admin_Notices/WC_Regenerate_Images notice callbacks and stop honoring the woocommerce_hide_* notice dismissal filters #64758
  • Update – Remove @woocommerce/create-product-editor-block package #65435
  • Update – Remove the deprecated product block editor feature, package, routes, assets, and extension APIs. #65500
  • Update – Render settings UI section cards with WordPress Design System components behind the settings-ui feature flag. #66456
  • Update – Replace PanelBody with ToolsPanel in All Reviews, Reviews by Category, and Reviews by Product inspector controls. #65799
  • Update – Replace PanelBody with ToolsPanel in Stock Filter inspector controls. #65625
  • Update – Replace PanelBody with ToolsPanel in the PageSelector component. #64935
  • Update – Update Algeria states from 48 to 58 wilayas; also correct DZ-11 spelling. #65385
  • Update – Update Product Filter Status block labels to use availability wording. #65803
  • Update – Update product publish panel catalog visibility layout and extension row ordering. #66080
  • Update – Update the Action Scheduler package to version 4.0.0. #65790
  • Update – Update the WordPress package catalog to WordPress 6.9 package versions. #65481
  • Update – Use the standard WordPress UI Notice for payment method eligibility notices in WooPayments onboarding. #66016
  • Update – Settings UI: hide the shell header for pages registered at the top level of settings, which keep the classic section links and a save button at the bottom of the page. Payments drill-down pages show the header with breadcrumbs in place of the top-level settings tabs. #66662
  • Dev – Add delivery-agnostic ProductShapeMapperInterface to the ProductFeed framework, deprecating ProductMapperInterface in its favor. #65720
  • Dev – Add internal helper methods on Refunds\DataUtils to support the upcoming refund preview endpoint. #65334
  • Dev – Add to Cart + Options: add extra e2e tests to cover skipped unit tests #66118
  • Dev – Audit Action Scheduler APIs usage. #65831
  • Dev – Bump grunt-contrib-cssmin to 4.x (clean-css 5) so the admin CSS pipeline preserves @container at-rules. #65842
  • Dev – Deprecate the Automattic\WooCommerce\Blocks\QueryFilters class. #65598
  • Dev – Fix product-reviews “can delete a product review” E2E flake by waiting for the trash AJAX to commit before navigating to the Trash view. #65911
  • Dev – Fix the Blocks e2e nightly suite: mount the released plugin at the canonical woocommerce folder via a wp-env mapping, instead of letting wp-env name the plugin folder after the release zip (e.g. woocommerce-trunk-nightly), which broke the test setup’s plugin-path assumptions. The generated test translations are mapped into the plugin’s languages directory the same way. Also resolve the active plugin path (WC_ABSPATH) for the sample product import. #65798
  • Dev – Force immediate analytics import mode in the analytics-data E2E spec so its orders import deterministically regardless of the store’s scheduled-import default; test-only, no changes to shipped code. #66097
  • Dev – Harden Blocks non-null assertion lint rule to error. #66010
  • Dev – Migrate Blocks e2e leaf utils (constants, test, types, wp-cli, get-test-translation, request-utils, navigation) and content-templates into the Core e2e suite under a blocks/ namespace; test-only, no changes to shipped code. #65628
  • Dev – Migrate Blocks e2e non-module assets (themes, test plugins, test data, lint rules) into the Core e2e suite under a blocks/ namespace; test-only, no changes to shipped code. #65442
  • Dev – Migrate Blocks e2e page-object utils (admin, editor, frontend, local-pickup, mini-cart, performance, shipping) into the Core e2e suite under utils/blocks/; test-only, no changes to shipped code. #65571
  • Dev – Migrate Blocks e2e specs into the Core e2e suite under tests/blocks and add a core testIgnore guard so the core e2e project does not collect them; the Blocks suite keeps running them from the new location. Test-only, no changes to shipped code. #65670
  • Dev – Migrate offline payment settings forms to DataForm. #65731
  • Dev – Mount E2E helper plugins as a directory and provision wp-cli.yml in-container so single-file Docker mounts no longer surface as empty files under gRPC FUSE. #65807
  • Dev – Prepare Marketplace JSX and …