これは気づかない。Welcartの不要残骸データをデータベースから削除する。

あるWelcart ECサイトのpostmetaテーブルを見ていたら、謎なmeta_keyが目に入った。
「_iu4w_meta」
商品件数が約3,000件のサイトで2,500件ほどある。

調べてみると、Image Uploader for Welcartプラグインが使っていたデータだ。
https://ja.wordpress.org/plugins/image-uploader-for-welcart/
https://github.com/WPPlugins/image-uploader-for-welcart/blob/master/image-uploader-for-welcart.php

Welcartはver2.6で画像登録方法が変わった。新しい方法で登録するならImage Uploader for Welcartプラグインは不要である。
https://www.welcart.com/archives/tips/tips-20220325

上記リンク先ページでは、Welcart開発元が、新しい画像登録方法に対応するデータへのコンバーター(WCEX Data Converter for Image Uploader)を用意してくれている。
ver2.6にアップデートした際、このコンバーターにお世話になった記憶がある。

コンバート後は、Image Uploader for Welcartプラグインもコンバーターも削除した。
だが、どちらも「meta_key:_iu4w_meta」データの削除まではしてくれない。不要になったデータが残されたままになる。

データを見ていて1つ疑問がわき起こる。
最新の商品データにまで「_iu4w_meta」が付いていることだ。
Image Uploader for Welcartプラグインは削除済みなので、削除後に登録した商品にまで付くはずがない。なぜだろう?

答えはクライアントとのやり取りを思い出してみて分かった。Welcartの商品編集ページに標準で備わっているduplicate機能(「複写して新規」)である。
ほとんどの場合、このクライアントは「複写して新規」機能で新しい商品を登録しているそうだ。
duplicate機能は元の商品データをそのまま複写する。複写元の商品に既に不要になっている「_iu4w_meta」データが付いていれば、新しい商品にも付いてくるわけだ。

というわけで、商品が増えるたびに不要なデータも増えていくので、すべて削除した。
データベースを直に注意して見ない限り気づかなかったと思う。

SELECT *
FROM {$wpdb->postmeta}
WHERE meta_key = '_iu4w_meta';
DELETE FROM {$wpdb->postmeta}
WHERE meta_key = '_iu4w_meta';

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です