xpay✦ Commerce
Directory
WooCommerce plugins
Super Duper Two-Factor Login
Super Duper Two-Factor Login
Free 2FA plugin for WordPress: TOTP authenticator app, email codes, backup codes, WooCommerce, role enforcement. No upsells, no premium tier.
Will this break my store?
What the WordPress.org registry says about keeping Super Duper Two-Factor Login running.
Tested to 7.0.2
Tested against the WordPress branch in use today.2 months ago
8.2
Your host must be running at least this version.6.8
1
A single maintainer. Worth knowing if the plugin is load-bearing for your store.Maintenance & trust
Scored on how Super Duper Two-Factor Login is looked after — not on how many stores run it.
Maintenance
35 / 35WordPress compatibility
20 / 20Support responsiveness
Not enough dataMerchant satisfaction
Not enough dataListing transparency
10 / 10Ratings
No one has rated this plugin on WordPress.org yet. That is a statement about the ratings page, not about the plugin — plenty of well-kept plugins never collect them.
Super Duper Two-Factor Login adds robust two-factor authentication to your WordPress site. Unlike many alternatives, this plugin is completely free – no hidden costs, no premium tiers, no upsells. Every feature is included from the start.
🇨🇭🇩🇪🇦🇹 Hinweis für DACH-Nutzer: Plugin und Support sind auf Deutsch (Schweiz/Deutschland/Österreich) verfügbar. Alle Texte und Einstellungen sind vollständig auf Deutsch übersetzt.
Fully translated out of the box in German (Switzerland, Germany, Austria), English, French, Spanish, Italian and Dutch – no separate language pack required.
PHP 8.2 or higher required (for security reasons)
This plugin requires PHP 8.2 or higher. PHP 8.0 and 8.1 have both reached End of Life and no longer receive security updates – running a 2FA plugin on an unmaintained PHP version would defeat its purpose. PHP 8.2 lets us use modern security primitives (immutable configuration, type-safe method handling, strict return contracts) that make the plugin harder to attack.
Don’t have PHP 8.2 yet? Most hosting providers let you switch the PHP version with a single click in the control panel (Plesk, cPanel, Hostpoint, all-inkl, Cyon, raidboxes, etc.). It usually takes less than a minute and does not require any downtime. If in doubt, ask your hoster’s support – they help with PHP upgrades for free.
Two Verification Methods
- TOTP (Authenticator App) – Works with Google Authenticator, FreeOTP+, Authy, Microsoft Authenticator, and any TOTP-compatible app. Setup via QR code or manual key entry.
- Email – Receive a 6-digit code via email on every login. No smartphone required.
Comprehensive Fallback System
- 10 Backup Codes – One-time emergency codes in case you lose your phone. Copy, download, print, or email them to yourself.
- Administrator Recovery Key – Each admin receives a personal 32-character key during setup. Works even when all backup codes are used up.
- FTP Emergency Recovery – As a last resort, create an empty file named
.sdtfa-recoveryinwp-content/via FTP. Temporarily disables 2FA for all administrators. Admins are notified hourly by email.
Enforcement & Trust
- Role-Based Enforcement – Require 2FA for administrators, editors, subscribers, or any role.
- Grace Period – Set a deadline so users have time to set up 2FA before enforcement kicks in.
- Hard Enforcement – Without a grace period, users must complete 2FA setup on the login page before gaining any access.
- Enforcement Areas – Choose where to enforce: admin area, WooCommerce account, checkout, or entire site.
- Trust This Device – Users can save their computer so the 2FA code isn’t required on every login. Configurable duration (1–365 days).
Integration
- WooCommerce – Adds a “Two-Factor Authentication” tab to the My Account page. Enforce 2FA for the account area and checkout.
- Shortcode – Display the user’s 2FA status anywhere with
[sdtfa_status]. - Setup Reminder – A dismissable admin notice with a “Set up now” button. No auto-popups; users open the setup flow only by clicking.
Security
- AES-256-GCM encryption for TOTP secrets at rest
- Secure HttpOnly cookies for trusted devices
- Hashed token storage (never stored in plain text)
- No external dependencies – everything runs locally in pure PHP
- No external API calls, no tracking, no data collection
Privacy & Hardening (optional)
-
Hide user data in REST API – Replace sensitive user fields (name, slug, link, avatar) with neutral values for unauthenticated requests. The REST endpoint stays reachable for SEO and import tools, but anonymous visitors no longer see real display names. Uses a strict whitelist that automatically drops any extra fields injected by SEO, page-builder or e-commerce plugins (Yoast, Rank Math, AIOSEO, Elementor, WooCommerce, …). Example response for an anonymous visitor on
/wp-json/wp/v2/users/1:{“id”:1,”name”:”Author”,”url”:””,”description”:””,”link”:”https:\/\/example.com\/”,”slug”:”author”,”avatar_urls”:{}}
-
Block author archives – Redirect unauthenticated visitors away from
?author=Nand/author/<slug>/to prevent user enumeration. - Disable password reset – Disable the “Lost your password?” function for administrators and/or selected roles. Useful when 2FA must be the only authentication path.
- Users list column – A clean “SDTFA” column on Users → All Users that shows the real 2FA status (TOTP, Email, or off) and replaces duplicate columns added by host mu-plugins or other 2FA plugins.
Any TOTP-compatible app works, including Google Authenticator, FreeOTP+, Authy, Microsoft Authenticator, and many others. We recommend FreeOTP+ (Android) and FreeOTP (iOS) as free, open-source options.
You can log in using one of your 10 backup codes. If those are also gone, administrators can use their personal recovery key on the login page. As a last resort, create an empty file named .sdtfa-recovery in wp-content/ via FTP to temporarily disable 2FA.
Yes. Go to Two-Factor Login settings and select which roles must use 2FA. You can set a grace period with a deadline, or enforce it immediately – users will then be required to complete 2FA setup on the login page before gaining any access.
Yes. It adds a “Two-Factor Authentication” tab to the WooCommerce My Account page. You can also enforce 2FA for the WooCommerce account area and checkout.
When enabled by the admin, users can check “Save this computer” during login. The 2FA code won’t be required again on that device for the configured number of days.
No. Everything runs locally. QR codes are generated in PHP, TOTP calculations happen on the server, and app store badges use local SVG files. No external images, scripts, or API calls are made.
It bundles four optional, independently toggleable features that close common WordPress information-leak and lock-out paths. Hide user data (REST API) replaces sensitive fields (name, slug, link, avatar) with neutral values for unauthenticated requests, while keeping the endpoint reachable so SEO and import plugins still work. Block author archives redirects unauthenticated visitors away from ?author=N and /author/<slug>/ to prevent user enumeration. Disable password reset blocks the “Lost your password?” function for administrators and/or selected roles. The users-list column adds a clean “SDTFA” status indicator on Users → All Users. All four features are off by default except the users-list column, which is on by default to clean up duplicate columns from other plugins.
Some hosts and other 2FA plugins inject their own “2FA” column on the users list. When Super Duper Two-Factor Login is installed, those columns can show outdated or misleading status (for example a red ✗ even though 2FA is configured here). The plugin replaces them with a single, accurate “SDTFA” column that reads the real status from this plugin’s own user meta. If you prefer the original column behavior, you can disable this in the Privacy & Hardening section.
It is not designed to run side-by-side with another active 2FA plugin – two plugins both intercepting wp-login.php will produce unpredictable results. If you are migrating from another 2FA plugin, deactivate the other one first. The “SDTFA” users-list column will hide a leftover column from a deactivated plugin only if that plugin still injects it; in normal cases the foreign column simply disappears with the foreign plugin.
Yes, completely. There is no premium version, no upsells, and no feature restrictions. All features are available to everyone.
Categories
Plugin details
Tags on WordPress.org
