OTP Login Pro
WordPress OTP Login Pro enables secure passwordless authentication using one-time passwords (OTP) via SMS or email. Features user registration, login verification, WooCommerce compatibility, customizable workflows, REST API support, and enhanced security for modern WordPress websites.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/ildrm/wordpress-otp-login-pro/archive/refs/heads/main.zipOTP Login Pro - WordPress Plugin
Description
OTP Login Pro is an enterprise-grade WordPress authentication plugin that enables passwordless login via One-Time Passwords (OTP) sent through SMS, Email, WhatsApp, and Voice calls. With 150+ features, advanced security, beautiful UI, and deep WordPress ecosystem integration, it's the complete solution for modern authentication.
Features
🔐 Core Authentication (25+ Features)
- ✅ SMS OTP via Twilio, Vonage, AWS SNS, Kavenegar, Ghasedak
- ✅ Email OTP via WordPress Mail, SendGrid, Mailgun
- ✅ WhatsApp Business API integration
- ✅ Voice call OTP delivery
- ✅ Passwordless login
- ✅ Two-Factor Authentication (2FA)
- ✅ Multi-Factor Authentication (MFA)
- ✅ WebAuthn/FIDO2 biometric support
- ✅ TOTP (Google Authenticator) compatible
- ✅ Backup codes generation
- ✅ Device trust & remember me
- ✅ Magic link authentication
🎨 UI/UX & Design (20+ Features)
- ✅ 3 Pre-built themes (Modern, Minimal, Corporate)
- ✅ Mobile-first responsive design
- ✅ Dark mode support
- ✅ RTL language support
- ✅ Auto-detect country code
- ✅ Phone number formatting with flags
- ✅ SMS OTP auto-fill (Web OTP API)
- ✅ Countdown timer for OTP expiry
- ✅ WCAG 2.1 AA accessibility
- ✅ Toast notifications
- ✅ Sound & haptic feedback
- ✅ Smooth animations
🛡️ Security & Fraud Prevention (25+ Features)
- ✅ IP-based rate limiting
- ✅ User-based rate limiting
- ✅ Device fingerprinting
- ✅ Geographic IP restrictions
- ✅ Brute force protection
- ✅ Bot detection
- ✅ Google reCAPTCHA v2/v3
- ✅ hCaptcha integration
- ✅ Cloudflare Turnstile
- ✅ OTP encryption in database
- ✅ Secure session management
- ✅ CSRF protection
- ✅ Login attempt logging
- ✅ Suspicious activity alerts
- ✅ GDPR compliance tools
📊 Analytics & Reporting (12+ Features)
- ✅ Real-time analytics dashboard
- ✅ OTP success/failure rates
- ✅ Geographic login heatmap
- ✅ Device & browser statistics
- ✅ Peak usage time graphs
- ✅ Cost per SMS/email tracking
- ✅ Provider performance comparison
- ✅ Export to PDF/CSV/Excel
🔌 WordPress Integration (20+ Features)
- ✅ WooCommerce checkout OTP
- ✅ WooCommerce phone verification
- ✅ Elementor widget
- ✅ BuddyPress integration
- ✅ MemberPress support
- ✅ LearnDash integration
- ✅ Contact Form 7, Gravity Forms, WPForms
- ✅ bbPress forum protection
🚀 Advanced Features
- ✅ Comprehensive REST API
- ✅ Webhook integration
- ✅ Multi-site network support
- ✅ White-label options
- ✅ 100+ developer hooks
- ✅ Drag-and-drop email builder
- ✅ Auto-registration
- ✅ Multiple phone numbers per user
Installation
- Upload
otp-login-profolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu
- Go to OTP Login Pro > Settings to configure
- Configure at least one SMS/Email provider
- Add shortcode
[otp_login_form]to any page
Configuration
Basic Setup
-
Navigate to Settings
- Go to WordPress Admin > OTP Login Pro > Settings
-
Configure OTP Settings
- Enable OTP Login
- Choose authentication method (SMS/Email/Both)
- Set OTP length (4-10 digits)
- Set expiry time (default: 5 minutes)
- Set cooldown period (default: 60 seconds)
-
Configure Providers
- Go to OTP Login Pro > Providers
- Add your Twilio or Vonage credentials for SMS
- Configure email settings
Provider Configuration
Twilio SMS
Account SID: Your Twilio Account SID
Auth Token: Your Twilio Auth Token
From Number: Your Twilio phone number
Kavenegar (Iranian)
API Key: Your Kavenegar API key
Sender: Your approved sender number
Email (WordPress Mail)
From Name: Your Site Name
From Email: noreply@yoursite.com
Shortcodes
Login Form
[otp_login_form theme="modern" redirect="/dashboard"]
Attributes:
theme- modern, minimal, corporate (default: modern)redirect- URL to redirect after logintitle- Custom form titlemethod- sms, email, both (default: both)
Registration Form
[otp_register_form]
Profile Manager
[otp_profile_manager]
Phone Verification
[otp_phone_verify]
API Endpoints
Send OTP
POST /wp-json/otp-pro/v1/send
{
"identifier": "user@example.com",
"method": "email"
}
Verify OTP
POST /wp-json/otp-pro/v1/verify
{
"identifier": "user@example.com",
"otp": "123456",
"remember": true
}
Resend OTP
POST /wp-json/otp-pro/v1/resend
{
"identifier": "user@example.com"
}
Developer Hooks
Actions
// After OTP sent
do_action('otp_login_pro_otp_sent', $identifier, $method, $user);
// After successful login
do_action('otp_login_pro_user_logged_in', $user);
// After user registration
do_action('otp_login_pro_user_registered', $user);
// On verification failure
do_action('otp_login_pro_verification_failed', $identifier, $otp);
Filters
// Modify OTP length
add_filter('otp_login_pro_otp_length', function($length, $user) {
return 8; // Use 8 digits for admins
}, 10, 2);
// Modify redirect URL
add_filter('otp_login_pro_redirect_url', function($url, $user) {
return home_url('/my-account');
}, 10, 2);
// Customize SMS message
add_filter('otp_login_pro_sms_message', function($message, $otp) {
return "Your code is: {$otp}. Do not share!";
}, 10, 2);
Database Tables
The plugin creates 10 custom tables:
wp_otp_logs- OTP delivery logswp_otp_rate_limits- Rate limiting datawp_otp_trusted_devices- Trusted device tokenswp_otp_backup_codes- 2FA backup codeswp_otp_analytics- Aggregated analyticswp_otp_phone_numbers- User phone numberswp_otp_settings- Complex settingswp_otp_credits- Credit managementwp_otp_transactions- Transaction historywp_otp_sessions- OTP sessions
Security
- All OTPs are hashed using WordPress password hashing
- Session tokens use cryptographically secure random generation
- Rate limiting prevents brute force attacks
- Device fingerprinting tracks suspicious logins
- Automatic cleanup of expired data
Performance
- Async OTP sending for non-blocking requests
- Database query optimization with proper indexing
- CDN-ready asset loading
- Lazy loading for heavy components
- Cache-friendly architecture
Requirements
- PHP 7.4 or higher
- WordPress 5.8 or higher
- MySQL 5.6 or MariaDB 10.0 or higher
Support
- Documentation: -
- Support Forum: -
- Email: ildrm@hotmail.com
License
GPL v2 or later
Credits
Developed by Shahin Ilderemi
Releases
1 release.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.