Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-inclu...
File: class-wp-recovery-mode-link-service.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Error Protection API: WP_Recovery_Mode_Link_Handler class
[2] Fix | Delete
*
[3] Fix | Delete
* @package WordPress
[4] Fix | Delete
* @since 5.2.0
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
/**
[8] Fix | Delete
* Core class used to generate and handle recovery mode links.
[9] Fix | Delete
*
[10] Fix | Delete
* @since 5.2.0
[11] Fix | Delete
*/
[12] Fix | Delete
#[AllowDynamicProperties]
[13] Fix | Delete
class WP_Recovery_Mode_Link_Service {
[14] Fix | Delete
const LOGIN_ACTION_ENTER = 'enter_recovery_mode';
[15] Fix | Delete
const LOGIN_ACTION_ENTERED = 'entered_recovery_mode';
[16] Fix | Delete
[17] Fix | Delete
/**
[18] Fix | Delete
* Service to generate and validate recovery mode keys.
[19] Fix | Delete
*
[20] Fix | Delete
* @since 5.2.0
[21] Fix | Delete
* @var WP_Recovery_Mode_Key_Service
[22] Fix | Delete
*/
[23] Fix | Delete
private $key_service;
[24] Fix | Delete
[25] Fix | Delete
/**
[26] Fix | Delete
* Service to handle cookies.
[27] Fix | Delete
*
[28] Fix | Delete
* @since 5.2.0
[29] Fix | Delete
* @var WP_Recovery_Mode_Cookie_Service
[30] Fix | Delete
*/
[31] Fix | Delete
private $cookie_service;
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
* WP_Recovery_Mode_Link_Service constructor.
[35] Fix | Delete
*
[36] Fix | Delete
* @since 5.2.0
[37] Fix | Delete
*
[38] Fix | Delete
* @param WP_Recovery_Mode_Cookie_Service $cookie_service Service to handle setting the recovery mode cookie.
[39] Fix | Delete
* @param WP_Recovery_Mode_Key_Service $key_service Service to handle generating recovery mode keys.
[40] Fix | Delete
*/
[41] Fix | Delete
public function __construct( WP_Recovery_Mode_Cookie_Service $cookie_service, WP_Recovery_Mode_Key_Service $key_service ) {
[42] Fix | Delete
$this->cookie_service = $cookie_service;
[43] Fix | Delete
$this->key_service = $key_service;
[44] Fix | Delete
}
[45] Fix | Delete
[46] Fix | Delete
/**
[47] Fix | Delete
* Generates a URL to begin recovery mode.
[48] Fix | Delete
*
[49] Fix | Delete
* Only one recovery mode URL can may be valid at the same time.
[50] Fix | Delete
*
[51] Fix | Delete
* @since 5.2.0
[52] Fix | Delete
*
[53] Fix | Delete
* @return string Generated URL.
[54] Fix | Delete
*/
[55] Fix | Delete
public function generate_url() {
[56] Fix | Delete
$token = $this->key_service->generate_recovery_mode_token();
[57] Fix | Delete
$key = $this->key_service->generate_and_store_recovery_mode_key( $token );
[58] Fix | Delete
[59] Fix | Delete
return $this->get_recovery_mode_begin_url( $token, $key );
[60] Fix | Delete
}
[61] Fix | Delete
[62] Fix | Delete
/**
[63] Fix | Delete
* Enters recovery mode when the user hits wp-login.php with a valid recovery mode link.
[64] Fix | Delete
*
[65] Fix | Delete
* @since 5.2.0
[66] Fix | Delete
*
[67] Fix | Delete
* @global string $pagenow The filename of the current screen.
[68] Fix | Delete
*
[69] Fix | Delete
* @param int $ttl Number of seconds the link should be valid for.
[70] Fix | Delete
*/
[71] Fix | Delete
public function handle_begin_link( $ttl ) {
[72] Fix | Delete
if ( ! isset( $GLOBALS['pagenow'] ) || 'wp-login.php' !== $GLOBALS['pagenow'] ) {
[73] Fix | Delete
return;
[74] Fix | Delete
}
[75] Fix | Delete
[76] Fix | Delete
if ( ! isset( $_GET['action'], $_GET['rm_token'], $_GET['rm_key'] ) || self::LOGIN_ACTION_ENTER !== $_GET['action'] ) {
[77] Fix | Delete
return;
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
if ( ! function_exists( 'wp_generate_password' ) ) {
[81] Fix | Delete
require_once ABSPATH . WPINC . '/pluggable.php';
[82] Fix | Delete
}
[83] Fix | Delete
[84] Fix | Delete
$validated = $this->key_service->validate_recovery_mode_key( $_GET['rm_token'], $_GET['rm_key'], $ttl );
[85] Fix | Delete
[86] Fix | Delete
if ( is_wp_error( $validated ) ) {
[87] Fix | Delete
wp_die( $validated, '' );
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
$this->cookie_service->set_cookie();
[91] Fix | Delete
[92] Fix | Delete
$url = add_query_arg( 'action', self::LOGIN_ACTION_ENTERED, wp_login_url() );
[93] Fix | Delete
wp_redirect( $url );
[94] Fix | Delete
die;
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
/**
[98] Fix | Delete
* Gets a URL to begin recovery mode.
[99] Fix | Delete
*
[100] Fix | Delete
* @since 5.2.0
[101] Fix | Delete
*
[102] Fix | Delete
* @param string $token Recovery Mode token created by {@see generate_recovery_mode_token()}.
[103] Fix | Delete
* @param string $key Recovery Mode key created by {@see generate_and_store_recovery_mode_key()}.
[104] Fix | Delete
* @return string Recovery mode begin URL.
[105] Fix | Delete
*/
[106] Fix | Delete
private function get_recovery_mode_begin_url( $token, $key ) {
[107] Fix | Delete
[108] Fix | Delete
$url = add_query_arg(
[109] Fix | Delete
array(
[110] Fix | Delete
'action' => self::LOGIN_ACTION_ENTER,
[111] Fix | Delete
'rm_token' => $token,
[112] Fix | Delete
'rm_key' => $key,
[113] Fix | Delete
),
[114] Fix | Delete
wp_login_url()
[115] Fix | Delete
);
[116] Fix | Delete
[117] Fix | Delete
/**
[118] Fix | Delete
* Filters the URL to begin recovery mode.
[119] Fix | Delete
*
[120] Fix | Delete
* @since 5.2.0
[121] Fix | Delete
*
[122] Fix | Delete
* @param string $url The generated recovery mode begin URL.
[123] Fix | Delete
* @param string $token The token used to identify the key.
[124] Fix | Delete
* @param string $key The recovery mode key.
[125] Fix | Delete
*/
[126] Fix | Delete
return apply_filters( 'recovery_mode_begin_url', $url, $token, $key );
[127] Fix | Delete
}
[128] Fix | Delete
}
[129] Fix | Delete
[130] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function