概要
wpforms_frontend_recaptcha
フィルタは、WPFormsプラグインでGoogle reCAPTCHAを搭載する際に使用されるフックです。このフィルタを使用することで、カスタムロジックを追加したり、reCAPTCHAの表示方法や動作を調整したりすることができます。以下は、一般的なシナリオのいくつかです。
- reCAPTCHAのスタイルやテーマの変更
- reCAPTCHAチャレンジの条件をカスタマイズ
- reCAPTCHAの有効/無効を動的に変更
- 特定のフォームにのみreCAPTCHAを適用
- reCAPTCHAのエラーメッセージをカスタマイズ
- フォーム送信時のreCAPTCHAチェックのロジックを変更
構文
apply_filters( 'wpforms_frontend_recaptcha', $html, $form_data );
パラメータ
$html
(string) : reCAPTCHAのHTMLコード。$form_data
(array) : フォームのデータや設定。
戻り値
- (string) : フィルタ後のreCAPTCHAのHTMLコード。
対応するプラグインおよびワードプレスのバージョン
- 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_filter( 'wpforms_frontend_recaptcha', 'custom_recaptcha_html', 10, 2 );
function custom_recaptcha_html( $html, $form_data ) {
// reCAPTCHAのテーマをカスタマイズ
$html = str_replace( 'data-theme="light"', 'data-theme="dark"', $html );
return $html;
}
このサンプルは、reCAPTCHAのテーマを「light」から「dark」に変更しています。
サンプルコード 2
add_filter( 'wpforms_frontend_recaptcha', 'conditional_recaptcha', 10, 2 );
function conditional_recaptcha( $html, $form_data ) {
// 特定のフォームIDのみreCAPTCHAを有効にする
if ( $form_data['id'] !== 123 ) {
return ''; // reCAPTCHAを非表示にする
}
return $html;
}
このコードは、特定のフォームID(この例では123)のみでreCAPTCHAを有効にし、それ以外では非表示にします。
サンプルコード 3
add_filter( 'wpforms_frontend_recaptcha', 'custom_recaptcha_error_message', 10, 2 );
function custom_recaptcha_error_message( $html, $form_data ) {
// reCAPTCHAのエラーメッセージをカスタマイズ
return str_replace( 'reCAPTCHA validation failed.', 'お手数ですが、再度お試しください。', $html );
}
このサンプルは、reCAPTCHAのエラーメッセージをカスタマイズしています。
サンプルコード 4
add_filter( 'wpforms_frontend_recaptcha', 'dynamic_enable_recaptcha', 10, 2 );
function dynamic_enable_recaptcha( $html, $form_data ) {
// 管理者がログインしているときはreCAPTCHAを無効化
if ( current_user_can( 'administrator' ) ) {
return '';
}
return $html;
}
このサンプルコードは、管理者がログインしている場合にreCAPTCHAを無効にします。
サンプルコード 5
add_filter( 'wpforms_frontend_recaptcha', 'custom_recaptcha_language', 10, 2 );
function custom_recaptcha_language( $html, $form_data ) {
// reCAPTCHAに特定の言語を設定する
$html = str_replace( 'data-lang="en"', 'data-lang="ja"', $html ); // 日本語に変更
return $html;
}
このサンプルは、reCAPTCHAの言語を英語から日本語に変更しています。