內容簡介
Magic Login Mail or QR Code 外掛提供無密碼登入功能,使用者只需輸入電子郵件地址,即可透過魔法連結或 QR 碼登入,提升使用便利性與安全性。
【主要功能】
• 無需密碼登入,僅需電子郵件地址
• 支援批量發送登入連結至多個帳號
• 提供 QR 碼登入功能
• 可自訂短碼 [magic_login]
• 支援多種過濾器與動作鉤子
外掛標籤
開發者團隊
原文外掛簡介
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 );
