WC 8.9 での Jetpack Boost とチェックアウトブロックの競合の問題

Developer Advisory: Resolving Jetpack Boost and Checkout Blocks Conflicts in WC 8.9 ( Luigi Teschio May 15, 2024 )」という記事の日本語訳です。

簡単に要約すると JetPack Boost というプラグインを有効にするとチェックアウトブロックが誤動作するということです。また、チェックアウトブロックもエラーメッセージが出て決済に支障が出ているようです。そして、連続して「Dot Release: WooCommerce 8.9.1 is coming soon with fixes ( pia8cMay 15, 2024 )」という記事が公開されて、一旦 8.9 のリリースを中止し8.9.1がリリースされるまで待ってくださいという状態になっています。以下、二つの投稿を日本語に訳してみました。

なので、自動アップデートで8.9 になっている方でチェックアウトブロックを使っている方は、一旦 8.8.3 に戻すことをお勧めします。ショートコードを利用されている方には影響は確認されていないようですので、そのままでも特には問題ないと思います。

ここから====

概要 WooCommerce 8.9 のリリース後、以下の問題がユーザーから報告されました:

  • Jetpack Boost の「Concatenate JS」機能がカートブロックやチェックアウトブロック、ミニカートブロックを破壊しています。
  • チェックアウトブロックで警告が表示されます:Warning: foreach() argument must be of type array|object, string given when a guest session is loaded after upgrading to 8.9.

現在、以下の問題を調査中です。進捗状況はここで確認できます:

  • チェックアウトブロックでの警告 (#47485)
  • WC 8.9 + Jetpack Boostの「Concatenate JS」機能でカート&チェックアウトブロックが機能しない (#47492)
  • 一定の条件下でJetpack Boostの「Concatenate JS」が有効な場合、ミニカートブロックが読み込まれない (#47495)

これが自分に影響するかどうかを確認する方法

カート、チェックアウト、またはミニカートブロックを Jetpack Boost の「Concatenate JS」機能と共に使用しており、WooCommerce 8.9 にアップグレードした場合、お客様がこれらのブロックを操作すると致命的なエラーが発生する可能性があります。

ストアでチェックアウトブロックを使用していて、最近 WooCommerce 8.9 にアップグレードした場合、ログに複数の警告が表示される可能性があります:

Warning: foreach() argument must be of type array|object, string given in wp-content/plugins/woocommerce/includes/data-stores/class-wc-customer-data-store-session.php on line 152

取るべき対策

これらの問題が発生している場合、以下の対策を講じてください。

カート、チェックアウト、またはミニカートブロックの致命的なエラーが発生している場合:

  • Jetpack Boost をバージョン3.3.1に更新してください。

ログに /class-wc-customer-data-store-session.php に関する複数の警告が表示される場合:

  • この問題はストアや顧客にリスクをもたらしません。近日中にリリース予定のポイントリリースで修正される予定です。

次に何が起こるか

WooCommerce 8.9.1 を近日中にリリースし、2つ目の問題を修正する予定です。この件についてはWooCommerce Developer Blog で発表します。

1つ目の問題については、Jetpack Boost を最新バージョンに更新することで解決できます。

ここから=====

WooCommerce 8.9 のリリース後、以下の問題がユーザーから報告されました:

  • Jetpack Boost の「Concatenate JS」機能がカートブロックやチェックアウトブロック、ミニカートブロックを破壊しています。
  • チェックアウトブロックで警告が表示されます: Warning: foreach() argument must be of type array|object, string given when a guest session is loaded after upgrading to 8.9.

その結果、現在の安定版タグを WooCommerce 8.8.3 に戻しました。

開発者アドバイザリー: Jetpack Boost とチェックアウトブロックの競合を解決する方法についての詳細はこのページの上部をご覧ください。

WooCommerce 8.9.1では何が変わるのか?

WooCommerce 8.9.1 では、チェックアウトブロックに関連する PHP 警告の問題に対処します。

進捗状況の確認

現在、次の問題に対処するために積極的に取り組んでいます。この点リリースに含まれる予定です:

  • チェックアウトブロックが 8.9 にアップグレード後に警告を表示する問題 (#47485)
  • WC 8.9 + Jetpack Boost の「Concatenate JS」機能が有効な状態でカート&チェックアウトブロックが機能しない問題 (#47492)
  • Jetpack Boost の「Concatenate JS」機能が有効な特定の条件下でミニカートブロックが読み込まれない問題 (#47495)

更新情報

2024年5月16日追加:

🛠️ Jetpack Boostの「Concatenate JS」機能に関する問題について、Jetpack Boost のアップデートで修正されています。Jetpack Boost をバージョン3.3.1に更新して、WC 8.9 + Jetpack Boost の「Concatenate JS」機能でカート&チェックアウトブロックが機能しない問題を解決してください。

バージョン8.8.3に戻すべきか?

8.9 で見つかった問題はすべてのユーザーに影響するわけではありません。開発者アドバイザリーを確認して、WooCommerce 8.8.3 に戻す必要があるかどうかを確認してください。