概要
wpforms_form_token_check_after_today
は、WPFormsプラグインにおいて、フォームのトークンの有効期限を確認した後に実行されるフックです。このアクションを使用することで、特定の日付以降のトークンの処理や、カスタムのバリデーションを追加することができます。このフックは、以下のようなシナリオでよく使用されます。
- フォームの有効期限をカスタマイズする
- トークンの確認後にユーザーへの通知を追加する
- トークンが無効な場合のカスタムメッセージの表示
- 異なるトークンの条件に基づいて異なる処理を行う
- ログ記録機能を追加し、トークン状態を監視する
- 他のプラグインやテーマとの連携処理を追加する
構文
add_action('wpforms_form_token_check_after_today', 'your_callback_function', 10, 2);
パラメータ
$form_data
: フォームのデータ$form_id
: フォームのID
戻り値
戻り値は特にありませんが、フック内で処理を行った結果を反映させることが可能です。
WPFormsのバージョン
このアクションは、WPFormsのバージョン1.5以降で使用可能です。
WordPressのバージョン
WordPressのバージョン4.9以降で使用可能です。
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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('wpforms_form_token_check_after_today', 'custom_token_check_message', 10, 2);
function custom_token_check_message( $form_data, $form_id ) {
if ( $form_data['settings']['token_expiration'] < current_time('timestamp') ) {
wp_die('このトークンは無効です。新しいトークンを取得してください。');
}
}
このコードは、トークンの有効期限が現在の時間を過ぎている場合に、カスタムメッセージを表示してフォームの送信を停止します。
サンプル2: トークンの確認結果をログに記録
add_action('wpforms_form_token_check_after_today', 'log_token_check', 10, 2);
function log_token_check( $form_data, $form_id ) {
$log_entry = 'Form ID: ' . $form_id . ' - Token checked at: ' . current_time('mysql') . "n";
error_log($log_entry);
}
このコードは、トークンチェックの結果をエラーログに記録します。後でデバッグや分析に利用できます。
サンプル3: トークンの処理をカスタマイズ
add_action('wpforms_form_token_check_after_today', 'custom_token_action', 10, 2);
function custom_token_action( $form_data, $form_id ) {
// トークンが無効な場合の処理
if ( $form_data['settings']['token_expiration'] < current_time('timestamp') ) {
// 他の処理を実行
// たとえば、管理者に通知を送るなど
}
}
ここでは、トークンが無効な場合に特定の処理を実行するための基本的な構造を提供します。
サンプル4: フォームのトークン有効期限を延長
add_action('wpforms_form_token_check_after_today', 'extend_token_validity', 10, 2);
function extend_token_validity( $form_data, $form_id ) {
if ( $form_data['settings']['token_expiration'] < current_time('timestamp') ) {
// 有効期限を14日延長
$form_data['settings']['token_expiration'] = current_time('timestamp') + (14 * DAY_IN_SECONDS);
}
}
このコードは、トークンの有効期限が切れている場合に、その期限を14日間延長します。
サンプル5: ユーザーへの通知を追加
add_action('wpforms_form_token_check_after_today', 'notify_user_on_token_check', 10, 2);
function notify_user_on_token_check( $form_data, $form_id ) {
if ( $form_data['settings']['token_expiration'] < current_time('timestamp') ) {
// トークンが無効な場合、ユーザーに通知
wp_mail(get_option('admin_email'), 'トークンが無効です', 'トークンID: ' . $form_data['settings']['token']);
}
}
このコードは、トークンが無効な場合に管理者にメール通知を送信します。トークンIDも含まれています。