Staging サイト上のすべての WooCommerce 注文と顧客データを削除する方法 | WooCommerce 取引を削除

開発者に引き渡す前に Staging サイトからすべての WooCommerce 注文とそのデータを削除したい場合は、次の 2 つのアプローチのいずれかに従えます:

Staging サイトで SQL スクリプトを実行する

Staging サイトで以下の SQL スクリプトを実行すると、WooCommerce の注文とそのメタデータも削除されます

SQL
DELETE wpstg0_posts, wpstg0_postmeta, wpstg0_woocommerce_order_items, wpstg0_woocommerce_order_itemmeta
 FROM wpstg0_posts
 LEFT JOIN wpstg0_postmeta ON wpstg0_posts.ID = wpstg0_postmeta.post_id
 LEFT JOIN wpstg0_woocommerce_order_itemmeta ON wpstg0_postmeta.post_id = wpstg0_woocommerce_order_itemmeta.order_item_id
 LEFT JOIN wpstg0_woocommerce_order_items ON wpstg0_posts.ID = wpstg0_woocommerce_order_items.order_item_id
 WHERE wpstg0_posts.post_type = "shop_order"
 AND wpstg0_posts.post_date < '2022-07-14';

wpstg0_ を Staging サイトの正しいテーブルプレフィックスに、2022-07-14 を注文を削除したい基準となる現在の日付に変更する必要があります。

この SQL コマンドを関数でラップして、「wpstg.clone_first_run」フィルターを使って Staging サイトのクローン直後に実行することもできます。

PHP
 add_action( 'wpstg.clone_first_run', array($this, 'wpstg_execute_after_cloning' ), 10);
 function wpstg_execute_after_cloning() {
 // add your code
 }

このフィルターは、WP STAGING Hooks Plugin で使うか、このガイドに従って標準的な mu-plugin として使えます。

Staging サイト作成時に WooCommerce 注文とそのメタデータを除外する

クローン処理の最初の段階で、WooCommerce 注文とそのメタデータを除外することもできます。
そのためには、次のフィルターを使えます:

PHP
function queryCloningRows($filters) {
 $myFilters = [
 // Clone only posts which do not belong to post_type shop_order
 'wp_posts' => [
 'post_type' => [
 'operator' => 'NOT LIKE',
 'value' => 'shop_order'
 ]
 ],
 // will filter postmeta depending upon filtered data in wp_posts, see above wp_posts filter
 'wp_postmeta' => [
 'join' => [
 'table' => 'wp_posts',
 'primaryKey' => 'ID',
 'foreignKey' => 'post_id',
 ]
 ],
 'wp_woocommerce_order_items' => [
 'join' => [
 'table' => 'wp_posts',
 'primaryKey' => 'ID',
 'foreignKey' => 'post_id',
 ]
 ],
 'wp_woocommerce_order_itemmeta' => [
 'join' => [
 'table' => 'wp_posts',
 'primaryKey' => 'ID',
 'foreignKey' => 'post_id',
 ]
 ]
 ];
 return array_merge($filters, $myFilters);
 }
 add_filter('wpstg.cloning.database.queryRows', 'queryCloningRows');

このフィルターは WP STAGING Hooks Plugin で使うか、このガイドに従って標準的な mu-plugin として使えます。

注: 上記のアプローチに従うと、Staging サイトからすべての注文と関連データが削除されます。つまり、Staging サイトを本番サイトに Push できなくなります。Push してしまうと本番サイトからも WooCommerce の注文が削除されてしまうからです。したがって、これらはテストや開発目的でのみ使用してください (開発者の作業完了後、変更を本番サイトに手動でコピーする意志がある場合)。

関連記事

Updated on 5月 23, 2026

Alaa Salama

著者: Alaa Salama

私は10年以上にわたりサポート分野で働いてきました。テクノロジーの中でも、人に寄り添う部分に大きなやりがいを感じているからです。複雑なWordPressの問題を解決するときも、ワークフローを効率化するためにカスタムプラグインやコードスニペットを開発するときも、私の目標は常に摩擦を減らし、人々がよりスマートに働けるようにすることです。自分が作った解決策によって、誰かの一日が少しでも良くなるのを見ることほど嬉しいことはありません。

オフラインのときでも、たいてい何かの「内部」をいじっています。サーバーの最適化やDIY電子工作に情熱を持っており、自由な時間にはスマートホームのプロジェクトやハードウェアの修理に取り組むことがよくあります。特に大切にしているのは、子どもたちと自宅の作業場で過ごす時間です。家の修理からクリエイティブなプロジェクトまで一緒に取り組みながら、長く使えるものを作る楽しさを育んでいます。