| | |
| | | 'error' => $key->get_error_message(), |
| | | ]); |
| | | } else { |
| | | $this->sendPasswordResetEmail($user, $key); |
| | | $success = JVB()->email()->sendPasswordResetEmail($user, $key); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Send password reset email (fallback if magic links not available) |
| | | */ |
| | | protected function sendPasswordResetEmail(WP_User $user, string $key): bool |
| | | { |
| | | $reset_url = network_site_url( |
| | | "wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), |
| | | 'login' |
| | | ); |
| | | |
| | | $subject = 'Password Reset Request'; |
| | | $message = sprintf( |
| | | "Hello %s,\n\nYou requested a password reset. Click the link below to reset your password:\n\n%s\n\nIf you didn't request this, please ignore this email.", |
| | | $user->display_name, |
| | | $reset_url |
| | | ); |
| | | |
| | | return wp_mail($user->user_email, $subject, $message); |
| | | } |
| | | |
| | | protected function buildAuth(?int $user = null): array |
| | | { |
| | | if (is_user_logged_in()) { |