Using WordPress ‘recovery_mode_email_rate_limit’ PHP filter

‘recovery_mode_email_rate_limit’ is a WordPress PHP filter that allows you to modify the time interval between sending new recovery mode email links.

Usage

add_filter( 'recovery_mode_email_rate_limit', 'my_custom_rate_limit' );

function my_custom_rate_limit( $rate_limit ) {
    // Your custom rate limit logic here
}

Parameters

  • $rate_limit (int)
    • Time to wait in seconds. Defaults to 1 day (86400 seconds).

Examples

Increase rate limit to 2 days

add_filter( 'recovery_mode_email_rate_limit', 'increase_rate_limit_to_2_days' );

function increase_rate_limit_to_2_days( $rate_limit ) {
    return 172800; // 2 days in seconds
}

This code increases the recovery mode email rate limit to 2 days (172800 seconds).

Decrease rate limit to 12 hours

add_filter( 'recovery_mode_email_rate_limit', 'decrease_rate_limit_to_12_hours' );

function decrease_rate_limit_to_12_hours( $rate_limit ) {
    return 43200; // 12 hours in seconds
}

This code decreases the recovery mode email rate limit to 12 hours (43200 seconds).

Set rate limit based on user role

add_filter( 'recovery_mode_email_rate_limit', 'set_rate_limit_based_on_user_role', 10, 2 );

function set_rate_limit_based_on_user_role( $rate_limit ) {
    $user = wp_get_current_user();

    if ( in_array( 'administrator', $user->roles ) ) {
        return 86400; // 1 day for administrators
    } else {
        return 259200; // 3 days for other users
    }
}

This code sets the recovery mode email rate limit to 1 day for administrators and 3 days for other users.

Disable rate limit

add_filter( 'recovery_mode_email_rate_limit', 'disable_recovery_mode_email_rate_limit' );

function disable_recovery_mode_email_rate_limit( $rate_limit ) {
    return 0;
}

This code disables the recovery mode email rate limit, allowing new recovery mode email links to be sent without any delay.

Set rate limit based on day of the week

add_filter( 'recovery_mode_email_rate_limit', 'set_rate_limit_based_on_day_of_week' );

function set_rate_limit_based_on_day_of_week( $rate_limit ) {
    $day_of_week = date( 'w' ); // Get current day of the week (0-6)

    if ( $day_of_week == 0 || $day_of_week == 6 ) {
        return 345600; // 4 days during weekends
    } else {
        return 86400; // 1 day during weekdays
    }
}

This code sets the recovery mode email rate limit to 4 days on weekends and 1 day on weekdays.