概要
wpforms_post_submissions_process_meta
アクションは、WPForms プラグインにおいてフォームの送信後にメタデータを処理するためのフックです。このアクションは、ユーザーがフォームを送信した際に、追加の処理を行いたい場合に利用されます。以下のような機能を実装する際によく使われます。
- フォーム送信後のメタデータの保存
- 投稿やカスタム投稿タイプへのメタ情報の追加
- 外部APIへのデータ送信
- データベースの更新
- フォーム送信後のメール通知のカスタマイズ
- アカウントの作成や更新に伴う処理
構文
do_action('wpforms_post_submissions_process_meta', $form_data, $form_id);
パラメータ
$form_data
: 送信されたフォームのデータ。$form_id
: 送信されたフォームのID。
戻り値
このアクション自体は値を返しません。
使用可能なプラグインWPFormsのバージョン
このアクションは、WPFormsのバージョン1.6以降で使用可能です。
使用可能なワードプレスのバージョン
このアクションは、WordPressのバージョン4.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 | 〇 |
サンプルコード
サンプル1: フォーム送信後にカスタムメタデータを保存
このサンプルコードは、フォーム送信後にカスタムフィールドにデータを保存するための例です。
add_action('wpforms_post_submissions_process_meta', 'save_custom_meta_data', 10, 2);
function save_custom_meta_data($form_data, $form_id) {
if ($form_id === 123) { // フォームIDをチェック
$custom_value = sanitize_text_field($form_data['fields'][1]['value']);
update_post_meta($form_data['post_id'], 'custom_meta_key', $custom_value);
}
}
引用元: wpforms.com
サンプル2: フォーム送信後にWebhookを呼び出す
このサンプルコードは、フォーム送信後に外部APIにデータを送信します。
add_action('wpforms_post_submissions_process_meta', 'send_to_webhook', 10, 2);
function send_to_webhook($form_data, $form_id) {
$webhook_url = 'https://example.com/webhook';
$body = json_encode($form_data['fields']);
wp_remote_post($webhook_url, array(
'body' => $body,
'headers' => array('Content-Type' => 'application/json'),
));
}
引用元: wpforms.com
サンプル3: フォーム送信時にメール通知をカスタマイズ
このサンプルコードは、フォーム送信後にメールの内容を変更する方法を示しています。
add_action('wpforms_post_submissions_process_meta', 'custom_email_notification', 10, 2);
function custom_email_notification($form_data, $form_id) {
if ($form_id === 456) {
$to = 'admin@example.com';
$subject = '新しいフォーム送信';
$message = 'カスタムメッセージ: ' . $form_data['fields'][0]['value'];
wp_mail($to, $subject, $message);
}
}
引用元: wpforms.com
サンプル4: 投稿のメタ情報を更新
このサンプルは、送信されたフォームのデータを用いてカスタム投稿のメタ情報を更新するコードです。
add_action('wpforms_post_submissions_process_meta', 'update_post_meta_on_submission', 10, 2);
function update_post_meta_on_submission($form_data, $form_id) {
if ($form_id === 789) {
$post_id = $form_data['post_id'];
update_post_meta($post_id, 'submitted_value', $form_data['fields'][2]['value']);
}
}
引用元: wpforms.com
サンプル5: フォーム送信後にカスタムログを作成
このサンプルコードは、フォーム送信後にカスタムログを生成する方法を示します。
add_action('wpforms_post_submissions_process_meta', 'create_custom_log', 10, 2);
function create_custom_log($form_data, $form_id) {
if ($form_id === 321) {
$log_entry = 'フォームID: ' . $form_id . ' - 提出内容: ' . json_encode($form_data['fields']);
file_put_contents('custom_log.txt', $log_entry . PHP_EOL, FILE_APPEND);
}
}
引用元: wpforms.com