MW WP Formで商品名を自動入力するようにしたよ

WordPressのメールフォームでいつもお世話になっているMW WP Formさんです。

今回は、たまに使う機能「URL引数を有効にする」をご紹介します!

実装する形

  • 商品が登録してある(投稿のタイトルが商品名)
  • その商品ページの「この商品に関するお問合わせ」ボタンからお問合わせページに遷移
  • 自動でその商品の名前が入力フィールドに出現!(ここ感動するとこ)

商品詳細ページ(single.php)

お問合わせページへのリンクを以下のように設定します。
URLパラメータitemに投稿のIDを入れます!

<a href="<?php echo home_url(); ?>/contact/?item=<?php echo get_the_ID(); ?>">この商品に関するお問合わせ</a>

MW WP Formのフォームタグ

その部分だけ紹介するとこんなかんじ。

[mwform_text name="商品"]

functions.phpにフックを追加

mwform_value_mw-wp-form-xxxのxxxのところには、ご自分のフォームの識別子のkeyを入れてくださいね。

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

nameが”商品”であるフィールドに対し、URLパラメータitemが存在する場合はそのIDから投稿名を取得して、出力します。

参考

プラグイン制作者様のブログを参考にさせていただきました。
MW WP FormでURL引数をもとに動的にvalue値を設定する方法 – モンキーレンチ

2017.03.29追記

この記事を公開した直後、MW WP Formの作者 北島さんからこんなアドバイスをいただきました。

まじですか!!

<a href="<?php echo home_url(); ?>/contact/?post_id=<?php echo get_the_ID(); ?>">この商品に関するお問合わせ</a>
[mwform_text name="商品" value="{post_title}"]

商品詳細ページのリンクを?post_id=にして、フォームのvalueを設定したら、できました。
ありがとうございました。

コメントを残す

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

CAPTCHA