Sends the recovery mode email if the rate limit has not been sent.
Parameters
$rate_limit
intrequired- Number of seconds before another email can be sent.
$error
arrayrequired- Error details from
error_get_last()
. $extension
arrayrequired- The extension that caused the error.
slug
stringThe extension slug. The plugin or theme’s directory.type
stringThe extension type. Either'plugin'
or'theme'
.
Source
public function maybe_send_recovery_mode_email( $rate_limit, $error, $extension ) {
$last_sent = get_option( self::RATE_LIMIT_OPTION );
if ( ! $last_sent || time() > $last_sent + $rate_limit ) {
if ( ! update_option( self::RATE_LIMIT_OPTION, time() ) ) {
return new WP_Error( 'storage_error', __( 'Could not update the email last sent time.' ) );
}
$sent = $this->send_recovery_mode_email( $rate_limit, $error, $extension );
if ( $sent ) {
return true;
}
return new WP_Error(
'email_failed',
sprintf(
/* translators: %s: mail() */
__( 'The email could not be sent. Possible reason: your host may have disabled the %s function.' ),
'mail()'
)
);
}
$err_message = sprintf(
/* translators: 1: Last sent as a human time diff, 2: Wait time as a human time diff. */
__( 'A recovery link was already sent %1$s ago. Please wait another %2$s before requesting a new email.' ),
human_time_diff( $last_sent ),
human_time_diff( $last_sent + $rate_limit )
);
return new WP_Error( 'email_sent_already', $err_message );
}
Changelog
Version | Description |
---|---|
5.2.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.