Magic Login Mail or QR Code
Enter your email address, and send you an email with a magic link or QR Code to login without a password.
Maintenance 61/10035d since update
Active installs
100
Downloads
5,772
Reviews
3
Age
4.0y
Tagsemailloginuserspasswordless
Plugin info
Total downloads: 5,772
Active installs: 100
Total reviews: 3
Average rating: 5
Support threads opened: 0
Support threads resolved: 0 (0%)
Available in: 1 language(s)
Contributors: 1
Last updated: 11/25/2025 (35 days ago)
Added to WordPress: 12/28/2021 (4 years old)
Minimum WordPress version: 4.7
Tested up to WordPress version: 6.9
Minimum PHP version: 8.0
Maintenance & Compatibility
Maintenance score
Actively maintained • Last updated 35 days ago • 3 reviews
61/100
Is Magic Login Mail or QR Code abandoned?
Likely maintained (last update 35 days ago).
Compatibility
Requires WordPress: 4.7
Tested up to: 6.9
Requires PHP: 8.0
Similar & Alternatives
Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.
Magic Login – Passwordless Authentication for WordPress – Login Without Password
Rating 4.7/5 (23 reviews) • Active installs 2,000
Passwordless Login
Rating 5.0/5 (10 reviews) • Active installs 1,000
OTP-less one tap Sign in
Rating 4.0/5 (5 reviews) • Active installs 700
Trusona for WordPress
Rating 5.0/5 (19 reviews) • Active installs 600
Secure Passkeys
Rating 5.0/5 (15 reviews) • Active installs 600
OwnID Passwordless Login
Rating 4.4/5 (20 reviews) • Active installs 200
Description
Enter your email address, and send you an email with a magic link or QR Code to login without a password.
Login
- Login with email address only.
- Only registered users can login.
- Password-less login from the magic link or QR code notified in the email.
- shortcode :
[magic_login] - action hook :
do_action( 'magic_email_send', $emails | array, true | bool ): To send the magic link simultaneously from the management account. - QR code login on the user’s administration screen.
Thanks
- This plugin is a modified version of Passwordless Login.
- The main changes are the addition of various filter hooks and the addition of the following action hooks.
Action hook
- This is for sending bulk e-mails with a magic link for login to multiple accounts from the management screen.
- When using this action hook, the URL of the page where the shortcode [magic_login] is placed should be specified in the filter hook ‘magic_login_mail_url’.
/** ==================================================
* To send the magic link simultaneously from the management account.
*
* @param array $emails Multiple email addresses.
* @param bool true Output notifications to the management screen immediately after sending.
*/
do_action( 'magic_email_send', $emails, true );
Filter hooks
/** ==================================================
* Filter for magic link url with mail.
*
*/
add_filter( 'magic_login_mail_url', function(){ return 'url'; }, 10, 1 );
/** ==================================================
* Currently logged in user link for Magic Login Mail
*
* @param string $url URL.
* @param int $user_id User ID.
* @return $url
*/
add_filter( 'magic_login_mail_user_redirect', 'redirect_url_login_users', 10, 2 );
/** ==================================================
* Login user after redirect for Magic Login Mail
*
* @param string $url URL.
* @param int $user_id User ID.
* @return $url
*/
add_filter( 'magic_login_mail_after_login_redirect', 'redirect_url_login_users', 10, 2 );
function redirect_url_login_users( $url, $user_id ){
/* your code */
return $url;
}
/** ==================================================
* Filter for message with shortcode form.
*
*/
add_filter( 'magic_login_mail_success_link_msg', function(){ return 'Message for success.'; }, 10, 1 );
add_filter( 'magic_login_mail_success_login_msg', function(){ return 'Message for success with login.'; }, 10, 1 );
add_filter( 'magic_login_mail_valid_errors', function(){ return 'Message for mail validation error.'; }, 10, 1 );
add_filter( 'magic_login_mail_email_errors', function(){ return 'Message for sent mail error.'; }, 10, 1 );
add_filter( 'magic_login_mail_invalid_token_error', function(){ return 'Message for token error.'; }, 10, 1 );
add_filter( 'magic_login_mail_form_label', function(){ return 'Message for form label.'; }, 10, 1 );
/** ==================================================
* Filter for color with shortcode form.
*
*/
add_filter( 'magic_login_mail_success_link_msg_back_color', function(){ return '#e7f7d3'; }, 10, 1 );
add_filter( 'magic_login_mail_success_login_msg_back_color', function(){ return '#e7f7d3'; }, 10, 1 );
add_filter( 'magic_login_mail_valid_errors_back_color', function(){ return '#ffebe8'; }, 10, 1 );
add_filter( 'magic_login_mail_email_errors_back_color', function(){ return '#ffebe8'; }, 10, 1 );
add_filter( 'magic_login_mail_invalid_token_error_back_color', function(){ return '#ffebe8'; }, 10, 1 );
/** ==================================================
* Filter for input text size.
*
*/
add_filter( 'magic_login_mail_input_size', function(){ return 17; }, 10, 1 );
/** ==================================================
* Filter for class name.
*
*/
add_filter( 'magic_login_mail_notice_class_name', function(){ return 'mynotice'; }, 10, 1 );
add_filter( 'magic_login_mail_form_class_name', function(){ return 'myform'; }, 10, 1 );
add_filter( 'magic_login_mail_label_class_name', function(){ return 'mylabel'; }, 10, 1 );
add_filter( 'magic_login_mail_input_class_name', function(){ return 'myinput'; }, 10, 1 );
add_filter( 'magic_login_mail_submit_class_name', function(){ return 'mysubmit'; }, 10, 1 );
/** ==================================================
* Filter for message with mail subject.
*
*/
add_filter( 'magic_login_mail_subject', function(){ return 'subject'; }, 10, 1 );
/** ==================================================
* Filter for message with mail.
*
* @param string $message message.
* @param string $url url.
* @param string $exp_date_time expiration date and time.
*/
add_filter(
'magic_login_mail_message',
function( $message, $url, $exp_date_time ) {
$message .= '
' . 'You may only log in once using the link above.';
return $message;
},
10,
3
);
/** ==================================================
* Filter for login expiration.
*
*/
add_filter( 'magic_login_mail_expiration', function(){ return 10; }, 10, 1 );
Installation
- Upload
magic-login-maildirectory to the/wp-content/plugins/directory - Activate the plugin through the ‘Plugins’ menu in WordPress
Frequently Asked Questions
none
Review feed
No reviews available
Changelog
[2.05] 2025/04/26
- Fix – CSS.
[2.04] 2025/04/25
- Added – Add own CSS for shortcode output.
[2.03] 2025/04/14
- Fix – Loading the management screen.
[2.02] 2024/11/05
- Changed – Plugin name changed from “Magic Login Mail” to “Magic Login Mail or QR Code”.
[2.01] 2024/11/05
- Added – QR code for login is now output on the user’s administration screen.
[2.00] 2024/10/08
- Added – QR codes containing magic links are now sent.
[1.07] 2024/09/20
- Added – parameter addition of filter(‘magic_login_mail_message’).
[1.06] 2024/03/04
- Fix – Elimination of short code attribute values.
1.05
Supported WordPress 6.4.
PHP 8.0 is now required.
1.04
Added class name filter(‘magic_login_mail_form_class_name’) for login form.
Added “placeholder” and “required” attributes to the email input form.
1.03
Added an option to save sent emails.
1.02
Changed input size.
1.01
Supported GlotPress.
1.00
Initial release.






