フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【Contact Form 7】メールにランダム数値(乱数)を記載する方法

Contact Form 7
WordPress
wpcf7_form_tag
フック
ランダム数値
乱数生成

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

WordPressで簡単にお問い合わせフォームを作成できる人気のプラグイン「Contact Form 7」。
様々なフックが用意されていて実装したいことはどんなことでも実現できる便利なプラグインですね。

今回の記事では「Contact Form 7」を使ったランダム数値(乱数)をメールに記載する方法をご紹介します。

メールにランダム数値(乱数)を記載する方法

「Contact Form 7」でランダム数値(乱数)をメールに記載するには以下の手順で実現可能です。

  • ①Contact Form 7の設定
  • ②フックを使用してランダム数値(乱数)生成関数の追加

それでは実際に実装する方法を順番に解説していきます。

まずは、「Contact Form 7」の設定をします。
「Contact Form 7」でフォームを作成し、フォーム入力画面の設定で、ランダム数値(乱数)をセットするためのフィールドを用意します。
この時hidden要素を使用することで画面上には表示されることはありません。

[hidden random_number]

このように設定します。

続いて、メール本文に乱数を記載するための記述をします。
[hidden random_number]としたのでメール本文には[random_number]と記述にします。

最後に、functions.phpに「Contact Form 7」で用意されているwpcf7_form_tagというフックを使用してランダム数値(乱数)生成関数を作成します。
このフックはタグの値を加工することが出来るものです。

function set_create_random_number( $tag ){
  if ( ! is_array( $tag ) ){
      return $tag;    
  }

  $name = $tag['name'];
  if( $name == 'random_number' ){
      $res_get_the_title = wp_rand(1000000000, 9999999999);
      $tag['values'] = (array)$res_get_the_title;
  }
  return $tag;
}
add_filter( 'wpcf7_form_tag', 'set_create_random_number', 11 );

上の例では10桁のランダム数値(乱数)を生成してメール本文の[random_number]の部分に自動でセットします。

その他の桁の場合

10桁以外の場合は以下の設定に書き換えます。

8桁の場合

mt_rand(10000000, 99999999); // 8桁の乱数

9桁の場合

mt_rand(100000000, 999999999); // 9桁の乱数

11桁の場合

mt_rand(10000000000, 99999999999); // 11桁の乱数

12桁の場合

mt_rand(100000000000, 999999999999); // 12桁の乱数

それ以外の桁数についても上の法則で作成することが出来ます。

まとめ

いかがでしたか?
「Contact Form 7」は便利なプラグインです。こんな感じで動的に値を生成、メール本文にセットすることが出来ます。
他にも様々なことが実装可能なので順次記事にしてきたいと思います。