フリーランス・個人事業主として独立を目指すデザイナー、副業を始めたいデザイナーを応援します! 自立支援に役立つ初心者向けWordPress情報も随時アップします!

【Contact Form 7】郵便番号で住所を自動入力させる方法

読了目安時間は約 7 分です。

フォーム周りでよくいただくご要望のひとつ「郵便番号を入力すると住所が自動で入力されるようにしてほしい」ではないでしょうか?

ちょっと難しそうな感じがしますが、実際やってみると意外と簡単です。

「Contact Form 7(コンタクトフォーム7)」は、いろいろなカスタマイズが可能です。住所自動入力もすぐ導入できましたので、その方法をご紹介いたします。

目次

郵便番号ライブラリ「YubinBango」

Contact Form 7に郵便番号で住所を自動で入力させる機能を導入するには、GitHubページで公開されている「YubinBangoライブラリ」を使います。

https://github.com/yubinbango/yubinbango

以前は「ajaxzip3」というものを使われていたようですが、その「ajaxzip3」の作者の方が改良した新作が「YubinBango」とのことですので、この「YubinBango」を選びました。

Githubページによると、

これまでにない設定方法(なんとclassを指定するだけ!)のまったく新しいライブラリが誕生いたしました!

このYubinBangoライブラリの革新的な設定方法は今は特殊に感じるかも知れませんが、10年以内にこれが当たり前になっていることでしょう。

https://github.com/yubinbango/yubinbango

とのことで、classを指定するだけで自動入力できるという、ありがたい仕様です。本当に普及して当たり前になりそうなくらい簡単です。

YubinBangoライブラリを読み込む

まずは下記のコードを、</head>の直前などに貼り付けてましょう。

<script src=”https://yubinbango.github.io/yubinbango/yubinbango.js” charset=”UTF-8″></script>

もしくは、functions.phpに下記のコードを貼り付けてもOKです。

wp_enqueue_script( 'yubinbango', 'https://yubinbango.github.io/yubinbango/yubinbango.js', array(), null, true );

functions.phpに追記するのが怖いという方は、下記のプラグインを使ってみてください。

フォーム内に国名を記述する

次に、下記のコードをフォーム内にコピペします。場所はどこでもOKです。

<p class="p-country-name" style="display:none">Japan</p>

国名「Japan」と入れなければいけないのですが、明記しなくても良いのでstyle="display:none"となっているようです。

郵便番号にクラスを指定する

郵便番号を入力するフォームに p-postal-codeというclassを指定します。

[text your-zip class:p-postal-code size:8 maxlength:8]

ハイフンが入っても無くても自動的に対応してくれますが、郵便番号を前後に分ける場合は下記のように記述します。

[text your-zip1 class:p-postal-code size:3 maxlength:3] - [text your-zip2 class:p-postal-code size:4 maxlength:4]

前後で同じクラス名を設定します。

住所にクラスを指定する

住所は下記のように記述します。

ひとつの入力フォームに、住所を全部入れる場合は下記のように記述します。

[text your-address class:p-region class:p-locality class:p-street-address class:p-extended-address]

それぞれのクラス名を説明すると

  • p-region = 都道府県
  • p-locality = 市区町村
  • p-street-address = 町域
  • p-extended-address = 以降の住所

となっています。ですので下記のように入力フォームを分けることも可能です。

[text your-region class:p-region]
[text your-locality class:p-locality]
[text your-street class:p-street-address]
[text your-extended class:p-extended-address]

formタグにh-adrクラスを指定する

最後に、formタグにh-adrクラスを設定します。

Contact Form 7の場合は、下記のように貼り付け用ショートコードの中にhtml_classを使ってクラスを設定します。

[contact-form-7 404 "Not Found"]

このショートコードを、いつものようにコンタクトフォームを設置したい場所にコピペすれば完了です。

まとめ

YubinBangoが有効になる条件は下記の通りです。

  1. scriptタグでYubinBangoライブラリが読み込まれていること
  2. formタグのclass指定の中に h-adr が含まれていること
  3. form中で、国名(p-country-name) が Japan に指定されていること(表示させなくてもOK)
  4. 郵便番号入力欄のclass指定の中に p-postal-code が含まれていること
  5. 住所欄のclass指定の中に、都道府県名(p-region)、市町村区(p-locality)、町域(p-street-address)、以降の住所(p-extended-address) がそれぞれ含まれていること

調べる前は「すごい難しいコーディングが必要なんじゃないかな…?」と思っていましたが、コピペしていけば短時間で導入できます。

お客さんのご要望としてよくある部類ですので、是非チャレンジしてみてください!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
目次
閉じる