概要
wpcf7_log_remote_request
アクションは、WordPressの人気プラグイン「Contact Form 7」において、リモートリクエストのログ出力内容を加工するために使用されます。このアクションを利用することで、送信されたフォームに関する情報をカスタマイズしてログに記録することが可能です。具体的には、以下のような用途に活用されることがよくあります。
- ログのフォーマットを変更する
- 特定のフィールド値をフィルタリングする
- ログに追加情報を付加する
- カスタムログファイルに出力する
- エラーハンドリングの強化
- 通知設定に基づくログ出力の条件分岐
構文
do_action( 'wpcf7_log_remote_request', $response, $submission );
パラメータ
$response
: リモートリクエストのレスポンス情報を格納した配列。$submission
: フォームの送信データを含むオブジェクト。
戻り値
このアクション自体は何も戻しませんが、フックされた関数が実行されることによって、ログ出力の内容が変更されます。
使用可能なプラグインContact Form 7のバージョン
このアクションは Contact Form 7
バージョン 5.0以降で利用可能です。
ワードプレスのバージョン
WordPress 5.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_log_remote_request', 'custom_log_remote_request', 10, 2 );
function custom_log_remote_request( $response, $submission ) {
// 送信データからメールアドレスを取得し、ログに記録する
$email = $submission->get_posted_data()['your-email'];
error_log( "Email sent: " . $email );
}
このサンプルコードは、フォーム送信時にメールアドレスを取得し、PHPのエラーログに記録するものです。
サンプルコード2
add_action( 'wpcf7_log_remote_request', 'update_log_with_custom_message', 10, 2 );
function update_log_with_custom_message( $response, $submission ) {
// カスタムメッセージをログに出力
error_log( "Form submitted successfully: " . json_encode( $submission->get_posted_data() ) );
}
このサンプルコードは、フォームが送信された際にカスタムメッセージと投稿データをエラーログに記録します。
サンプルコード3
add_action( 'wpcf7_log_remote_request', 'log_response_status', 10, 2 );
function log_response_status( $response, $submission ) {
// レスポンスが成功したかどうかをログに出力
if ( isset( $response['status'] ) && $response['status'] === 'success' ) {
error_log( "Response Status: " . $response['status'] );
}
}
このサンプルコードは、リモートリクエストのレスポンスが成功だった場合のみ、その状態をログに記録します。
サンプルコード4
add_action( 'wpcf7_log_remote_request', 'filter_remote_request_log', 10, 2 );
function filter_remote_request_log( $response, $submission ) {
// 特定のフィールドが空でない場合にのみログする
if ( ! empty( $submission->get_posted_data()['your-field'] ) ) {
error_log( "Field value: " . $submission->get_posted_data()['your-field'] );
}
}
このサンプルコードは、特定のフィールドが空でない場合のみ、その値をエラーログに記録します。
サンプルコード5
add_action( 'wpcf7_log_remote_request', 'custom_log_to_file', 10, 2 );
function custom_log_to_file( $response, $submission ) {
// カスタムログファイルにデータを書き込む
$log_file = ABSPATH . 'custom-log.txt';
file_put_contents( $log_file, "Data: " . json_encode( $submission->get_posted_data() ) . "n", FILE_APPEND);
}
このサンプルコードは、フォームから送信されたデータをカスタムログファイルに書き込むものです。