概要
wpcf7_after_create
は、WordPressのContact Form 7プラグインにおけるアクションフックであり、フォームが作成された直後にトリガーされます。このフックは、以下のような機能を実装する際によく使用されます。
- フォームデータのカスタム処理を追加する。
- データベースに独自のエントリを保存する。
- フォームが作成されたことに基づいて通知を送信する。
- サードパーティのAPIにデータを送信する。
- 特定の条件下でのフィルタリングやバリデーションを実行する。
- フォームのメタデータを管理する。
構文
do_action( 'wpcf7_after_create', $contact_form );
パラメータ
$contact_form
(ContactForm セットアップオブジェクト): 作成されたContact Form 7のインスタンス。
戻り値
このアクションは戻り値を持ちません。主に副作用を目的としたフックです。
使用可能なバージョン
- Contact Form 7バージョン: 5.0以上
- WordPressバージョン: 5.0以上
サンプルコード
サンプルコード1
add_action( 'wpcf7_after_create', 'custom_after_create_function' );
function custom_after_create_function( $contact_form ) {
// フォームが作成された際にカスタムメッセージをログに書き込む
error_log( 'New contact form created: ' . $contact_form->id() );
}
このコードは、Contact Form 7の新しいフォームが作成された時に、そのフォームのIDをエラーログに記録します。
サンプルコード2
add_action( 'wpcf7_after_create', 'save_form_meta_data' );
function save_form_meta_data( $contact_form ) {
$form_id = $contact_form->id();
// フォームのメタデータをカスタムテーブルに保存
global $wpdb;
$table_name = $wpdb->prefix . 'my_custom_meta';
$wpdb->insert( $table_name, array( 'form_id' => $form_id, 'meta_data' => json_encode( array( 'created_at' => current_time( 'mysql' ) ) ) ) ) );
}
このコードは、新しいフォームが作成された際に、フォームのIDと作成時間をカスタムテーブルに保存します。
サンプルコード3
add_action( 'wpcf7_after_create', 'send_api_notification' );
function send_api_notification( $contact_form ) {
$form_data = array(
'form_id' => $contact_form->id(),
'form_title' => $contact_form->title(),
);
wp_remote_post( 'https://example.com/api/notify', array(
'method' => 'POST',
'body' => json_encode( $form_data ),
'headers' => array( 'Content-Type' => 'application/json' ),
) );
}
このコードでは、新しいフォームが作成された時にサードパーティのAPIに通知を送信します。
サンプルコード4
add_action( 'wpcf7_after_create', 'custom_form_validation' );
function custom_form_validation( $contact_form ) {
$form_id = $contact_form->id();
// 特定の条件下でフォームのバリデーションを実行
if ( $form_id === 123 ) {
// 特別なロジックをここに追加
}
}
このコードは、特定のフォームIDの場合にのみ、カスタムバリデーションロジックを適用します。
サンプルコード5
add_action( 'wpcf7_after_create', 'create_related_post' );
function create_related_post( $contact_form ) {
// フォームに関連するカスタム投稿タイプを自動生成
$post_id = wp_insert_post( array(
'post_title' => 'Form Submission: ' . $contact_form->title(),
'post_type' => 'your_custom_post_type',
'post_status' => 'publish',
) );
}
このコードは、Contact Form 7で新しいフォームが作成されると、関連するカスタム投稿を自動的に作成します。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |