Skip to content

Instantly share code, notes, and snippets.

@bradp
Created August 3, 2020 21:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradp/cbb4c5131785fe1e30f76786a49444fc to your computer and use it in GitHub Desktop.
Save bradp/cbb4c5131785fe1e30f76786a49444fc to your computer and use it in GitHub Desktop.
<?php
// Filter is in wpforms/src/Forms/Token.php - get_valid_tokens();
// 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 );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment