プラグインWPFormsのwpforms_post_submissions_process_metaアクションの使用方法・解説

概要

wpforms_post_submissions_process_meta アクションは、WPForms プラグインにおいてフォームの送信後にメタデータを処理するためのフックです。このアクションは、ユーザーがフォームを送信した際に、追加の処理を行いたい場合に利用されます。以下のような機能を実装する際によく使われます。

  1. フォーム送信後のメタデータの保存
  2. 投稿やカスタム投稿タイプへのメタ情報の追加
  3. 外部APIへのデータ送信
  4. データベースの更新
  5. フォーム送信後のメール通知のカスタマイズ
  6. アカウントの作成や更新に伴う処理

構文

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

この関数について質問する


上の計算式の答えを入力してください