プラグインContact Form 7のwpcf7_recaptcha_actionsアクションの使用方法・解説

概要

wpcf7_recaptcha_actionsは、WordPressのプラグインContact Form 7において、GoogleのreCAPTCHAを利用する際に使用されるアクションフックです。このアクションを利用することで、フォームの送信時にreCAPTCHAの検証を行ったり、カスタムロジックを実装したりできます。具体的には以下のような機能を実装するのによく使われます:

  1. reCAPTCHAの検証結果をカスタマイズする
  2. エラーメッセージを変更する
  3. reCAPTCHAの設定を動的に変更する
  4. フォーム送信時の追加処理を実行する
  5. reCAPTCHAのスコアを元に条件分岐を行う
  6. 送信データのログを記録する

構文

add_action('wpcf7_recaptcha_actions', 'my_custom_recaptcha_action', 10, 2);

パラメータ

  • $submission: フォーム送信情報を含むオブジェクト
  • $form: 現在のフォームデータを含むオブジェクト

戻り値

このアクションの戻り値は特にありませんが、関数の中で特定の操作を実行することが可能です。

対応バージョン

  • Contact Form 7のバージョン: 5.0 以降
  • WordPressのバージョン: 5.0 以降

サンプルコード

サンプルコード1: reCAPTCHAの検証結果をカスタマイズ

このコードでは、reCAPTCHAの検証が失敗した場合に、カスタムメッセージを表示します。

add_action('wpcf7_recaptcha_actions', 'custom_recaptcha_error_message', 10, 2);
function custom_recaptcha_error_message($submission, $form) {
    if (!$submission->get_posted_data('g-recaptcha-response')) {
        $submission->set_validation_error('recaptcha', 'reCAPTCHAの検証に失敗しました。');
    }
}

サンプルコード2: reCAPTCHAのスコアに基づく条件分岐

reCAPTCHAが取得したスコアに基づいて、特定のアクションを実行します。

add_action('wpcf7_recaptcha_actions', 'check_recaptcha_score', 10, 2);
function check_recaptcha_score($submission, $form) {
    $score = get_recaptcha_score($submission);
    if ($score < 0.5) {
        // スコアが低いため、送信を拒否
        $submission->set_validation_error('recaptcha', '低リスクのユーザーと見なされませんでした。');
    }
}

サンプルコード3: フォーム送信時の追加処理

フォームが正常に送信された際に、追加の処理を実行します。

add_action('wpcf7_recaptcha_actions', 'additional_submission_process', 10, 2);
function additional_submission_process($submission, $form) {
    // ここに追加の処理を記述
    log_submission_data($submission->get_posted_data());
}

サンプルコード4: エラーメッセージのカスタマイズ

特定の条件を満たす際にエラーメッセージを変更します。

add_action('wpcf7_recaptcha_actions', 'custom_error_message_based_on_conditions', 10, 2);
function custom_error_message_based_on_conditions($submission, $form) {
    // 特定の条件に基づいてエラーメッセージを変更
    if (some_condition()) {
        $submission->set_validation_error('recaptcha', 'カスタムエラーメッセージが表示されました。');
    }
}

サンプルコード5: 登録データのログを記録

reCAPTCHAの成功時に送信データをログに記録します。

add_action('wpcf7_recaptcha_actions', 'log_recaptcha_success', 10, 2);
function log_recaptcha_success($submission, $form) {
    if ($submission->get_posted_data('g-recaptcha-response')) {
        log_user_data($submission->get_posted_data());
    }
}

この関数のアクションでの使用可能性

アクション名 使用可能
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

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


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