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

概要

wpforms_entry_save_data アクションは、WPForms プラグインにおいてフォームが送信された際に、エントリデータが保存された直後に実行されるフックです。このアクションは、特に以下のような機能を実装する際に便利です。

  1. エントリデータのカスタム処理
  2. 他のデータベーステーブルへのデータ転送
  3. エントリが保存された際の通知送信
  4. 送信データのログ記録
  5. 追加のデータ加工
  6. 外部 API へのデータ送信

構文

do_action( 'wpforms_entry_save_data', $form_data, $fields, $entry_id );

パラメータ

  • $form_data (array): フォームから送信された元のデータ。
  • $fields (array): 各フィールドの詳細情報。
  • $entry_id (int): 新しく保存されたエントリの ID。

戻り値

このアクションには戻り値はありません。

使用可能なプラグインとワードプレスのバージョン

  • WPForms バージョン: 1.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( 'wpforms_entry_save_data', 'custom_save_data_function', 10, 3 );
function custom_save_data_function( $form_data, $fields, $entry_id ) {
    // 特定のフィールドの値を取得
    $custom_field_value = $fields[ 'field_id' ]['value'];

    // ここでカスタムされたデータとして処理する
    // 例: 何かのAPIに送信するなど
}

引用元: WPForms Documentations

サンプルコード 2: データのログ記録

このサンプルコードは、送信されたデータをログファイルに記録します。

add_action( 'wpforms_entry_save_data', 'log_wpforms_entry', 10, 3 );
function log_wpforms_entry( $form_data, $fields, $entry_id ) {
    $log_file = plugin_dir_path( __FILE__ ) . 'wpforms-log.txt';
    file_put_contents( $log_file, print_r( $form_data, true ), FILE_APPEND );
}

引用元: WordPress Codex

サンプルコード 3: 通知メールの送信

このコードは、フォーム送信後にカスタム通知メールを送信します。

add_action( 'wpforms_entry_save_data', 'send_notification_email', 10, 3 );
function send_notification_email( $form_data, $fields, $entry_id ) {
    $to = 'example@example.com';
    $subject = '新しいフォームエントリ';
    $message = 'エントリが保存されました。';
    wp_mail( $to, $subject, $message );
}

引用元: WPForms Tutorials

サンプルコード 4: 外部 API へのデータ送信

このサンプルは、送信されたデータを外部 API に送信する例です。

add_action( 'wpforms_entry_save_data', 'send_data_to_external_api', 10, 3 );
function send_data_to_external_api( $form_data, $fields, $entry_id ) {
    $api_url = 'https://example.com/api';
    $response = wp_remote_post( $api_url, array(
        'body' => json_encode( $form_data ),
        'headers' => array( 'Content-Type' => 'application/json' ),
    ));
}

引用元: API Integration Guide

サンプルコード 5: 自動返信メールのカスタマイズ

このサンプルコードは、エントリ保存後に自動返信メールのカスタマイズを行います。

add_action( 'wpforms_entry_save_data', 'custom_auto_reply', 10, 3 );
function custom_auto_reply( $form_data, $fields, $entry_id ) {
    $email = $fields[ 'email' ]['value']; // フィールド名 'email' を想定
    $subject = '送信ありがとうございます';
    $message = 'あなたのエントリが保存されました。';
    wp_mail( $email, $subject, $message );
}

引用元: Custom Notifications Documentation

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


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