MW WP FormでGETパラメータを使ってフォームを自動入力する方法

MW WP FormでGETパラメータを使ってフォームを自動入力する方法

MW WP FormでGETパラメータを使ってフォームを自動入力する方法

MW WP Formでフォームを自動入力させる方法を、2パターンご紹介したいと思います。

MW WP Formでは、GETパラメータを使ってフォームを自動入力することができます。この方法を使えば、お問い合わせフォームへの遷移元ページの情報を自動入力することができ、手入力による手間やミスを省くことができます。

スポンサードリンク

MW WP FormでGETパラメータを使ってフォームを自動入力する方法

投稿IDから投稿情報を自動入力する方法

まずは、投稿IDから投稿情報を取得して、フォームに自動入力する方法です。

MW WP Formのフォーム作成画面で、「URL引数を有効にする」にチェックを入れます。

URL引数を有効にする

フォーム側では、valueに自動入力したい情報を指定します。以下の場合、パラメータで指定した投稿IDのタイトルが自動入力されます。

[mwform_text name="sample" size="60" value="{post_title}"]

valueの値には、$postに入っている情報であれば取得可能なので下記が指定できます。また、カスタムフィールドの値を自動入力したい場合は、フィールド名を指定します。例えばsizeというフィールド名の値を自動入力したい場合は{size}。

  • {ID}
  • {post_title}
  • {post_author}
  • {post_date}
  • {post_date_gmt}
  • {post_content}
  • {post_excerpt}
  • {post_status}
  • {comment_status}
  • {ping_status}
  • {post_password}
  • {post_name}
  • {to_ping}
  • {pinged}
  • {post_modified}
  • {post_modified_gmt}
  • {post_content_filtered}
  • {post_parent}
  • {guid}
  • {menu_order}
  • {post_type}
  • {post_mime_type}
  • {comment_count}
  • {filter}

あとは、お問い合わせページのURLに「?post_id=【投稿ID】」というパラメータを追加してあげれば、指定した投稿IDの情報が自動入力されます。「/contact/?post_id=23」のようにすれば、投稿IDが23の情報が取得されます。

例えば、遷移元ページの投稿IDを入れたい場合は、お問い合わせへのリンクを以下のように記述します。

<a href="<?php echo esc_url( home_url('/contact/') ); ?>?post_id=<?php echo get_the_ID(); ?>">お問い合わせ</a>

独自の情報を自動入力する方法

上述した方法では取得できない情報を自動入力したい場合は、「mwform_value_mw-wp-form-xxx」というフックを使うことで実現可能です。

まずは、上述した方法と同じように、MW WP Formのフォーム作成画面で「URL引数を有効にする」にチェックを入れます。

フォーム側ではvalueは指定しません。こちらの方法では、valueを指定するとうまく動かないので注意が必要です。

[mwform_text name="sample" size="60"]

続いて、適用しているテーマのfunctions.phpで自動入力したい情報を指定します。例えば、name属性が”sample”のテキストボックスに、”hoge”というパラメータの値を入力したい場合は、以下のように記述します。

function my_mwform_value($value, $name) {
  if ($name === 'sample' && !empty($_GET['hoge']) && !is_array($_GET['hoge'])) {
    return $_GET['hoge'];
  }
  return $value;
}
add_filter('mwform_value_mw-wp-form-xxx', 'my_mwform_value', 10, 2);

「mwform_value_mw-wp-form-xxx」のxxxの部分には、フォーム識別子のkeyを入れてください。フォーム識別子が[mwform_formkey key=”1234″]の場合は、「mwform_value_mw-wp-form-1234」になります。

あとは、お問い合わせページのURLに「?hoge=xxx」というパラメータを追加してあげれば、hogeパラメータの値がsampleに自動入力されます。

あとがき

前者でも十分活用できるケースはありそうですし、後者の場合はかなり柔軟な対応ができそうですね。

フォームを自動入力したい時は、ぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です