概要
wpcf7_is_number
関数は、入力文字列が数値かどうかを返す関数です。この関数は、Contact Form 7 プラグインで数値の検証を行う際に非常に便利です。以下のような機能でよく使われます:
- ユーザー入力のバリデーション
- フォーム送信時のエラーチェック
- 数値フィールドの検証
- 条件付きフィールドのロジック
- カスタムバリデーションルールの作成
- データベースへの格納前の検証
構文
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;
// ここに送信を停止するためのコードを記入
}
}
}
このコードは、メール送信前に特定のフィールドに数値が入力されているかを検証し、無効な入力の場合は送信を停止させる処理を実装しています。