WordPressプラグイン「MW WP Form」の使い方と住所自動入力(郵便番号で動かない場合)

TwitterFacebookHatena
  • 公開:2018-12-25
  • 更新:2023-10-26
  • 文章量:4157
  • WordPress

TL;DR

問い合わせフォームの中に、前ページの情報をデフォルトで埋め込んでおきたい、郵便番号を入力したら住所を取得して自動で入力させたい、そんなときに便利な WordPress プラグイン「MW WP Form」の使い方。

MW WP Form

WordPress の問い合わせフォームといえば「Contact Form 7」を使う人が多いかと思いますが、WordPress プラグインである「MW WP Form」を使うと、前のページの情報を引き継いで、フォーム内に埋め込んでおくことが簡単にできます。 例えば、カスタムポストに識別番号をカスタムフィールドで設定しておき、そのページから問い合わせフォームに遷移すると、問い合わせフォーム内に遷移前ページの識別番号を付与し、送信後もメールにその情報を送ることができます。 MW WP Form 他に以下のように、入力画面と確認画面の URL を別にするなどの便利な機能があります。

  • バリデーション
  • ハイフン区切りの電話番号・郵便番号
  • 確認画面・完了画面(サンクスページ測定)・エラー画面 URL の設定
  • ページ遷移前の情報を引き継げる
  • 問い合わせデータを保存・ダウンロードできる
  • 郵便番号入力ライブラリと組み合わせ可能である

取得できる情報

パラメータ(?post_id=投稿 ID)をつけておけば、以下のように$post - 投稿情報の戻り値をショートコードで取得できます。カスタムフィールドの値は{カスタムフィールド名}のようにそのまま記述します。

作成者:{post_author}
投稿日時:{post_date}
カテゴリー:{post_category}
スラッグ:{post_name}
投稿タイプ:{post_type}
カスタムフィールドの値:{カスタムフィールド名}

編集画面で「URL 引数を有効にする」にチェックを入れると、?post_id=投稿 ID 付きで表示したさいに、投稿のタイトルやカスタムフィールドの値を取得できます。 フォームへ遷移する前の投稿ページのループ外に、問い合わせフォームへのパラメータを付与しましょう。「xxxx」の箇所はフォームを設置したパラメータを入れる。例えば、お問い合わせページの URL が contact だったら、「xxxx」は contact にする。

<a href="<?php echo esc_url(home_url('/')); ?>xxxx?post_id=<?php echo $post->ID ?>">お問い合わせ</a>

郵便番号で住所を自動入力する機能

MW WP Form に郵便番号で住所を自動入力する機能をつけたいので、郵便番号入力ライブラリである、yubinbangoを使います。 ※ 2021/12/21 追記: 最新バージョンの WordPress で、郵便番号の自動入力が動かない場合は、WordPress の デフォルト jQuery を削除し、jQuery のバージョンを上げると動く場合がある。

functions.php

デフォルト jQuery を削除

function delete_jquery() {
  if (!is_admin()) {
    wp_deregister_script('jquery');
  }
}
add_action('init', 'delete_jquery');

header.php jquery-1.12.4 を wp_head() の上に記述。

<!-- 郵便番号自動入力対応 jquery -->
<script src="https://code.jquery.com/jquery-1.12.4.js" integrity="sha256-Qw82+bXyGq6MydymqBxNPYTaUXXq7c8v3CwiYwLLNXU=" crossorigin="anonymous"></script>

functions.php で追加します。

// MW WP Form
function register_jquery() {
wp_enqueue_script(
'yubin-js',
'https://yubinbango.github.io/yubinbango/yubinbango.js',
array(),
null,
true
);
wp_enqueue_script('yubin-js');
}
add_action('wp_enqueue_scripts', 'register_jquery');

管理画面の中で form にクラス名を付与しても、自動で削除されてしまうので、form タグにクラス名(h-adr)を付与するために、functions.php でクラス名を変更します。これで form にクラス名が付与され、正常に動作するようになります。

// MW WP Form の form 部分の class を設定できるようにショートコードの引数を追加
function mwform_form_class() {
?>
<script>
jQuery(function($) {
    $( '.mw_wp_form form' ).attr( 'class', 'h-adr' );
});
</script>
<?php
}
add_action( 'wp_head', 'mwform_form_class', 10000 );

`MW WP Form で出力される内にクラスを指定したい | WordPress.org

フォーム埋め込み

「MW WP Form」をインストール後、新規作成でフォーム編集画面に移動し、以下のように記述します。取得番号の箇所に書いてある{mw-wp-form}は、カスタムフィールドで設定したものを記述すればよいです。

<span class="p-country-name" style="display:none;">Japan</span>
<table class="contact-table">
  <tbody>
    <tr>
      <th>お名前</th>
      <td>[mwform_text name="name" size="60"]</td>
    </tr>
    <tr>
      <th>取得番号</th>
      <td>[mwform_text name="mw-wp-form" size="60" value="{mw-wp-form}"]</td>
    </tr>
    <tr>
      <th>取得タイトル</th>
      <td>[mwform_text name="title" size="60" value="{post_title}"]</td>
    </tr>
    <tr>
      <th>郵便番号</th>
      <td>[mwform_text name="yubin-number" class="p-postal-code" size="60"]</td>
    </tr>
    <tr>
      <th>都道府県</th>
      <td>[mwform_text name="todoufuken" class="p-region p-locality p-street-address p-extended-address" size="60"]</td>
    </tr>
    <tr>
      <th>メールアドレス</th>
      <td>[mwform_text name="email" size="60"]</td>
    </tr>
    <tr>
      <th>お問い合わせ内容</th>
      <td>[mwform_textarea name="message" cols="60"]</td>
    </tr>
    <tr>
      <th></th>
      <td>[mwform_submitButton name="mwform_submitButton-772" class="btn" confirm_value="確認画面へ" submit_value="送信する"]</td>
    </tr>
  </tbody>
</table>

これで、郵便番号を入力するだけで住所が自動表示されます。 ショートコード一覧

自動返信メール

編集画面で、自動返信メール設定と管理者宛てメールに以下を追加。

お名前:{name}
取得番号:{mw-wp-form}
取得タイトル:{title}
郵便番号:{yubin-number}
住所:{your-address}
メールアドレス:{email}
お問い合わせ内容:{message}

お客様へ送る、自動返信メールのところには、この場合「email」と入力してください。以上、WordPress プラグイン「MW WP Form」の使い方と住所自動入力の設定方法でした。`

WordPressプラグイン「MW WP Form」の使い方と住所自動入力(郵便番号で動かない場合)