Passwords are the single biggest security risk for your WordPress site. They get leaked, reused, or broken by automated brute-force attacks. Standard Two-Factor Authentication (2FA) adds safety, but typing in temporary codes from SMS or authenticator apps introduces annoying friction to your daily workflow.
Advanced Passkeys for Secure Login brings the future of un-phishable, modern authentication directly to your WordPress site using the official FIDO2 / WebAuthn standard.
Users register a passkey just once using their device’s built-in biometric sensor (Face ID, Touch ID, Windows Hello) or a hardware security key (like a YubiKey). Future sign-ins take less than a second—completely bypassing the traditional password field.
Unlike basic alternatives, this plugin features intelligent, dependency-aware integration modules that automatically inject passkey entry points into your favorite plugins. It features out-of-the-box support for WooCommerce, Easy Digital Downloads, MemberPress, Ultimate Member, LearnDash, BuddyBoss, Gravity Forms, and PMPro.
Developers can use these filters inside a theme or functionality plugin to globally customize or suppress the login form’s Last used passkey indicator pill.
advapafo_last_used_pill_freshness_days — default 90 daysadvapafo_last_used_pill_visible — final on/off overrideadvapafo_last_used_pill_label — customize label text<?php
/**
* Example customization for Last used login pill.
*/
// Show pill if passkey login is within 120 days.
add_filter( 'advapafo_last_used_pill_freshness_days', function ( $days, $user ) {
unset( $user );
return 120;
}, 10, 2 );
// Hide pill for administrator accounts.
add_filter( 'advapafo_last_used_pill_visible', function ( $visible, $timestamp, $freshness_days, $user ) {
unset( $timestamp, $freshness_days );
if ( $user instanceof WP_User && in_array( 'administrator', (array) $user->roles, true ) ) {
return false;
}
return $visible;
}, 10, 4 );
// Label override.
add_filter( 'advapafo_last_used_pill_label', function ( $label, $user ) {
unset( $user );
return 'Previously used';
}, 10, 2 );