ID, 'magic_login_token', true); $created = (int) get_user_meta($user->ID, 'magic_login_created', true); $expires_in = 300; // 5 minutes if ( empty($stored_token) || empty($created) || !hash_equals($stored_token, $token) || (time() - $created) > $expires_in ) { redirect_home(); } // --- Consume Token (ONE-TIME USE) ---------------------------- delete_user_meta($user->ID, 'magic_login_token'); delete_user_meta($user->ID, 'magic_login_created'); // --- Login --------------------------------------------------- wp_clear_auth_cookie(); wp_set_current_user($user->ID); wp_set_auth_cookie($user->ID, true); // --- Redirect ----------------------------------------------- wp_safe_redirect(admin_url()); exit;