【WordPress】Contact Form 7でメールアドレスの再入力欄を実装する方法

コンタクトフォームでメールアドレスの再入力欄をよく見かけますよね?

それをWordPressの人気プラグインContact Form 7で実装することができます。

短い備忘録メモです。

コンタクトフォーム

まず、コンタクトフォームの編集画面で以下のコードを入れます。

<label> メールアドレス (必須)
    [email* inquiry_mail] </label>
<label> メールアドレス再入力 (確認)
    [email* inquiry_mail_confirm] </label>

*エラーがでるので同じlabelに入れないでください

functions.phpに以下のコードを追加

// コンタクトフォームのメアド再入力
function wpcf7_main_validation_filter( $result, $tag ) {
  $type = $tag['type'];
  $name = $tag['name'];
  $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
  if ( 'email' == $type || 'email*' == $type ) {
    if (preg_match('/(.*)_confirm$/', $name, $matches)){
      $target_name = $matches[1];
      if ($_POST[$name] != $_POST[$target_name]) {
        if (method_exists($result, 'invalidate')) {
          $result->invalidate( $tag,"確認用のメールアドレスが一致していません");
      } else {
          $result['valid'] = false;
          $result['reason'][$name] = '確認用のメールアドレスが一致していません';
        }
      }
    }
  }
  return $result;
}

add_filter( 'wpcf7_validate_email', 'wpcf7_main_validation_filter', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_main_validation_filter', 11, 2 );

すると、こんな感じで送信時に間違っていたら赤文字でテキストが表示されます。

以上短い備忘録メモでした〜

参考:《Wordpress》Contact Form 7でメールアドレスの再入力チェック



Posted

in