Contents Management System

Contact Form 7 で必須項目のエラーメッセージをカスタム

WordPress

Contact Form 7ってめっちゃ奥が深いですね!カスタマイズする時こころおどります!今回は発想の転換で必須項目のエラーメッセージを変えたのでそのやり方をメモしておきます。

そもそも、入力項目を必須にしない

入力項目を必須にするとデフォルトのエラーメッセージが送信じに出ちゃいます。
なので必須にせずに、fuctions.php の方でエラーメッセージをコントロールします。

add_filter で wpcf7_validate にフックすることで追加できます。

以下のコードの例は、checkboxです。
プライバシーポリシーに同意しないと送信させないよーとか想像してもらったらと思います。

// contact form 7 バリデーション追加
function wpcf7_validate_customize($result, $tags)
{
    foreach ($tags as $tag) {
        //タグの種類 input・textareaなど
        $type = $tag['type'];
        // name属性
        $name = $tag['name'];
        $post = trim(strtr((string) $_POST[$name], "\n", ''));
        if($type === 'checkbox'){
            if ($name == 'agreement' && !isset($_POST[$name])) {
                // 指定のname属性のバリデーションに任意のメッセージを追加
                $result->invalidate($name, 'プライバシーポリシーに同意してください。');
            }
        }
    }

    return $result;
}

add_filter('wpcf7_validate', 'wpcf7_validate_customize', 11, 2);

以上です。

たかが、これしきのことでしたが特定の必須項目のバリデの内容を変えようとしてググって無駄な時間を費やしました。。。

関連記事もあわせてお読みください

Read More

記事のジャンル

管理人について

私、かみーゆ。フロントエンドエンジニア。普段はセブ島でエンジニア講師しています。好きなものは肉とビール。現在飲み仲間ゆるぼ。

About Me