概要
wpforms_form_token_check_before_today
フィルタは、WPFormsプラグインが特定の日付より前のトークンのチェックを行う際に使用されます。このフィルタをフックすることで、トークンの有効性の確認に関するカスタマイズが可能になります。主に以下のような機能を実装する際に使用されます。
- トークンの有効期限を動的に変更する
- トークンの検証処理を拡張する
- 特定の条件に応じたトークンの取り扱いを設定する
- ユーザーごとのトークン管理を行う
- 多言語対応のトークンメッセージをカスタマイズする
- フォーム送信に関するロジックを柔軟に調整する
構文
add_filter( 'wpforms_form_token_check_before_today', 'your_function_name', 10, 2 );
パラメータ
$token
: チェックされるトークン$form_data
: フォームのデータ
戻り値
- トークンの有効性を示す真偽値(trueまたはfalse)
対応プラグインとバージョン
- WPForms: バージョン 1.6.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( 'wpforms_form_token_check_before_today', function( $token, $form_data ) {
if ( $form_data['id'] === '123' ) {
return false; // このフォームの場合、トークンを常に無効にする
}
return true;
});
説明: このコードは、IDが123のフォームに対してトークンを無効にする処理を行います。特定のフォームにおいてトークンが無効になるようカスタマイズしています。
サンプルコード 2
add_filter( 'wpforms_form_token_check_before_today', function( $token, $form_data ) {
$date = new DateTime();
$expiry_date = new DateTime( 'tomorrow' ); // 明日まで有効
if ( $date < $expiry_date ) {
return true; // トークンを有効にする
}
return false; // 無効にする
});
説明: このコードでは、現在の日付が明日より前であればトークンを有効にします。カスタムの有効期限を設定しています。
サンプルコード 3
add_filter( 'wpforms_form_token_check_before_today', function( $token, $form_data ) {
$user_meta = get_user_meta( get_current_user_id(), 'token_valid', true );
return $user_meta === 'yes'; // ユーザーがトークンを有効に持っている場合のみ有効
});
説明: このコードは、現在のユーザーのメタデータに基づいてトークンの有効性を決定します。特定のユーザーの状態によってトークンを管理します。
サンプルコード 4
add_filter( 'wpforms_form_token_check_before_today', function( $token, $form_data ) {
if ( $token === 'special_token' ) {
return true; // 特殊なトークンは常に有効
}
return false; // その他の場合は無効
});
説明: このコードは、「special_token」という特定のトークンの場合にのみ有効とします。特定のトークンを特別扱いしています。
サンプルコード 5
add_filter( 'wpforms_form_token_check_before_today', function( $token, $form_data ) {
$current_hour = date('H');
return $current_hour < 12; // 午前中のみトークンを有効に
});
説明: このコードでは、現在の時間が午前中であればトークンを有効にします。時間に基づく条件でのトークン管理を行っています。