【wordpress】Contact Form 7の入力項目に制御を入れる

wordpress

Contact Form7を使ったフォームの入力項目にカタカナ制御を入れる方法です。

フリガナの項目を全角カナのみにする方法を紹介します。

手順概要
  1. Contact Form 7で問合せフォームを作る
  2. function.phpに入力制御の処理を加える
スポンサーリンク

1.Contact Form 7で問合せフォームを作る

Contact Form7のプラグインをインストールして、問い合わせフォームを作ります。

スポンサーリンク

2.function.phpに入力制御の処理を加える

function.phpの一番下に以下の処理を記述します。(コピペでOK)

 add_filter('wpcf7_validate_text',  'wpcf7_validate_kana', 11, 2);  add_filter('wpcf7_validate_text*', 'wpcf7_validate_kana', 11, 2);   function wpcf7_validate_kana($result,$tag){    $tag = new WPCF7_Shortcode($tag);    $name = $tag->name;
   $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";

   // 入力項目名が、'firstname_kana' か 'lastname_kana' の場合に実行
   if ( $name === "firstname_kana" || $name === "lastname_kana" ) {
     // カタカナ以外だった場合
     if(!preg_match("/^[ァ-ヾ]+$/u", $value)) {
       $result->invalidate($tag, "全角カタカナで入力してください。");
     }
   }
   return $result;

 }

以下の部分を自身の問い合わせフォームの値に合わせて変更

if ( $name === “firstname_kana” || $name === “lastname_kana” ) {

Contact Form 7側で設定した
[text* firstname_kana placeholder”例)ヤマダ”]
[text* lastname_kana placeholder”例)ハナコ”]
と一致するようにする。

スポンサーリンク

簡単な解説

ここからは、コードの解説です。不要な方は読み飛ばしてOK。

1~3行目

add_filter(‘wpcf7_validate_text’, ‘wpcf7_validate_kana‘, 11, 2);
add_filter(‘wpcf7_validate_text*’, ‘wpcf7_validate_kana‘, 11, 2);

function wpcf7_validate_kana($result,$tag){
・・・
}

ContactForm7のtextまたはtext*で関数wpcf7_validate_kanaを実行する

太字の個所は一致させる。

関数 wpcf7_validate_kana の中身

$tag = new WPCF7_Shortcode($tag);
$name = $tag->name;
$value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], “\n”, ” “))) : “”;

これはおまじない。

// 入力項目名が、’firstname_kana’ か ‘lastname_kana’ の場合に実行
if ( $name === “firstname_kana” || $name === “lastname_kana” ) {
// カタカナ以外だった場合
if(!preg_match(“/^[ァ-ヾ]+$/u”, $value)) {
$result->invalidate($tag, “全角カタカナで入力してください。”);
}
}
return $result;

”||”は演算子。(「or」、「または」の意味を持つ)

“/^[ァ-ヾ]+$/u” はカタカナという意味。

入力制御を行いたい項目が1つの場合

if ( $name === "firstname_kana" || $name === "lastname_kana" ) {

if ( $name === "firstname_kana") {

全角ひらがなのみにしたい場合

if(!preg_match("/^[ァ-ヾ]+$/u", $value)) {

 if (!preg_match("/^[ぁ-ゞー]+$/u",$value)) {

英数のみにしたい場合

if(!preg_match("/^[ァ-ヾ]+$/u", $value)) {

if(!preg_match("/^[a-zA-Z0-9]+$/u", $value)) {
この記事を書いた人
マイマイ

2016年12月生まれの男児を育てる三十路ママ。生後6か月で復帰し時短勤務中です。平日はほとんどワンオペ。昼休憩や寝かしつけ後など隙間時間でブログをこなしています。日々の家事は必要最低限のみです。
お出かけスポット情報や自立を促す子育て方法など実体験をもとにまとめています。

ツイッターもやってます
wordpress
みやぎで暮らす
タイトルとURLをコピーしました