Created
August 3, 2020 21:59
-
-
Save bradp/cbb4c5131785fe1e30f76786a49444fc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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