説明
WooCommerce は WordPress 向けのオープンソースの eコマースプラットフォームです。
WooCommerce のコアプラットフォームは自由で柔軟性があり、グローバルコミュニティによって強化されています。 オープンソースがもたらす自由により、ストアのコンテンツとデータは将来にわたってお客様所有となります。
起業する場合も、実店舗のある小売店をオンラインに移行する場合も、クライアントのサイトを開発する場合も、コンテンツとコマースが調和するストアには WooCommerce をご利用ください。
- 自分のブランドと業界に適したテーマを使って、美しく魅力的なストアを作成できます。
- 最適化されたお買い物カゴエクスペリエンスで、コンバージョン率を高め、収益を増加させます。
- モジュール式の商品ブロックを使用すると、商品ページを数分でカスタマイズできます。
- 物理的な商品、デジタル商品、商品のバリエーション、カスタム構成、クイックダウンロード、アフィリエイトアイテムを紹介できます。
- 開発者検証済みの拡張機能を使用して、サブスクリプション、予約、メンバーシップを販売しましょう。
- WordPress’ SEO advantage を活用して、検索結果のトップに躍り出ましょう。
- スケーリング可能なプラットフォームに構築できます。容量の多いストアに対応する柔軟な eコマースを実現します。
販売に必要なすべてのツール
組み込みツールと人気の統合を使って、ビジネス活動を効率的に管理できます。 多くのサービスは無料で、オプションの設定ウィザードからワンクリックで追加できます。
- お支払いの受け取り方法を選びます。 Woo Payments を利用すると、ストアにいながら支払いを快適に管理できます (米国、イギリス、アイルランド、オーストラリア、ニュージーランド、カナダ、スペイン、フランス、ドイツ、イタリアで利用可能)。 Stripe、PayPal、Square をはじめとする100以上の決済方法に対応しており、クレジットカード、モバイルウォレット、銀行振込、現金を安全にご利用いただけます。
- 配送オプションを設定します。 ダッシュボードから直接 USPS ラベルを印刷でき、WooCommerce Shipping で集荷を予約することもできます (米国のみ)。 UPS や FedEx などの有名な輸送会社と連携しているほか、お客様の地域に合わせたさまざまな配送、在庫、フルフィルメントのソリューションをご利用いただけます。
- 消費税を簡略化します。 WooCommerce Tax または同様の統合サービスを追加すると、自動計算を実現できます。
ビジネスを成長させ、機能を追加し、どこにいてもストアをモニタリングする
WooCommerce は本気のビジネスをサポートします。 WooCommerce に組み込まれている、パワフルで柔軟性のある一元化されたダッシュボードを使って、最も重要なパフォーマンスメトリクスを常に把握しましょう。
Google 広告、HubSpot、Mailchimp、Facebook と統合して、さまざまなマーケティングチャネルとソーシャルチャネルで読者を増やしましょう。 いつでもダッシュボード内のマーケティングハブから、成功につながる新しいアイデアとヒントを確認できます。
WooCommerce マーケットプレイスにある数百もの無料および有料の拡張機能を使って、ストアの機能を強化できます。 WooCommerce の開発者が、新しい拡張機能の一つひとつを検証し、既存の拡張機能も定期的に見直して、マーケットプレイスの品質基準を維持しています。 WooCommerce ではストアビルダーのストアの構築を適切にサポートする製品を積極的に募集しています。
無料の WooCommerce モバイルアプリ (Android および iOS) でどこででもストアを管理できます。 耳寄り情報: 商品が売れるたびに鳴る、ちょっとクセになる通知音 (キャッシュレジスターの効果音) に耳を澄ませてみませんか。
将来にわたって自分のストアデータを所有、管理する
WooCommerce なら、あなたのデータはあなたのものです。 いついかなるときも。
お客様が当社との使用データの共有を選択された場合、お客様のデータは確実に匿名化され安全に保護されます。 いつでもストアに影響を及ぼすことなくオプトアウトできます。
ホストされた eコマースソリューションとは異なり、WooCommerce ストアデータはいつまでも失われません。すべてのコンテンツを、お客様が選んだあらゆるプラットフォームにエクスポートできます。 制限はありません。
WooCommerce が開発者に選ばれる理由
開発者は WooCommerce を利用してストアを作成、カスタマイズ、スケールすることでクライアントの仕様を正確に満たし、追加機能やカスタムソリューションによって強化することができます。
- フックとフィルターを活用して機能を変更または作成します。
- 堅牢な REST API と Webhook を使用してほぼすべてのサービスを統合します。
- React を使用してカスタムコンテンツのブロックを設計、構築する。
- プラグインのコアコードのあらゆる点を検査、修正します。
- 超高速 CLI で開発をスピードアップします。
コアプラットフォームは厳密にテストされ、また多くの場合、複数のタイムゾーンを超えて働く専任の開発チームがいます。 包括的なドキュメントは、リリースごとに更新され、ストアの要件どおりに構築できるようにしています。
成長中の国際的なコミュニティに参加する
WooCommerce には急速に成長する意欲的な大規模コミュニティがあり、事業者をサポートしています。
世界各地で WooCommerce 勉強会を開催しており、無料でご参加いただけるほか、運営に携われます。 このようなイベントは他の人から学び、専門知識を共有し、同じような関心を持っている人とつながる、すばらしい方法です。
WooCommerce は世界中で開催されている WordCamp に定期的に参加しています。皆様にお会いできることを楽しみにしています。
寄付と翻訳
WooCommerce の開発と支援には Automattic および Jetpack と WordPress.com の創業メンバーが携わっています。 また多くの個人寄付者にもご協力いただいています。あなたもぜひご参加ください。 WooCommerce GitHub リポジトリを訪問いただき、どのような協力方法があるかご確認ください。
現在、WooCommerce はデンマーク語、ウクライナ語、ペルシャ語など、複数の言語に翻訳されています。 ロケールを追加して WooCommerce のローカリゼーション推進をお手伝いいただける場合、translate.wordpress.org のサイトをご覧ください。
WooCommerce.com への接続
WooCommerce.com にストアを接続して、WooCommerce Marketplace のサブスクリプションを管理し、WordPress 管理画面を離れることなく製品の更新を受け取ることができます。 また接続によって WooCommerce.com から購入した製品を直接インストールでき、テクニカルサポートへのアクセスが合理化されます。 収集されるデータとその使用方法の詳細については、プライバシーポリシーを参照してください。
ブロック
このプラグインは1個のブロックを提供します。
- Coming Soon
インストール
最小限必須条件
- PHP 7.4以降が必要です (PHP 8.0以降を推奨)
- MySQL 5.5.5以降または MariaDB バージョン10.1以降が必要です
- WordPress 6.9以上
- (推奨) WordPress のメモリ制限が256 MB 以上。
- (推奨) HTTPS 対応。
自動インストール
自動インストールは最も簡単なオプションです。WordPress がファイル転送を処理するため、ユーザーは Web ブラウザーから離れる必要がありません。 WooCommerce を自動インストールするには、WordPress ダッシュボードにログインし、「プラグイン」メニューに移動して「新規追加」をクリックします。
検索フィールドに「WooCommerce」と入力してから、「プラグインの検索」をクリックします。WooCommerce を見つけたら、ポイントリリース、評価、説明などの詳細を表示できます。また最も重要な点ですが、もちろんこちらからもインストールできます。「今すぐインストール」をクリックすると、WordPress がインストールを実行します。
手動インストール
手動インストール方法は、 WooCommerce のプラグインをダウンロードして、お気に入りの FTP アプリケーションを介して Web サーバにアップロードして行ないます。WordPress codex に記載のあるプラグインのインストール方法をご覧ください。
更新
自動更新は円滑に機能しますが、念のためサイトをバックアップするようお勧めします。
もし、アップデート後にショップ/カテゴリーページで問題が発生した場合は、 WordPress > 設定 > パーマリンク設定にて「保存」を押して最新の状態にする必要があります。それで通常の状態に戻るはずです。
サンプルデータ
WooCommerce に備わっているサンプルデータを使用して、商品がどのように表示されるかを確認し、sample_products.xml を WordPress インポーターでインポートできます。 中核的なツールである CSV インポートツールまたは CSV Import Suite の拡張機能を使用して、sample_products.csv をインポートすることもできます。
FAQ
-
WooCommerce のドキュメントやユーザーガイドはどこで見れますか ?
-
WooCommerce の設定と構成については、スタートガイドと WooCommerce ストアの新規所有者ガイドを参照してください。
WooCommerce の拡張やテーマについては、ドキュメントとプラグイン開発者のベストプラクティスを参照してください。
-
どこで WooCommerce コアについてサポートしてもらったり、ほかのユーザーと話をしたりできますか ?
-
お困りの場合は、こちらのガイダンスに沿って WooCommerce サポートフォーラムで質問をするか、WooCommerce Community Slack に問い合わせるか、Facebook の WooCommerce Community グループに投稿してください。
-
WooCommerce マーケットプレイスで購入した拡張機能のサポートはどこで受けられますか ?
-
WooCommerce マーケットプレイスで購入した有料の拡張機能に関するサポートは、まずセルフサービストラブルシューティングガイドをご確認ください。 問題が解消されない場合は、お手数ですがサポートチケットをヘルプデスクに送信してください。 専任のサポートスタッフが24時間以内に対応いたします。
-
WooCommerce.com にログインできません。どうすればよいですか ?
-
まず、この役に立つステップガイドを使って、一般的なログインの問題をトラブルシューティングします。 それでも問題が解消されない場合は、 サポートにお問い合わせください。
-
私のテーマで WooCommerce は動作しますか ?
-
はい ! WooCommerce ではどのテーマでも使えますが、追加のスタイル設定が必要になる場合があります。 細かく WooCommerce との連携に対応したテーマをお探しの場合は、Storefront をおすすめします。
-
WooCommerce はどのようにアップデートすればよいですか ?
-
詳しいガイドは WooCommerce の更新方法をご覧ください。
-
サイトが壊れてしまいました。どうすればよいですか ?
-
役に立つトラブルシューティングガイドを使って問題の診断から始めましょう。
テーマやプラグインを更新した後にエラーが発生した場合、WooCommerce との間に互換性に問題がある可能性があります。 WooCommerce を更新した後に問題が発生した場合、WooCommerce と古いテーマやプラグインが競合している可能性があります。
どちらの場合も、訪問者に影響を及ぼすことなくテーマとプラグインを無効にできる Health Check を使用して競合テストを実行するか、ステージングサイトを使って問題のトラブルシューティングを行うことをおすすめします。
-
どこでバグを報告できますか ?
-
WooCommerce GitHub リポジトリのバグを報告してください。 サポートフォーラムからも報告できます。フォーラムを検索して、エラーがすでに報告されていないか確認してください。
-
新機能、テーマ、拡張機能のリクエストはどこでできますか ?
-
新機能および拡張機能のリクエスト、既存の提案への投票は、公式の機能リクエストボードで行ってください。 製品チームが定期的にリクエストを確認し、それが製品計画において有用であるかを検討します。
-
WooCommerce は素晴らしい ! 私は貢献できますか ?
-
はい、できます。 GitHub リポジトリを利用し、開発ブログをフォローすればプロジェクトで起きていることすべての最新情報を手に入れることができます。
-
Rest API のドキュメンテーションはどこにありますか ?
-
Extensive WooCommerce REST API Documentation is available.
-
この質問リストでは解決できません。 答えはどこで見つけられますか ?
-
詳細はよくある質問をご覧ください。
評価
貢献者と開発者
WooCommerce はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。
貢献者-
Automattic
-
WooCommerce
-
Mike Jolley
-
James Koster
-
Claudio Sanches
-
Rodrigo Primo
-
Peter Fabian
-
Vedanshu – Urumi.AI
-
Julia Amosova
-
obliviousharmony
-
Néstor Soriano Vilchez
-
sadowski
-
Ron Rennick
-
royho
-
Barry
-
Claudiu Lodromanean
-
Tiago Noronha
-
Kelly Choyce-Dwan
-
levinmedia
-
Albert Juhé Lluveras
-
Darren Ethier (nerrad)
-
Joshua Wold
-
Nadir Seghir
-
Rua Haszard
-
Michael P. Pfeiffer
-
Niels Lange
-
Raluca
-
tjcafferkey
-
danielwrobert
-
patriciahillebrandt
-
albarin
-
Tung Du
-
Manish Menaria
-
Karol Manijak
-
sunyatasattva (a11n)
-
Alexandre Lara
-
Luigi Teschio
-
Danny Dudzic
-
Sam
-
Alex Florisca
-
opr18
-
tarunvijwani
-
Paulo Arromba
-
Saad T.
-
Boro Sitnikovski
-
Gerhard Potgieter
-
Corey McKrill
-
Jorge A. Torres
-
Leif Singer
-
Ján Mikláš
変更履歴
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
refundsfield 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_amountfilter is overridden withfloatval. The integer cast insideWC_Abstract_Product::validate_props()truncated values like0.5to0, 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_reportscapability 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
namediffers from their server-side gateway ID. The compatibility check now matches onpaymentMethodId(falling back toname). #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-123now correctly producesSKU-123-1instead ofSKU-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_classtaxonomy 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_refundedwith 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_recoveryfeature 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_stafffeature flag (off by default), a flag-gated orchestrator, and thepos_*capability access model that keys POS access on holding anypos_*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-defaultpoint_of_sale_stafffeature flag. #65661 - Add – Add the
woocommerce_variable_product_taxes_influence_pricefilter. #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_totaloptional 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
woocommercefolder 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 …






