wppaste
WordPress

WP_Recovery_Mode_Link_Service

Since
5.2.0
Source
wp-includes/class-wp-recovery-mode-link-service.php:14
Core class used to generate and handle recovery mode links.

Compatibility

WordPress
since 5.2.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Hooks and filters fired · 1

Every hook that fires from inside WP_Recovery_Mode_Link_Service, in the order it appears in the class, grouped by the method that fires it.

Properties · 2

$key_serviceWP_Recovery_Mode_Key_Serviceprivate
Service to generate and validate recovery mode keys.

Methods · 4

Source code

#[AllowDynamicProperties]class WP_Recovery_Mode_Link_Service {	const LOGIN_ACTION_ENTER   = 'enter_recovery_mode';	const LOGIN_ACTION_ENTERED = 'entered_recovery_mode'; 	/**	 * Service to generate and validate recovery mode keys.	 *	 * @since 5.2.0	 * @var WP_Recovery_Mode_Key_Service	 */	private $key_service; 	/**	 * Service to handle cookies.	 *	 * @since 5.2.0	 * @var WP_Recovery_Mode_Cookie_Service	 */	private $cookie_service; 	/**	 * WP_Recovery_Mode_Link_Service constructor.	 *	 * @since 5.2.0	 *	 * @param WP_Recovery_Mode_Cookie_Service $cookie_service Service to handle setting the recovery mode cookie.	 * @param WP_Recovery_Mode_Key_Service    $key_service    Service to handle generating recovery mode keys.	 */	public function __construct( WP_Recovery_Mode_Cookie_Service $cookie_service, WP_Recovery_Mode_Key_Service $key_service ) {		$this->cookie_service = $cookie_service;		$this->key_service    = $key_service;	} 	/**	 * Generates a URL to begin recovery mode.	 *	 * Only one recovery mode URL can may be valid at the same time.	 *	 * @since 5.2.0	 *	 * @return string Generated URL.	 */	public function generate_url() {		$token = $this->key_service->generate_recovery_mode_token();		$key   = $this->key_service->generate_and_store_recovery_mode_key( $token ); 		return $this->get_recovery_mode_begin_url( $token, $key );	} 	/**	 * Enters recovery mode when the user hits wp-login.php with a valid recovery mode link.	 *	 * @since 5.2.0	 *	 * @global string $pagenow The filename of the current screen.	 *	 * @param int $ttl Number of seconds the link should be valid for.	 */	public function handle_begin_link( $ttl ) {		if ( ! isset( $GLOBALS['pagenow'] ) || 'wp-login.php' !== $GLOBALS['pagenow'] ) {			return;		} 		if ( ! isset( $_GET['action'], $_GET['rm_token'], $_GET['rm_key'] ) || self::LOGIN_ACTION_ENTER !== $_GET['action'] ) {			return;		} 		if ( ! function_exists( 'wp_generate_password' ) ) {			require_once ABSPATH . WPINC . '/pluggable.php';		} 		$validated = $this->key_service->validate_recovery_mode_key( $_GET['rm_token'], $_GET['rm_key'], $ttl ); 		if ( is_wp_error( $validated ) ) {			wp_die( $validated, '' );		} 		$this->cookie_service->set_cookie();

Changelog

Introduced in 5.2.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.7.7 tag, from src/wp-includes/class-wp-recovery-mode-link-service.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.