Contact Form 7

Contact Form 7(以降CF7と略す。)

今回ほとんどのサイトで、極々簡単(=安易)に「お問い合せ」のメールフォームとして導入。

その他、ちょっぴりがんばって手を入れたのが、サイト「笑輪」に構築したぶるーべりーの注文フォーム。(このページに関しては、ブルーベリーの販売期間が終了すると非表示になるのでリンクはしない。)

《 Cntents 》

  1. 郵便番号で住所を自動入力
  2. 確認メアド入力
  3. 日付入力とモダンブラウザ

郵便番号で住所を自動入力

通販サイトでは当たり前のように仕組まれている郵便番号を入力すると住所の町名までが自動入力されると云うヤツ・・・

GitHubに公開されている「YubinBango」ライブラリを利用するのだが、その使い方は、まんまこちらのサイトの記事頼りです。

ただ、諸々の記事によると、ひとつの入力フォームに、2箇所の住所自動入力を設定できるようなのだが、今回、飼主の力量では1箇所にしか設置することができず、「注文者の住所」と「送り先住所」の2つの住所入力欄があるにも関わらず、この便利な機能を前者にしか設定することができていない。

やれやれ・・・

積み残しの宿題だね・・・。

あと、このプラグインに今回発見したこと。「自動返信メール」が設定できるんだ。

まぁ、当たり前と云えば当たり前のことで、今まで気がつかなかった方が注意力散漫なんだね・・・


確認メアド入力

ところで、確認用のメールアドレス入力欄を設置して、元のアドレスと不一致だとアラートを出すと云う仕組みは次のコードを「function.php」の任意の場所に記述。

<?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 );
?>

日付入力とモダンブラウザ

次のところでは、CF7の日付タグ。どうやらモダンブラウザではHTML5をサポートすると云う前提でCF7の日付入力もjQueryを利用したdatepickerが採用されているようなのだが、現在、この機能を十分の反映してくれるブラウザはChromeぐらい。2018年7月14日現在、Firefoxは中途半端に対応、飼主の環境下のSafariに至ってはうんともスンとも反応してくれない・・・

ただ、以下のコードを「function.php」の任意の場所に記述すると、Sfariでも最低限の仕事をしてくれる。iPhoneのSafariでもpicker入力OK。

CF7で日付入力を設定するときは必須だね・・・

<?php
add_filter( 'wpcf7_support_html5_fallback', '__return_true' );
?>

コメントを残す

前の記事

Easy FancyBox

次の記事

プラグイン顛末記