WooCommerceの送料について
-
地域ごとに送料を設定したいと思い、その様に設定しました。
テストしたら北海道と東京のみうまく計算がされなかったため色々調べたところ、
プラグイン内「class-wc-address-field-4jp.php」に日本の地域が書かれている事を発見しました。
該当部分を確認すると、北海道と東京の記載が抜けていました。
もしかしたらそのせいなのかと思ったのですが、例えば全国送料一律設定にすると
北海道も東京も送料が表示されるので、何が原因で北海道と東京の送料が取得出来ないのか不明のため
悩んでおります。同じ様に送料が取得できない方はいらっしゃいますか?
また、この現象の対処法をご存知の方がいらっしゃいましたら、ぜひお知恵をお貸しください。よろしくお願いいたします。
-
使っていないので正確性に書けますが、WooCommerce For Japan という WooCommerce を拡張するプラグイン
(https://ja.wordpress.org/plugins/woocommerce-for-japan/)
の話ですよね。それなら
https://ja.wordpress.org/plugins/woocommerce-for-japan/#developers
をある貢献者に連絡をとって聞いてみるとよいと思います。ご指摘の部分では確かに東京と北海道がないですが( fuction wc4jp_status )、そこに woocommerce_states フックを利用して追加したとしても、正しく動作するかわからないためです。
kimipooh さんの提案と同じく、WooCommerce 日本版のフォーラムにも質問していただければ有意義です。トピックとして既出事項としてあるかご確認ください。
kimipooh 様 CG 様
ご返答ありがとうございます。
すでにWooCommerce For Japanの貢献者様にはお問い合わせさせていただいたのですが
色々な所で聞いてみたく、こちらのフォーラムにもトピを立たせていただいた次第です。ご意見の通り、 WooCommerce日本版フォーラムでも質問してみようと思います。
ちなみに動作保証はしませんが、北海道と東京を WooCommerce に追加するには、
class-wc-address-field-4jp.php の wc4jp_states を参考にするとテーマのfunctions.php に下記を追加することです。
面倒なので翻訳部分はオフにして日本語のみにしてますけどね。もちろんこれで意図した動作になるかは全く分かりません。
なにかの理由があって意図的に北海道と東京を外している可能性もありますので、そういう意味も込めて WooCommerce For Japanを開発している方に聞いてみてはとお伝えしたのでした。add_filter( 'woocommerce_states', array($this, 'add_wc4jp_states'), 99 ); public function add_wc4jp_states( $states ){ if(get_locale() == 'ja'){ $states['JP']['JP50'] = '北海道'; $states['JP']['JP51'] = '東京''; } return $states; }-
この返信は8年前に
kimipoohが編集しました。
kimipooh様
色々とありがとうございますm(_ _)m
WooCommerce For Japanの方に問い合わせをして、一度お返事をいただく事が出来ました。
「北海道と東京が抜けているのは本体側に問題ない日本語訳が入っているから」
という事でした。ただし、現在直面している問題は「住所を郵便番号から自動入力する」方法にしている場合
北海道・東京に関しても郵便番号を入れると住所が自動入力はされるのですが、
都道府県の部分が「Undefined」となり、送料がうまく取得できないという部分です。
北海道と東京以外は自動入力の場合も都道府県部分が自動で切り替わります。
ただ、自動入力後に「Undefined」になった都道府県を「北海道」「東京」と手動で選択し直した場合は、送料が表示される形なのです。そのため、この「Undefined」部分が正常に表示される様になれば問題は解決するのではないかと思っております。
が…私はそこまでのカスタム能力がないため、WooCommerce For Japanの方に問い合わせしたりこちらのフォーラムにトピを立てさせていただいている次第です。今後他の方にも役立つかと思いますので、このトピは解決まで続けさせていただきたいと思います。
解決まで何卒よろしくお願いいたします。
なるほど。
https://translate.wordpress.org/projects/wp-plugins/woocommerce/stable/ja/default
の翻訳データをみると、県と府は、岐阜、京都など岐阜県、京都府ではないのですよね。
北海道と東京都はそう入っていると。ただそれは翻訳データであって、処理に北海道と東京は入ってなさそうなのですけどね。woocommerce の
include/class-wc-countries.php をみると $states で日本は定義されていません。
これをwoocommerce for japan のclass-wc-address-field-4jp.php で定義しているようです。
なので、woocommerce for japan に東京と北海道が抜けているので、woocommerce 側でも処理されてない気がするんですよね。なのでテストするならば、東京と北海道を追加することです。
テーマの functions.phpに次のコードを追加してみてください。
(動作がおかしくなった場合に備えて、FTPで functions.phpファイルを編集しなおせるようにしておくのがよいと思います)add_filter( 'woocommerce_states', array($this, 'add_wc4jp_states'), 99 ); public function add_wc4jp_states( $states ){ if(get_locale() == 'ja'){ $states['JP']['JP01'] = __( 'Hokkaido', 'woocommerce' ); $states['JP']['JP13'] = __( 'Tokyo', 'woocommerce' ); } return $states; }これで、woocommerce for japanでかけている、JP01版とJP13をそれぞれ woocommerce へ追加し、翻訳(Hokkaido = 北海道、Tokyo = 東京都)については、woocommerce 側の翻訳データをつかうって感じでいけそうには思います。
kimipooh様
丁寧なアドバイス、ありがとうございます。
上記コードを追加してみたところ、Woo関連ページが全て真っ白になってしまいました。
class-wc-address-field-4jp.phpに北海道と東京を追加してみた事もあるのですが、その際はページが真っ白にはなりませんでしたが、何の変化も起こらない(北海道と東京の記述がローマ字になって表示される様になっただけ)形でした。やはりプラグイン内部で調整を行なっていただく事をお願いするしか方法はないのですかねぇ……
先ほどWooCommerce For Japanの方よりご連絡をいただきました!
バグとして修正して下さったとの事で、新しいバージョンがアップされました。
検証したところ、問題なく動作する様になりました^^私は最新バージョンにしても、バグが直らなかったのですが、
@kimipooh さんを参考に
class-wc-address-field-4jp.php
の中にある
//Add Ken and Fu to prefectures in Japan.
こちらの下に表記されてある都道府県一覧に
$states[‘JP’][‘JP01’] = __( ‘Hokkaido’, ‘woocommerce’ );
$states[‘JP’][‘JP13’] = __( ‘Tokyo’, ‘woocommerce’ );
こちらを追加した所バグが修正されました!
@kimipooh さんありがとうございました! -
この返信は8年前に
トピック「WooCommerceの送料について」には新たに返信することはできません。