WP_Recovery_Mode_Link_Service
Service class for generating and handling recovery mode links.
Source: wp-includes/class-wp-recovery-mode-link-service.php
Since: 5.2.0
Constants
| Constant | Value | Description |
|---|---|---|
LOGIN_ACTION_ENTER | 'enter_recovery_mode' | Login action for entering recovery mode |
LOGIN_ACTION_ENTERED | 'entered_recovery_mode' | Login action after successful entry |
Properties
| Property | Type | Visibility | Description |
|---|---|---|---|
$key_service | WP_Recovery_Mode_Key_Service | private | Key generation service |
$cookie_service | WP_Recovery_Mode_Cookie_Service | private | Cookie handling service |
Methods
__construct()
Creates the link service instance.
php
public function __construct(
WP_Recovery_Mode_Cookie_Service $cookie_service,
WP_Recovery_Mode_Key_Service $key_service
)| Parameter | Type | Description |
|---|---|---|
$cookie_service | WP_Recovery_Mode_Cookie_Service | Cookie service |
$key_service | WP_Recovery_Mode_Key_Service | Key service |
generate_url()
Generates a URL to begin recovery mode.
php
public function generate_url(): stringReturns: Full recovery mode URL.
URL Format:
https://example.com/wp-login.php?action=enter_recovery_mode&rm_token=...&rm_key=...Behavior:
- Generates token via
WP_Recovery_Mode_Key_Service::generate_recovery_mode_token() - Generates and stores key via
generate_and_store_recovery_mode_key() - Builds URL with token and key parameters
Note: Only one recovery URL may be valid at a time. Generating a new URL doesn’t invalidate old ones until they expire or are used.
handle_begin_link()
Handles recovery mode link when user visits wp-login.php.
php
public function handle_begin_link( int $ttl ): void| Parameter | Type | Description |
|---|---|---|
$ttl | int | Link validity in seconds |
URL Parameters Expected:
action— Must beenter_recovery_moderm_token— Recovery mode tokenrm_key— Recovery mode key
Behavior:
- Checks if on wp-login.php with correct action
- Validates key via
WP_Recovery_Mode_Key_Service::validate_recovery_mode_key() - On success, sets recovery cookie
- Redirects to
wp-login.php?action=entered_recovery_mode - On failure, calls
wp_die()with error
Exit: Always exits after redirect or on error.
get_recovery_mode_begin_url() (private)
Builds the recovery mode URL with token and key.
php
private function get_recovery_mode_begin_url( string $token, string $key ): string| Parameter | Type | Description |
|---|---|---|
$token | string | Recovery mode token |
$key | string | Recovery mode key |
Returns: Complete recovery mode URL.
Filter: recovery_mode_begin_url
URL Flow
1. Error occurs
└── Email sent with: wp-login.php?action=enter_recovery_mode&rm_token=X&rm_key=Y
2. User clicks link
└── handle_begin_link() validates token/key
└── Sets cookie
└── Redirects to: wp-login.php?action=entered_recovery_mode
3. Subsequent requests
└── Cookie validates session
└── Recovery mode active