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_formats のパラメータ

参考情報

すべてのフォームの電話番号フィールドではなく、特定のフォームの電話番号フィールドにのみカスタムフォーマットを追加したい場合は、以下のように「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」にチェックを入れてください。

追加したカスタムフォーマットを適用する

一般設定の設定

カスタムフォーマットを追加したら、フォームエディターでフィールドにカスタムフォーマットを適用します。

  1. 追加した電話番号フィールドの一般設定の「電話番号の書式」で「JP」を選択します。
  2. このフォーマットでは「ハイフンなし」のみをバリデートする正規表現を使用しているので、「説明」の欄に「ハイフンなしで入力してください。」と説明を入力します。
電話番号フィールドの一般設定

フォームの表示例

設定したフィールドの表示例

エラー発生時の表示例

エラー発生時のフォーム表示例

投稿者プロフィール

DoL(CMSラボ所長)DoL(CMSラボ所長)
CMS Laboの所長。
所員はまだない。

DoLは Director of Laboratories の略です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA