「Contact Form 7」で郵便番号から住所を自動入力する方法

※当サイトにはプロモーションが含まれています。

クライアントクライアント

問い合わせフォームに郵便番号を入力したら、住所が自動的に表示するようにしてくれ!

にゃテックにゃテック

おけまるだにゃ

ネットショップや資料請求、見学会などの申し込みフォームと作る際に、住所の入力欄があるフォームを作る機会があるかもしれません。

そこで、よく問い合わせフォームなどでみかける、郵便番号を入れたら自動で住所が入力される仕組みを作ってみました。

郵便番号を入れたら自動で住所が入力(PC)

郵便番号を入れたら自動で住所が入力(SP)

今回は、それをワードプレスのプラグイン「Contact Form 7」に実装してみます。

なお、この記事を記載している時点のContact Form 7は バージョン 5.9.6です。

郵便番号から住所を自動入力する方法

ワードプレスのプラグイン「Contact Form 7」で郵便番号から住所を自動入力する手順です。

①フォームの設定

Contact Form 7のフォームを設定します。

※フォーム例は最低限必要なものだけを記載しています。

<label> メールアドレス<span class="nya-required">必須</span>
[email* your-email autocomplete:email placeholder "普段お使いのメールをご記入ください"]</label>

<label>郵便番号(7桁の半角数字のみ)
[text* zip-code class:zip-code maxlength:7 placeholder "郵便番号は7桁の半角数字で入力してください(例: 1234567)"]
</label>

<label>都道府県
[text address1 class:address1 readonly placeholder "郵便番号を入れると自動的に入力されます"]
</label>

<label>市区町村以下
[text address2 class:address2]
</label>

[submit "送信"]

ポイントとして、クラスzip-codeを付与しているので注意してください。

これがないと自動入力されない為、必ず記載してください。

その他、maxlength:7を使用して、郵便番号フィールドに7文字までの入力制限を設けているのと、

readonlyを追加して、都道府県はユーザーが手動で編集できないようにしています。

②Javascriptの記載

今回、この仕組みを作るにあたり、zipcloudという無料のAPIを利用しました。

なお、このサービスは通常の範囲内であれば、商用利用も問題ないと思います。

参考:郵便番号検索API利用規約

document.addEventListener("DOMContentLoaded", function() {
document.querySelector('.zip-code').addEventListener('input', function() {
var zipCode = this.value;
if (zipCode.length === 7) {
fetch(`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${zipCode}`)
.then(response => response.json())
.then(data => {
if (data.results) {
document.querySelector('.address1').value = data.results[0].address1;
document.querySelector('.address2').value = data.results[0].address2 + data.results[0].address3;
}
});
}
});
});

これを、</body>タグの直前などに記載すればOKです。

なお、記載する際には<script>タグが必要になります。

下記画像は、ワードプレステーマ(GOLD BLOG)の共通設定から変更した場合です。

ゴールドブログのbodyタグ直前

なお、賢威であれば、特定のページのみにJavascriptやCSS適用させる設定があります。

しかし、ゴールドブログ(GOLD BLOG)のように、特定のページのみに適用させる機能を持たないワードプレステーマもあります。

その場合、特定のページ(例えば、問い合わせページ)のみに、Javascriptを記載したい場合は、function.phpに以下のコードを追記することで対応することができます。

function custom_enqueue_scripts() {
if (is_page('contact')) { // 'contact' はページスラッグまたはページIDに置き換えてください
?>
<script>
document.addEventListener("DOMContentLoaded", function() {
document.querySelector('.zip-code').addEventListener('input', function() {
var zipCode = this.value;
if (zipCode.length === 7) {
fetch(`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${zipCode}`)
.then(response => response.json())
.then(data => {
if (data.results) {
document.querySelector('.address1').value = data.results[0].address1;
document.querySelector('.address2').value = data.results[0].address2 + data.results[0].address3;
}
});
}
});
});
</script>
<?php
}
}
add_action('wp_footer', 'custom_enqueue_scripts');

2行目に記載されている

if (is_page('contact')) { // 'contact' はページスラッグまたはページIDに置き換えてください

は、スラッグ名に応じて書き換えてください。

例えば、スラッグ名が、sample-pageであれば、

if (is_page('sample-page')) {

となります。

function.phpの場所は?

function.phpは、だいたいどのテーマも、

外観 > テーマエディター

にあります。

テーマエディター

テーマエディターに移動したら、編集するテーマが、現在、使用しているテーマかを確認しましょう。

問題なければ、「function.php」を選択します。

function.php

選択したら、一番下に以下のコードを追加します。

function custom_enqueue_scripts() {
if (is_page('contact')) { // 'contact' はページスラッグまたはページIDに置き換えてください
?>
<script>
document.addEventListener("DOMContentLoaded", function() {
document.querySelector('.zip-code').addEventListener('input', function() {
var zipCode = this.value;
if (zipCode.length === 7) {
fetch(`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${zipCode}`)
.then(response => response.json())
.then(data => {
if (data.results) {
document.querySelector('.address1').value = data.results[0].address1;
document.querySelector('.address2').value = data.results[0].address2 + data.results[0].address3;
}
});
}
});
});
</script>
<?php
}
}
add_action('wp_footer', 'custom_enqueue_scripts');

最後に、「ファイルを更新」ボタンで、保存(更新)します。

function.phpへの記載例

※全角スペースなどが入ると、正しく動作しない可能性があるので、コピーしたコードは、一度メモ帳などに貼り付けて確認してみましょう。

これで、問い合わせフォームに郵便番号から住所が自動入力されるようになりました。

なお、「Contact Form 7」のデザインの変更方法については下記の記事をご参照ください。

楽天市場の検索結果

1冊ですべて身につくWordPress入門講座 [ Mana ]
1冊ですべて身につくWordPress入門講座 [ Mana ] 2,200円(税込)【送料込】

楽天ブックス

Mana SBクリエイティブイチサツデスベテミニツクワードプレスニュウモンコウザ マナ 発行年月:2022年03月24日 予約締切日:2022年01月26日 ページ数:344p サイズ:単行本 ISBN:9784815609405 Mana(MANA) 日本で2年間グラフィックデザイナーとして働いた後、カナダ・バンクーバーにあるWeb制作

HTMLサイトをWordPressにする本 [ 久保田 涼子 ]
HTMLサイトをWordPressにする本 [ 久保田 涼子 ] 2,640円(税込)【送料込】

楽天ブックス

久保田 涼子 西原 礼奈 ソシムエイチティーエムエルサイトヲワードプレスニスルホン クボタ リョウコ ニシハラ アヤナ 発行年月:2023年08月29日 予約締切日:2023年06月06日 ページ数:360p サイズ:単行本 ISBN:9784802614214 久保田涼子(クボタリョウコ) 「ワクワクするモノ・時間・場所を生み出す」をテ

今すぐ使えるかんたん WordPress やさしい入門[6.x対応版] [ 桑名
今すぐ使えるかんたん WordPress やさしい入門[6.x対応版] [ 桑名 1,760円(税込)【送料込】

楽天ブックス

桑名 由美 はつみ 技術評論社イマスグツカエルカンタンワードプレスヤサシイニュウモンロクテンエックスタイオウバン クワナ ユミ ハツミ 発行年月:2023年09月28日 予約締切日:2023年06月02日 ページ数:256p サイズ:単行本 ISBN:9784297136253 桑名由美(クワナユミ) 2023年8月、合同会社ワイズベスト

たった1日で基本が身に付く! WordPress 超入門 [改訂2版] [ 佐々
たった1日で基本が身に付く! WordPress 超入門 [改訂2版] [ 佐々 1,980円(税込)【送料込】

楽天ブックス

佐々木 恵 リブロワークス 技術評論社タッタイチニチデキホンガミニツクワードプレスチョウニュウモンカイテイニハン ササキ メグミ リブロワークス 発行年月:2022年04月14日 予約締切日:2022年01月05日 ページ数:192p サイズ:単行本 ISBN:9784297126957 佐々木恵(ササキメグミ) 2002年より独学でWe

ビジネスサイトを作って学ぶ WordPressの教科書 Ver.6.x対応版 [
ビジネスサイトを作って学ぶ WordPressの教科書 Ver.6.x対応版 [ 3,278円(税込)【送料込】

楽天ブックス

小川 欣一 穂苅 智哉 ソシムビジネスサイトヲツクッテマナブ ワードプレスノキョウカショ バージョンロクテンエックスタイオウバン オガワ ヨシカズ ホカリ トモヤ 発行年月:2023年05月01日 予約締切日:2023年01月12日 ページ数:436p サイズ:単行本 ISBN:9784802614030 1 開発環境を構築しよう/2 テ

楽天ウェブサービスセンター