プラグインContact Form 7のwpcf7_is_number関数の使用方法・解説

概要

wpcf7_is_number 関数は、入力文字列が数値かどうかを返す関数です。この関数は、Contact Form 7 プラグインで数値の検証を行う際に非常に便利です。以下のような機能でよく使われます:

  1. ユーザー入力のバリデーション
  2. フォーム送信時のエラーチェック
  3. 数値フィールドの検証
  4. 条件付きフィールドのロジック
  5. カスタムバリデーションルールの作成
  6. データベースへの格納前の検証

構文

wpcf7_is_number( $value );

パラメータ

  • $value: 検証対象の文字列。

戻り値

  • true: 入力が数値の場合。
  • false: 入力が数値でない場合。

使用可能なプラグインのバージョン

  • Contact Form 7 バージョン: 5.0 以上

使用可能なワードプレスのバージョン

  • WordPress バージョン: 4.0 以上

この関数のアクションでの使用可能性

アクション 使用可能
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1

if ( wpcf7_is_number( $_POST['user_age'] ) ) {
    // 年齢が数値である場合の処理
} else {
    // エラーメッセージを表示
}

このコードは、user_age フィールドの入力が数値であることを確認し、条件に応じた処理を行う例です。

サンプルコード 2

add_action( 'wpcf7_before_send_mail', 'validate_custom_field' );

function validate_custom_field( $contact_form ) {
    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        $data = $submission->get_posted_data();
        if ( ! wpcf7_is_number( $data['custom_number_field'] ) ) {
            // 数値でない場合、エラーメッセージを追加
            $contact_form->skip_mail = true;
            $contact_form->messages['custom_number_field'] = '数値を入力してください。';
        }
    }
}

このコードは、メール送信前にカスタムフィールドが数値であるかを検証し、数値でない場合はメールの送信をスキップします。

サンプルコード 3

function check_number_input( $input ) {
    if ( wpcf7_is_number( $input ) ) {
        return true;
    } else {
        return false;
    }
}

この関数は、渡された引数が数値かどうかを確認し、結果を返します。

サンプルコード 4

function custom_validation_filter( $result, $tag ) {
    $contact_form_id = $tag['form_id'];
    if ( $contact_form_id == 123 ) { // フォームIDを指定
        $user_input = isset( $_POST['input_name'] ) ? $_POST['input_name'] : '';
        if ( ! wpcf7_is_number( $user_input ) ) {
            $result->invalidate( $tag, "このフィールドには数値を入力してください。" );
        }
    }
    return $result;
}
add_filter( 'wpcf7_validate_text', 'custom_validation_filter', 10, 2 );

このコードは、特定のフォームのテキストフィールドに数値以外が入力された場合にエラーメッセージを表示するカスタムバリデーションを実装しています。

サンプルコード 5

add_action( 'wpcf7_before_send_mail', 'validate_number_field' );
function validate_number_field( $contact_form ) {
    // フォームの投稿データを取得
    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        $data = $submission->get_posted_data();
        if ( ! wpcf7_is_number( $data['number_field'] ) ) {
            // 数値でない場合、エラーメッセージを表示
            $contact_form->skip_mail = true;
            // ここに送信を停止するためのコードを記入
        }
    }
}

このコードは、メール送信前に特定のフィールドに数値が入力されているかを検証し、無効な入力の場合は送信を停止させる処理を実装しています。

この関数について質問する


上の計算式の答えを入力してください