Description

The filter is used to extend the cache times used for the form token.

Parameters

$times
(array) An array of times to check before today.

Source

wpforms/src/Forms/Token.php

More Information

The wpforms_form_token_check_before_today filter can be used to extend the cache times that WPForms uses on the form tokens for the before times.

This filter is used mostly to catch edge cases like the form page loading and submitting on two different days.

There is another available filter for extending the cache times after as well. Please see the wpforms_form_token_check_after_today filter.

Example

/**
 * Change cache time on form tokens
 *
 * @link https://wpforms.com/developers/wpforms_form_token_check_before_today/
 */
 
 
    // 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 );
    }

Snippet Reference: How to Change the Cache Time on Your Form Token

Additional Filter Reference: wpforms_form_token_check_after_today