概要
wpcf7_validation_error
アクションは、WordPressのプラグイン「Contact Form 7」のバリデーションエラーを処理するために使用されます。このアクションは、カスタムバリデーションエラーメッセージを返す際や、特定の条件に基づいてエラーを追加する場合に便利です。
このアクションを利用することで、以下のような機能を実装する際に役立ちます:
- エラーメッセージのカスタマイズ
- 特定のフィールドに対する追加のバリデーション
- バリデーションロジックの条件分岐
- リアルタイムのエラーチェック
- アプリケーションの特定のビジネスロジックに基づくエラー処理
- フォーム送信の前にユーザー通知
構文
do_action( 'wpcf7_validation_error', $validation_error, $contact_form );
パラメータ
$validation_error
: バリデーションエラーのメッセージ。$contact_form
: 現在のコンタクトフォームオブジェクト。
戻り値
特に戻り値はありません。Errorメッセージをフィルタリングする際に使用します。
バージョン
- 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
add_action( 'wpcf7_validation_error', 'custom_validation_error', 10, 2 );
function custom_validation_error( $validation_error, $contact_form ) {
$submitted_data = $contact_form->get_posted_data();
if ( empty( $submitted_data['your-field-name'] ) ) {
$validation_error .= "このフィールドは必須です。";
}
return $validation_error;
}
このサンプルコードは、特定のフィールドが空である場合に「このフィールドは必須です。」というエラーメッセージを追加します。
サンプルコード 2
add_action( 'wpcf7_validation_error', 'append_custom_error', 10, 2 );
function append_custom_error( $validation_error, $contact_form ) {
$email = $contact_form->get_posted_data()['email'];
if ( !is_email( $email ) ) {
$validation_error .= "正しいメールアドレスを入力してください。";
}
return $validation_error;
}
このサンプルコードは、メールアドレスフィールドが有効でない場合にエラーメッセージを追加します。
サンプルコード 3
add_action( 'wpcf7_validation_error', 'custom_field_error', 10, 2 );
function custom_field_error( $validation_error, $contact_form ) {
if ( isset( $_POST['custom_field'] ) && $_POST['custom_field'] !== 'expected_value' ) {
$validation_error .= "無効な値が入力されました。";
}
return $validation_error;
}
このサンプルは、特定のカスタムフィールドが期待される値と合致しない場合にエラーを追加します。
サンプルコード 4
add_action( 'wpcf7_validation_error', 'check_age_field', 10, 2 );
function check_age_field( $validation_error, $contact_form ) {
if ( intval( $_POST['age'] ) < 18 ) {
$validation_error .= "18歳以上でなければなりません。";
}
return $validation_error;
}
このコードは、「age」フィールドが18未満である場合にエラーメッセージを追加します。
サンプルコード 5
add_action( 'wpcf7_validation_error', 'validate_terms_and_conditions', 10, 2 );
function validate_terms_and_conditions( $validation_error, $contact_form ) {
if ( ! isset( $_POST['terms'] ) ) {
$validation_error .= "利用規約に同意する必要があります。";
}
return $validation_error;
}
このサンプルコードは、利用規約に同意していない場合にエラーを表示します。