概要
wpcf7_ajax_onload は、WordPress プラグイン Contact Form 7 における特定のアクションフックであり、AJAX リクエストによってフォームがロードされる際にトリガーされます。このアクションは、ユーザーがフォームを送信する前に特定の処理やカスタマイズを行うために便利です。具体的には次のような機能を実装する際によく使用されます。
- フォームフィールドの初期値設定
- カスタムスクリプトやスタイルの条件付き読み込み
- フォームの可視性や表示内容の動的変更
- インタラクティブなエラー表示の実装
- フォーム提出後のコンテンツのリロード
- フォームの状態に基づく他の要素の動的更新
構文
do_action( 'wpcf7_ajax_onload', $form );
パラメータ
$form: 処理中のフォームオブジェクト。
戻り値
- このアクションは戻り値を持ちません。
使用可能なバージョン
- 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_ajax_onload', function( $form ) {
if ( $form->id() == 123 ) { // 特定のフォームIDを指定
echo '<script>console.log("特定のフォームが読み込まれました。");</script>';
}
});
このコードは、特定のフォームが AJAX によってロードされた際に、JavaScript のコンソールにメッセージを表示します。
サンプルコード2
add_action( 'wpcf7_ajax_onload', function( $form ) {
$form_data = $form->get_posted_data();
if ( empty( $form_data['your-message'] ) ) {
echo '<script>document.querySelector("#your-message").value = "デフォルトメッセージ";</script>';
}
});
このコードは、フォームがロードされたときに、特定のフィールドが空であればデフォルトメッセージを設定します。
サンプルコード3
add_action( 'wpcf7_ajax_onload', function( $form ) {
if ( isset( $_GET['custom_var'] ) ) {
echo '<script>document.querySelector("#custom-field").value = "'. esc_js( $_GET['custom_var'] ) .'";</script>';
}
});
このコードは、URLのクエリパラメータから値を取得し、特定のフィールドに設定します。
サンプルコード4
add_action( 'wpcf7_ajax_onload', function( $form ) {
echo '<script src="custom-script.js"></script>'; // フォームの読み込み時にカスタムスクリプトを読み込む
});
このコードは、フォームがロードされる際にカスタム JavaScript ファイルを読み込む処理を実行します。
サンプルコード5
add_action( 'wpcf7_ajax_onload', function( $form ) {
echo '<style>#custom-section { display: none; }</style>'; // フォーム読み込み時に特定のセクションを非表示
});
このコードは、AJAX 読み込み時に特定のCSSスタイルを追加してセクションを非表示にします。