WP_Recovery_Mode_Email_Service::maybe_send_recovery_mode_email() – Sends the recovery mode email if the rate limit has not been sent.

You appear to be a bot. Output may be restricted

Description

Sends the recovery mode email if the rate limit has not been sent.

Usage

$true|WP_Error = WP_Recovery_Mode_Email_Service::maybe_send_recovery_mode_email( $rate_limit, $error, $extension );

Parameters

$rate_limit
( int ) required – Number of seconds before another email can be sent.
$error
( array ) required – Error details from `error_get_last()`.
$extension
( array ) required – { The extension that caused the error.
$slug
( string ) required – The extension slug. The plugin or theme's directory.
$type
( string ) required – The extension type. Either 'plugin' or 'theme'. }

Returns

true|WP_Error True if email sent, WP_Error otherwise.

Source

File name: wordpress/wp-includes/class-wp-recovery-mode-email-service.php
Lines:

1 to 34 of 34
  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->WP_Recovery_Mode_Email_Service::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 );
  }
 

 View on GitHub View on Trac