概要
wpcf7_recaptcha_threshold
フィルタは、Contact Form 7プラグインで使用されるreCAPTCHAのスパム判定の重み付けを上書きするために使用されます。これにより、特定の条件に基づいてスパムフィルタリングの精度を向上させたり、ユーザーの体験を改善することができます。このフィルタは、次のような機能を実装する際によく使われます。
- スパム判定の閾値をカスタマイズする。
- リクエストの特定の属性に基づいてスパムフィルタを調整する。
- adminや特定のユーザーからの送信をスパム判定から除外する。
- ユーザーの行動やセッションによってスパムスコアを変更する。
- 特定のフォームに異なるスコアを適用する。
- 開発中の環境でテスト目的のスコア変更を行う。
構文
apply_filters( 'wpcf7_recaptcha_threshold', $threshold, $form );
パラメータ
$threshold
: intのスパム判定のスコア。$form
: 現在のフォームインスタンス。
戻り値
- int: 変更後のスパムスコア。
使用可能なプラグインとバージョン
- 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_filter( 'wpcf7_recaptcha_threshold', function( $threshold ) {
return 5; // スパムスコアを5に設定
});
このコードは、スパムスコアを5に設定し、すべてのフォーム送信に対して一律の閾値を提供します。
サンプル2: 特定のフォームIDに基づいてスパムスコアを変更する
add_filter( 'wpcf7_recaptcha_threshold', function( $threshold, $form ) {
if ( $form->id() == 123 ) { // フォームIDが123の場合
return 3; // スパムスコアを3に変更
}
return $threshold; // それ以外は元のスコアを返す
}, 10, 2 );
このコードは、特定のフォームIDに対してのみスパムスコアを変更します。
サンプル3: 管理者からの送信を除外する
add_filter( 'wpcf7_recaptcha_threshold', function( $threshold ) {
if ( current_user_can( 'administrator' ) ) {
return 0; // 管理者からの送信はスパム判定なしにする
}
return $threshold;
});
このコードは、管理者が送信したフォームについてはスパム判定をスキップします。
サンプル4: 登録ユーザーのスパムスコアを下げる
add_filter( 'wpcf7_recaptcha_threshold', function( $threshold ) {
if ( is_user_logged_in() ) {
return max( 1, $threshold - 1 ); // ログインユーザーのスコアを1下げる
}
return $threshold;
});
このサンプルコードは、ログインユーザーのスパムスコアを1下げ、より良いユーザー体験を提供します。
サンプル5: 特定の条件に基づいてスコアを変動させる
add_filter( 'wpcf7_recaptcha_threshold', function( $threshold ) {
if ( isset( $_REQUEST['honey_pot'] ) && empty( $_REQUEST['honey_pot'] ) ) {
return 1; // ハニーポットが空であればスパムスコアを1にする
}
return $threshold;
});
このコードは、ハニーポットフィールドが空である場合にスパムスコアを変更します。
以上が wpcf7_recaptcha_threshold
フィルタの解説とサンプルコードです。各コードは独立して機能し、特定の要件に基づいてカスタマイズすることができます。