WooCommerceでグローバル変数$statesが取得できなくなったので回避策を

タイトルの通り、WooCommerceのバージョン3.6から、グローバル変数の$statesが取得できなくなりまして、カスタマイズしている部分だったり、プラグインだったりで問題が起こっているので、回避策を残しておくのです。

書き換えるところ

基本的には該当箇所をそのまま書き換えればOKだけれど、プログラム的に問題になたりする可能性も無きにしもあらずなので、バックアップとテストはやりましょう。

before

global $states;

after

$countries_obj = new WC_Countries;
$states = $countries_obj->get_states();

具体的にどんなところで不具合が?

わたしの場合、「WooCommerce for Japan」の住所自動入力で不具合が起こりまして、上のような書き換えをおこなって運用する形になってます。

ほかにも、外部システムとの自動連携とかそういうので不具合が起こっていたりすると思うので、なんか住所周りおかしいぞと思ったら、気にかけてみるといいです。

注意事項

今回の場合、プラグインを直接書き換える必要があるので、アップデートしたら元に戻っちゃいます。
変更箇所を忘れないようにしましょう。

書き換える際も、セミコロン忘れとかよくやるのでテスト環境とかそういうところで試してから、本番環境にアップするようにしましょうねー

ただの健忘録でした ヾ(・д・。)マタネー♪

この記事を書いた人

たぬき@首席技監

アーシタンと蔵守の技術周り担当。主にワードプレス(WordPress)、サーバ管理なんかをやっています。