/**
* Change cache time on form tokens
*
* @link https://wpforms.com/developers/how-to-change-the-cache-time-on-your-form-token
*/
// Create our array of times to check before today. A user with a longer
// cache time can extend this. A user with a shorter cache time can remove times.
$valid_token_times_before = apply_filters(
wpforms_form_token_check_before_today',
[
( 2 * DAY_IN_SECONDS ), // Two days ago.
( 1 * DAY_IN_SECONDS ), // One day ago.
]
);
// Mostly to catch edge cases like the form page loading and submitting on two different days.
// This probably won't be filtered by users too much, but they could extend it.
$valid_token_times_after = apply_filters(
'wpforms_form_token_check_after_today',
[
( 45 * MINUTE_IN_SECONDS ), // Add in 45 minutes past today to catch some midnight edge cases.
]
);
// Example use of the token:
add_filter( 'wpforms_form_token_check_before_today', 'example_add_longer_token_time_before' );
/**
* Extend the expiration time.
*/
function example_add_longer_token_time_before( $times ) {
// Allow the token to persist for 5 days
$times[] = 3 * DAY_IN_SECONDS;
$times[] = 4 * DAY_IN_SECONDS;
$times[] = 5 * DAY_IN_SECONDS;
}
add_filter( 'wpforms_form_token_check_after_today', 'example_add_longer_token_time_after' );
/**
* This filter is to catch edge cases of someone loading the form and submitting,
* with the expiration happening in between. Making this longer allows for more leeway.
*/
function example_add_longer_token_time_after( $times ) {
$times = array( DAY_IN_SECONDS );
}