Gravity Formsの電話番号フィールドの仕様
Gravity Formsの電話番号フィールドは、アメリカ(US)と海外(インターナショナル)の2種類がプリセットされています。
海外のフィールドタイプは幅広い国に対応する必要があるため、特に入力値に対するバリデーションは設定されていません。
そのため、日本用のバリデーションを設定するためにはプラグインを使用するか、またはフィルターフックを使用してカスタムフォーマットを適用する必要があります。
フィルターフックを使用したカスタム電話番号フォーマットの追加
以下のコードをfunctions.php、もしくはCode Snippetsプラグインに登録します。
functions.phpを使用するとテーマ変更時に正常動作しなくなるのでCode Snippetsをおすすめします。
なお、この例では先頭が0から始まり、残りが9桁または10桁の数字が入力されているバリデーションを行っています。(ハイフンは無し)
add_filter( 'gform_phone_formats', 'jp_phone_format' );
function jp_phone_format( $phone_formats ) {
$phone_formats['jp'] = array(
'label' => 'JP',
'mask' => false,
'regex' => '/^0[0-9]{9,10}$/',
'instruction' => 'ハイフンなしで先頭が0から始まり、10桁または11桁の半角数字を入力してください。',
);
return $phone_formats;
}
| キー | 値の説明 |
|---|---|
| label | カスタム電話番号フォーマットのラベル名。管理画面での選択時のドロップボックスに表示される名前でフロントエンドには表示されません。 |
| mask | 入力マスク。日本では電話番号にマスクを使用する場面をほとんど見ないので「false」に設定しています。 |
| regex | 正規表現の内容 |
| instruction | エラー時に表示するカスタムエラー文言 |
参考情報
すべてのフォームの電話番号フィールドではなく、特定のフォームの電話番号フィールドにのみカスタムフォーマットを追加したい場合は、以下のように「gform_phone_format」に「_5」等フォームIDを追加して制限を行うことができます。add_filter( 'gform_phone_formats_5', 'your_function_name', 10, 2 );
gform_phone_formats
参照:https://docs.gravityforms.com/gform_phone_formats/
Code Snippetsを使用した場合は、「Run snippet everywhere」にチェックを入れてください。
追加したカスタムフォーマットを適用する
一般設定の設定
カスタムフォーマットを追加したら、フォームエディターでフィールドにカスタムフォーマットを適用します。
- 追加した電話番号フィールドの一般設定の「電話番号の書式」で「JP」を選択します。
- このフォーマットでは「ハイフンなし」のみをバリデートする正規表現を使用しているので、「説明」の欄に「ハイフンなしで入力してください。」と説明を入力します。

フォームの表示例

エラー発生時の表示例

投稿者プロフィール
- DoL(CMSラボ所長)
-
CMS Laboの所長。
所員はまだない。
DoLは Director of Laboratories の略です。
最新の投稿
GravityForms2023年2月13日スパムハニーポットの機能強化
GravityForms2023年2月10日ブロックのテーマとスタイルの設定
GravityForms2023年2月9日Gravity Formsのテンプレートライブラリを利用する
GravityForms2023年2月8日Gravity Forms セットアップウィザード


