{"id":135216,"date":"2021-01-19T19:02:04","date_gmt":"2021-01-19T19:02:04","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/magic-login\/"},"modified":"2026-03-15T13:35:56","modified_gmt":"2026-03-15T13:35:56","slug":"magic-login","status":"publish","type":"plugin","link":"https:\/\/sl.wordpress.org\/plugins\/magic-login\/","author":15614093,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.7.1","stable_tag":"2.7.1","tested":"7.0","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Magic Login","header_author":"HandyPlugins","header_description":"Passwordless login for WordPress.","assets_banners_color":"c3c2ca","last_updated":"2026-03-15 13:35:56","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/handyplugins.co\/donate\/","header_plugin_uri":"https:\/\/handyplugins.co\/magic-login-pro\/","header_author_uri":"https:\/\/handyplugins.co\/","rating":4.8,"author_block_rating":0,"active_installs":2000,"downloads":61730,"num_ratings":25,"support_threads":3,"support_threads_resolved":3,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"handyplugins","date":"2021-01-19 19:29:29"},"1.0.1":{"tag":"1.0.1","author":"m_uysl","date":"2021-01-20 12:03:25"},"1.0.2":{"tag":"1.0.2","author":"handyplugins","date":"2021-03-26 09:22:26"},"1.0.3":{"tag":"1.0.3","author":"handyplugins","date":"2021-05-31 23:48:33"},"1.1":{"tag":"1.1","author":"handyplugins","date":"2021-06-09 16:47:25"},"1.1.1":{"tag":"1.1.1","author":"handyplugins","date":"2021-06-09 17:14:21"},"1.1.2":{"tag":"1.1.2","author":"handyplugins","date":"2021-06-24 16:32:33"},"1.1.3":{"tag":"1.1.3","author":"handyplugins","date":"2021-08-10 13:30:24"},"1.2":{"tag":"1.2","author":"handyplugins","date":"2021-10-27 14:12:47"},"1.2.1":{"tag":"1.2.1","author":"handyplugins","date":"2021-11-22 07:37:53"},"1.2.2":{"tag":"1.2.2","author":"handyplugins","date":"2022-03-16 09:00:16"},"1.3":{"tag":"1.3","author":"handyplugins","date":"2022-04-19 20:04:20"},"1.5":{"tag":"1.5","author":"handyplugins","date":"2022-09-12 10:17:52"},"1.5.1":{"tag":"1.5.1","author":"handyplugins","date":"2022-09-26 19:48:09"},"1.5.2":{"tag":"1.5.2","author":"handyplugins","date":"2022-09-27 18:45:33"},"1.6":{"tag":"1.6","author":"handyplugins","date":"2022-10-26 07:15:18"},"1.7":{"tag":"1.7","author":"handyplugins","date":"2023-01-21 14:11:01"},"1.8":{"tag":"1.8","author":"handyplugins","date":"2023-02-18 18:43:02"},"1.8.1":{"tag":"1.8.1","author":"handyplugins","date":"2023-05-15 17:59:47"},"1.9":{"tag":"1.9","author":"handyplugins","date":"2023-07-25 10:44:38"},"1.9.1":{"tag":"1.9.1","author":"handyplugins","date":"2023-10-26 11:33:42"},"2.0":{"tag":"2.0","author":"handyplugins","date":"2023-11-07 11:22:47"},"2.0.1":{"tag":"2.0.1","author":"handyplugins","date":"2024-01-15 14:52:00"},"2.1":{"tag":"2.1","author":"handyplugins","date":"2024-02-13 11:06:20"},"2.1.1":{"tag":"2.1.1","author":"handyplugins","date":"2024-03-13 09:41:12"},"2.1.2":{"tag":"2.1.2","author":"handyplugins","date":"2024-04-08 11:56:46"},"2.1.3":{"tag":"2.1.3","author":"handyplugins","date":"2024-04-19 07:26:46"},"2.2":{"tag":"2.2","author":"handyplugins","date":"2024-05-29 14:41:54"},"2.3":{"tag":"2.3","author":"handyplugins","date":"2024-08-07 09:15:56"},"2.3.1":{"tag":"2.3.1","author":"handyplugins","date":"2024-09-09 11:07:43"},"2.3.2":{"tag":"2.3.2","author":"handyplugins","date":"2024-11-07 06:58:50"},"2.3.3":{"tag":"2.3.3","author":"handyplugins","date":"2024-11-19 14:44:53"},"2.3.4":{"tag":"2.3.4","author":"handyplugins","date":"2024-12-18 09:28:43"},"2.3.5":{"tag":"2.3.5","author":"handyplugins","date":"2025-01-03 11:25:25"},"2.4":{"tag":"2.4","author":"handyplugins","date":"2025-03-05 20:18:39"},"2.4.1":{"tag":"2.4.1","author":"handyplugins","date":"2025-03-10 10:56:38"},"2.4.2":{"tag":"2.4.2","author":"handyplugins","date":"2025-04-14 08:27:23"},"2.5":{"tag":"2.5","author":"handyplugins","date":"2025-05-10 12:45:37"},"2.5.1":{"tag":"2.5.1","author":"handyplugins","date":"2025-06-02 12:34:43"},"2.6":{"tag":"2.6","author":"handyplugins","date":"2025-07-22 12:51:43"},"2.6.1":{"tag":"2.6.1","author":"handyplugins","date":"2025-11-05 12:34:28"},"2.6.2":{"tag":"2.6.2","author":"handyplugins","date":"2025-11-14 13:41:58"},"2.6.3":{"tag":"2.6.3","author":"handyplugins","date":"2026-02-18 10:39:43"},"2.7":{"tag":"2.7","author":"handyplugins","date":"2026-03-14 20:38:55"},"2.7.1":{"tag":"2.7.1","author":"handyplugins","date":"2026-03-15 13:35:56"}},"upgrade_notice":{"1.5":"<ul>\n<li>The tokens will be hashed before saving in meta with this version. Due to this change, existing tokens will not work right after the update.<\/li>\n<\/ul>","1.0":"<p>First Release<\/p>"},"ratings":{"1":1,"2":0,"3":1,"4":0,"5":23},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2459184,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2459184,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":2783285,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2459184,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2459184,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"magic-login\/login-block":{"name":"magic-login\/login-block","title":"Magic Login"}},"tagged_versions":["1.0","1.0.1","1.0.2","1.0.3","1.1","1.1.1","1.1.2","1.1.3","1.2","1.2.1","1.2.2","1.3","1.5","1.5.1","1.5.2","1.6","1.7","1.8","1.8.1","1.9","1.9.1","2.0","2.0.1","2.1","2.1.1","2.1.2","2.1.3","2.2","2.3","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.4","2.4.1","2.4.2","2.5","2.5.1","2.6","2.6.1","2.6.2","2.6.3","2.7","2.7.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2867476,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2867476,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2867476,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2867476,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Login Page","2":"Settings Page","3":"Login Email","4":"Login Block"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[602,185112,154909,9223,35316],"plugin_category":[38],"plugin_contributors":[147258,79473],"plugin_business_model":[],"class_list":["post-135216","plugin","type-plugin","status-publish","hentry","plugin_tags-login","plugin_tags-magic-link","plugin_tags-magic-login","plugin_tags-passwordless","plugin_tags-passwordless-login","plugin_category-authentication","plugin_contributors-handyplugins","plugin_contributors-m_uysl","plugin_committers-handyplugins","plugin_committers-m_uysl"],"banners":{"banner":"https:\/\/ps.w.org\/magic-login\/assets\/banner-772x250.png?rev=2459184","banner_2x":"https:\/\/ps.w.org\/magic-login\/assets\/banner-1544x500.png?rev=2459184","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/magic-login\/assets\/icon.svg?rev=2783285","icon":"https:\/\/ps.w.org\/magic-login\/assets\/icon.svg?rev=2783285","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/magic-login\/assets\/screenshot-1.png?rev=2867476","caption":"Login Page"},{"src":"https:\/\/ps.w.org\/magic-login\/assets\/screenshot-2.png?rev=2867476","caption":"Settings Page"},{"src":"https:\/\/ps.w.org\/magic-login\/assets\/screenshot-3.png?rev=2867476","caption":"Login Email"},{"src":"https:\/\/ps.w.org\/magic-login\/assets\/screenshot-4.png?rev=2867476","caption":"Login Block"}],"raw_content":"<!--section=description-->\n<p>Easy, secure, and passwordless authentication for WordPress.<\/p>\n\n<p>Streamline the login process by sending links to your users. No more passwords to remember, no more password resets, and no more password strength requirements.<\/p>\n\n<p><strong><a href=\"https:\/\/handyplugins.co\/magic-login-pro\/\">Learn more about Magic Login<\/a><\/strong><\/p>\n\n<h4>Key Features \ud83c\udf1f<\/h4>\n\n<ul>\n<li><strong>Passwordless Authentication<\/strong>: No more forgotten passwords or complex requirements.<\/li>\n<li><strong>Magic Links<\/strong>: Secure, unique links sent directly to users' email inboxes.<\/li>\n<li><strong>Auto Login<\/strong>: Support for auto-login links in outgoing emails. It's useful when pending action from a user, such as reply a comment, complete the checkout, etc.<\/li>\n<li><strong>User-Friendly<\/strong>: Simplifies the login process for all users.<\/li>\n<li><strong>Enhanced Security<\/strong>: Reduces risks associated with weak passwords.<\/li>\n<li><strong>Tools<\/strong>:  Export, import, and reset plugin settings easily from the admin panel or WP-CLI. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-tools\/\">Learn more<\/a><\/li>\n<\/ul>\n\n<h4>How does it work? \ud83e\ude84<\/h4>\n\n<ol>\n<li>User enters their email address.<\/li>\n<li>A unique magic link is sent to their inbox.<\/li>\n<li>Clicking the link authenticates and logs in the user.<\/li>\n<\/ol>\n\n<h4>PRO Features \ud83c\udfa9<\/h4>\n\n<p>Here are the premium features that come with Magic Login Pro:<\/p>\n\n<ul>\n<li><strong>SMS Login:<\/strong> Send magic login links via SMS. <a href=\"https:\/\/handyplugins.co\/docs\/passwordless-authentication-with-sms\/\">Learn more<\/a>.<\/li>\n<li><strong>QR Code Login:<\/strong> Let users log in by scanning a QR code. <a href=\"https:\/\/handyplugins.co\/docs\/qr-code-login\/\">Learn more<\/a>.<\/li>\n<li><strong>Registration:<\/strong> Enable easy user registration directly from the login form or with a shortcode. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-registration\/\">Learn more<\/a>.<\/li>\n<li><strong>CLI Command:<\/strong> Use WP-CLI to create login links, generate QR codes, export\/import settings, and more. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-cli-command\/\">Learn more<\/a>.<\/li>\n<li><strong>Brute Force Protection:<\/strong> Limit rate of login attempts and block IP temporarily.<\/li>\n<li><strong>Login request throttling:<\/strong> Limit login link generation for a certain period.<\/li>\n<li><strong>IP Check:<\/strong> Enhance the security by restricting users to log in from the same IP address that requested the link.<\/li>\n<li><strong>Domain Restriction:<\/strong> Allow only certain domains to use the magic link.<\/li>\n<li><strong>Login Email Customization:<\/strong> Customize login message by using email placeholders.<\/li>\n<li><strong>Login Redirect:<\/strong> Redirect users to a specific page right after login. You can also redirect different pages based on the user role.<\/li>\n<li><strong>WooCommerce Integration:<\/strong> Seamless checkout experience for returning customers. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-woocommerce-integration\/\">Learn more<\/a>.<\/li>\n<li><strong>Easy Digital Downloads (EDD) Integration:<\/strong> Enhance the checkout experience with seamless magic login support. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-edd-integration\/\">Learn more<\/a>.<\/li>\n<li><strong>FluentCRM Integration:<\/strong> Send magic login links directly via FluentCRM. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-fluent-crm\/\">Learn more<\/a>.<\/li>\n<li><strong>reCAPTCHA Integration:<\/strong> Safeguard your login and registration forms from spam with Google reCAPTCHA. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-spam-protection\/#1-toc-title\">Learn more<\/a>.<\/li>\n<li><strong>Cloudflare Turnstile Integration:<\/strong> Enhance spam protection for your login and registration forms using Cloudflare Turnstile. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-spam-protection\/#2-toc-title\">Learn more<\/a>.<\/li>\n<li><strong>Friendly Captcha Integration:<\/strong> Protect your login and registration forms from bots with privacy-friendly Friendly Captcha. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-spam-protection\/#3-toc-title\">Learn more<\/a>.<\/li>\n<li><strong>API Support:<\/strong> Integrate Magic Login with your custom applications using the REST API.<\/li>\n<\/ul>\n\n<p>By upgrading to Magic Login Pro you also get access to one-on-one help from our knowledgeable support team and our extensive documentation site.<\/p>\n\n<p><strong><a href=\"https:\/\/handyplugins.co\/magic-login-pro\/\">Explore Magic Login Pro<\/a><\/strong><\/p>\n\n<h4>Documentation<\/h4>\n\n<p>Our documentation can be found on <a href=\"https:\/\/handyplugins.co\/docs-category\/magic-login-pro\/\">https:\/\/handyplugins.co\/docs-category\/magic-login-pro\/<\/a><\/p>\n\n<p>Hook reference: <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-hooks-doc\/\">https:\/\/handyplugins.co\/docs\/magic-login-hooks-doc\/<\/a><\/p>\n\n<h4>Contributing &amp; Bug Report<\/h4>\n\n<p>Bug reports and pull requests are welcome on <a href=\"https:\/\/github.com\/HandyPlugins\/magic-login\">GitHub<\/a>. Some of our features are pro only, please consider before sending PR.<\/p>\n\n<p><strong>If you like Magic Login, then consider checking out our other projects:<\/strong><\/p>\n\n<ul>\n<li><a href=\"https:\/\/handyplugins.co\/magic-login-pro\/\" rel=\"friend\">Magic Login Pro<\/a> \u2013 Easy, secure, and passwordless authentication for WordPress.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/easy-text-to-speech\/\" rel=\"friend\">Easy Text-to-Speech for WordPress<\/a> \u2013 Transform your textual content into high-quality synthesized speech with Amazon Polly.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/handywriter\/\" rel=\"friend\">Handywriter<\/a> \u2013 AI-powered writing assistant that can help you create content for your WordPress.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/paddlepress-pro\/\" rel=\"friend\">PaddlePress PRO<\/a> \u2013 Paddle Plugin for WordPress<\/li>\n<li><a href=\"https:\/\/poweredcache.com\/\" rel=\"friend\">Powered Cache<\/a> \u2013 Caching and Optimization for WordPress \u2013 Easily Improve PageSpeed &amp; Web Vitals Score<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/wp-accessibility-toolkit\/\" rel=\"friend\">WP Accessibility Toolkit<\/a> \u2013 A collection of tools to help you make your WordPress more accessible.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Upload the entire <code>\/magic-login<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate Magic Login through the 'Plugins' menu in WordPress.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20passwordless%20authentication%3F\"><h3>What is passwordless authentication?<\/h3><\/dt>\n<dd><p>Passwordless authentication is an authentication method in which a user can log in to a computer system without entering (and remembering) a password.<\/p><\/dd>\n<dt id=\"are%20the%20magic%20links%20secure%3F\"><h3>Are the magic links secure?<\/h3><\/dt>\n<dd><p>Yes! In fact, we thought this is more secure than the regular login due to most of the users are using weak passwords. Since magic login generates a random token for a limited time frame it makes the links quite strong and secure.<\/p><\/dd>\n<dt id=\"when%20do%20login%20links%20expire%3F\"><h3>When do login links expire?<\/h3><\/dt>\n<dd><p>It expires in 5 minutes by default. You can change TTL under the \"Token Lifespan\" on the settings page. Enter \"0\" to disable automatic expiration.<\/p><\/dd>\n<dt id=\"why%20am%20i%20not%20getting%20login%20links%3F\"><h3>Why am I not getting login links?<\/h3><\/dt>\n<dd><p>Magic Login uses WordPress built-in mail functions. So, it depends on your configuration. We highly recommend to use an SMTP service for better email delivery.<\/p><\/dd>\n<dt id=\"how%20can%20i%20use%20a%20passwordless%20login%20form%20on%20any%20page%3F\"><h3>How can I use a passwordless login form on any page?<\/h3><\/dt>\n<dd><p>You can use <code>[magic_login_form]<\/code> shortcode or block. <a href=\"https:\/\/handyplugins.co\/docs\/add-magic-login-form-to-a-page\/\">Learn More.<\/a><\/p><\/dd>\n<dt id=\"why%20are%20users%20redirected%20back%20to%20the%20page%20where%20they%20added%20the%20magic%20login%20form%20via%20shortcode%3F\"><h3>Why are users redirected back to the page where they added the magic login form via shortcode?<\/h3><\/dt>\n<dd><p>This behavior occurs because the magic login form is designed to use the current page as the target redirection URL by default. It's a way to ensure a smooth user experience by bringing users back to the page they started from.\nHowever, if you wish to alter this behavior, you can easily do so by passing an empty redirect_to=\"\" parameter within the shortcode.  <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-shortcode\/\">Learn More.<\/a><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.7.1 (Mar 15, 2026)<\/h4>\n\n<ul>\n<li>[Fixed] Settings import failing on some sites due to restricted MIME type filters when uploading JSON files.<\/li>\n<\/ul>\n\n<h4>2.7 (Mar 14, 2026)<\/h4>\n\n<ul>\n<li>[Added] Friendly captcha. (UI)<\/li>\n<li>[Improved] Load fonts locally to enhance privacy.<\/li>\n<li>[Improved] Added nonce validation to AJAX-based login requests.<\/li>\n<li>[Improved] Added final login redirect validation for both standard and AJAX login flows.<\/li>\n<li>[Improved] Strengthened the randomness used for generated email login codes.<\/li>\n<li>[Added] Added a per-user safeguard to limit repeated login emails for the same account.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<li>Tested with WP 7.0<\/li>\n<\/ul>\n\n<h4>2.6.3 (Feb 18, 2026)<\/h4>\n\n<ul>\n<li>[Updated] Dependencies.<\/li>\n<\/ul>\n\n<h4>2.6.2 (Nov 14, 2025)<\/h4>\n\n<ul>\n<li>[Added] Admin notice when placeholder encryption keys\/salts are in use.<\/li>\n<li>[Fixed] Added capability checks for the settings page.<\/li>\n<li>[Fixed] Improved validation of $_SERVER variables.<\/li>\n<li>[Improved] Settings import file validation.<\/li>\n<\/ul>\n\n<h4>2.6.1 (Nov 05, 2025)<\/h4>\n\n<ul>\n<li>[Updated] Dependencies.<\/li>\n<li>Tested with WP 6.9<\/li>\n<\/ul>\n\n<h4>2.6 (Jul 22, 2025)<\/h4>\n\n<ul>\n<li>[Added] Ability to override TTL and token validity on a per-user basis.<\/li>\n<li>[Updated] Dependency packages to latest versions.<\/li>\n<li>Read the full update: <a href=\"https:\/\/handyplugins.co\/blog\/magic-login-pro-2-6-release\/\">Magic Login PRO 2.6<\/a><\/li>\n<\/ul>\n\n<h4>2.5.1 (Jun 02, 2025)<\/h4>\n\n<ul>\n<li>[Added] No-cache headers for magic login links to prevent caching issues.<\/li>\n<\/ul>\n\n<h4>2.5 (May 10, 2025)<\/h4>\n\n<ul>\n<li>[New] Tools Section \u2013 Added reset, export, and import options in the settings panel. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-tools\/\">Learn more<\/a><\/li>\n<li>[Updated] Settings UI \u2013 Visual and structural improvements to reflect new PRO features.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<li>[Changed] Minimum PHP version raised to 7.4.<\/li>\n<li>Read the full update: <a href=\"https:\/\/handyplugins.co\/blog\/qr-code-login-for-wordpress\/\">Magic Login 2.5<\/a><\/li>\n<\/ul>\n\n<h4>2.4.2 (April 14, 2025)<\/h4>\n\n<ul>\n<li>[Added] New filter <code>magic_login_email_placeholders<\/code> to customize email placeholders.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<li>Tested with WP 6.8<\/li>\n<\/ul>\n\n<h4>2.4.1 (March 10, 2025)<\/h4>\n\n<ul>\n<li>Small tweaks and improvements.<\/li>\n<\/ul>\n\n<h4>2.4 (March 05, 2025)<\/h4>\n\n<ul>\n<li>[New Feature] Code Login \u2013 Users can log in with a code sent to their email or phone number instead of clicking a link.<\/li>\n<li>[Improvement] UI update for SMS Login feature. <a href=\"https:\/\/handyplugins.co\/docs\/passwordless-authentication-with-sms\/\">Learn More<\/a><\/li>\n<li>[Improvement] Applied <code>login_redirect<\/code> filter before <code>magic_login_redirect<\/code> to allow other plugins to modify the redirect URL.<\/li>\n<li>[Improvement] login.php is now deprecated in favor of LoginManager class.<\/li>\n<li>[Fix] Properly encode the redirection URL on the wp-login page.<\/li>\n<li>[Fix] Corrected various typos. Props <a href=\"https:\/\/github.com\/szepeviktor\">@szepeviktor<\/a><\/li>\n<li>Read the full update: <a href=\"https:\/\/handyplugins.co\/blog\/magic-login-2-4-now-with-sms-login\/\">Magic Login 2.4<\/a><\/li>\n<\/ul>\n\n<h4>2.3.5 (January 03, 2025)<\/h4>\n\n<ul>\n<li>[Fixed] Ensure proper handling of email recipient for {{MAGIC_LINK}} integration.<\/li>\n<li>[Fixed] French translation.<\/li>\n<li>[Improved] Applied <code>array_shift()<\/code> to extract the first recipient if <code>$atts['to']<\/code> is an array.<\/li>\n<\/ul>\n\n<h4>2.3.4 (December 18, 2024)<\/h4>\n\n<ul>\n<li>[Improved] {{MAGIC_LINK}} placeholder to support encoded values.<\/li>\n<li>[Improved] JavaScript handling for the magic login button by using <code>esc_url_raw<\/code> for form action and redirect URLs.<\/li>\n<li>[Added] <code>magic_login_get_wp_login_url<\/code> filter for customizing the login URL.<\/li>\n<li>[Deprecated] \\MagicLogin\\Utils\\get_magic_login_url, use \\MagicLogin\\Utils\\get_wp_login_url instead.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<\/ul>\n\n<h4>2.3.3 (November 19, 2024)<\/h4>\n\n<ul>\n<li>[Improved] Enhanced login request handling with prioritized processing and added logging for header_sent scenarios.<\/li>\n<li>[Improved] Implemented pre-validation checks before magic link replacement to prevent potential issues.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<li>Tested with WP 6.7<\/li>\n<\/ul>\n\n<h4>2.3.2 (October 07, 2024)<\/h4>\n\n<ul>\n<li>[Improved] Two-factor compatibility.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<\/ul>\n\n<h4>2.3.1 (September 09, 2024)<\/h4>\n\n<ul>\n<li>Minor tweaks and adjustments.<\/li>\n<li>[Updated] Dependencies.<\/li>\n<\/ul>\n\n<h4>2.3 (July 10, 2024)<\/h4>\n\n<ul>\n<li>[Added] <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-rest-api\/\">REST API<\/a> option to UI.<\/li>\n<li>[Added] Passing <code>magic_login_form<\/code> to shortcode_attr for better customization.<\/li>\n<li>[Updated] Dependency updates.<\/li>\n<li>Tested with WP 6.6<\/li>\n<li>Learn more about the new features: <a href=\"https:\/\/handyplugins.co\/blog\/magic-login-rest-api-support\/\">Magic Login 2.3<\/a><\/li>\n<\/ul>\n\n<h4>2.2 (May 29, 2024)<\/h4>\n\n<ul>\n<li>[Added] Settings UI update with reflecting new PRO features.<\/li>\n<li>[Added] Custom events for AJAX requests.<\/li>\n<li>[Added] New filter <code>magic_login_token_ttl_by_user<\/code> to customize TTL for users.<\/li>\n<li>[Added] New filter <code>magic_login_error_message<\/code> to customize error messages.<\/li>\n<li>[Improved] Form styles.<\/li>\n<li>[Refactored] Improved settings page UI.<\/li>\n<li>[Refactored] Enhanced class autoloading.<\/li>\n<li>[Updated] Dependency updates.<\/li>\n<li>Learn more about the new features: <a href=\"https:\/\/handyplugins.co\/blog\/magic-login-registration-and-spam-protection\/\">Magic Login Pro 2.2<\/a><\/li>\n<\/ul>\n\n<h4>2.1.3 (April 19, 2024)<\/h4>\n\n<ul>\n<li>Improvements on uninstallation process.<\/li>\n<\/ul>\n\n<h4>2.1.2 (April 08, 2024)<\/h4>\n\n<ul>\n<li>Fix auto-login link when the recipient is specified in an array format.<\/li>\n<li>Dependency updates.<\/li>\n<\/ul>\n\n<h4>2.1.1 (March 13, 2024)<\/h4>\n\n<ul>\n<li>Tested with WP 6.5<\/li>\n<li>Dependency updates.<\/li>\n<\/ul>\n\n<h4>2.1 (February 13, 2024)<\/h4>\n\n<ul>\n<li>Updated settings page with PRO features.<\/li>\n<li>Added new attributes for shortcode; it's more flexible than ever. <a href=\"https:\/\/handyplugins.co\/docs\/magic-login-shortcode\/\">Learn More<\/a><\/li>\n<li>Fix: Encode the redirect_to parameter in the login link. (Better nG firewall compatibility)<\/li>\n<li>Dependency updates.<\/li>\n<\/ul>\n\n<h4>2.0.1 (January 15, 2024)<\/h4>\n\n<ul>\n<li>Fix German language that breaks auto-login links.<\/li>\n<li>Dependency updates.<\/li>\n<\/ul>\n\n<h4>2.0 (November 07, 2023)<\/h4>\n\n<ul>\n<li>Add {{MAGIC_LINK}} support to all outgoing emails that received by a single user.<\/li>\n<li>Add new placeholder supports: {{FIRST_NAME}}, {{LAST_NAME}}, {{FULL_NAME}}, {{DISPLAY_NAME}}, {{USER_EMAIL}}<\/li>\n<li>Add ajax spinner to the login form.<\/li>\n<li>Dependency updates.<\/li>\n<li>Minor tweaks on settings form.<\/li>\n<\/ul>\n\n<h4>1.9.1 (October 26, 2023)<\/h4>\n\n<ul>\n<li>Added French translation.<\/li>\n<li>Dependency updates.<\/li>\n<li>Fix deprecated variable format.<\/li>\n<li>Tested with WP 6.4<\/li>\n<\/ul>\n\n<h4>1.9 (July 25, 2023)<\/h4>\n\n<ul>\n<li>Added: AJAX support for login requests.<\/li>\n<li>Bumped PHP requirement to 7.2+<\/li>\n<li>Small tweaks and improvements.<\/li>\n<li>Tested with WP 6.3<\/li>\n<\/ul>\n\n<h4>1.8.1 (May 15, 2023)<\/h4>\n\n<ul>\n<li>Added: Styling for two-factor plugin.<\/li>\n<li>Minor UI changes.<\/li>\n<li>Small tweaks and improvements.<\/li>\n<li>Tested with WP 6.2<\/li>\n<\/ul>\n\n<h4>1.8 (February 18, 2023)<\/h4>\n\n<ul>\n<li>New feature: Token Validity - allows to specify how many times a token can be used.<\/li>\n<li>Improvements on the default login screen<\/li>\n<li>i18n improvements<\/li>\n<li>Added: German translation.<\/li>\n<li>Added: Autocomplete support.<\/li>\n<li>Added: New token <code>{{TOKEN_VALIDITY_COUNT}}<\/code> to customize email content.<\/li>\n<\/ul>\n\n<h4>1.7 (January 21, 2023)<\/h4>\n\n<ul>\n<li>PHP 8.1: fix deprecated 'FILTER_SANITIZE_STRING'<\/li>\n<li>UI\/UX improvements on default login screen<\/li>\n<li>i18n improvements. Props <a href=\"https:\/\/github.com\/emreerkan\">@emreerkan<\/a><\/li>\n<li>Fix: standard wordpress redirect functionality. Props <a href=\"https:\/\/github.com\/maartenhunink\">@maartenhunink<\/a><\/li>\n<li>Fix: Skip the auto-login link for the magic login itself.<\/li>\n<li>Fix: Send email only once.<\/li>\n<\/ul>\n\n<h4>1.6 (October 26, 2022)<\/h4>\n\n<ul>\n<li>New feature: Auto Login Links<\/li>\n<\/ul>\n\n<h4>1.5.2 (September 27, 2022)<\/h4>\n\n<ul>\n<li>Bug fix: token validation<\/li>\n<\/ul>\n\n<h4>1.5.1 (September 26, 2022)<\/h4>\n\n<ul>\n<li>Fixed: redirection issue.<\/li>\n<li>Minor UI updates.<\/li>\n<li>Small tweaks and improvements.<\/li>\n<li>Tested with WP 6.1<\/li>\n<\/ul>\n\n<h4>1.5 (September 12, 2022)<\/h4>\n\n<ul>\n<li>Fixed: save tokens hashed in DB. Props <a href=\"https:\/\/github.com\/snicco\/snicco\">@snicco<\/a><\/li>\n<li>Added: username-only mode. define <code>MAGIC_LOGIN_USERNAME_ONLY<\/code> in the config file to use it.<\/li>\n<li>Email improvements: Check email contents before converting line breaks to <code>&lt;br\/&gt;<\/code> tags.<\/li>\n<li>Small tweaks and improvements.<\/li>\n<\/ul>\n\n<h4>1.3 (April 19, 2022)<\/h4>\n\n<ul>\n<li>Tested with WP 6.0<\/li>\n<li>UI updates.<\/li>\n<li>Fire <code>wp_login<\/code> hook as WP Core does on successful login.<\/li>\n<li>Add new filter: <code>magic_login_email_headers<\/code>.<\/li>\n<li>Fix email title html escaping.<\/li>\n<li>Small tweaks and improvements.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Tested with WP 5.9<\/li>\n<li>Update Shared UI<\/li>\n<li>Fix compatibility issue with TML plugin<\/li>\n<li>Add redirection cancellation option to the login block.<\/li>\n<li>Check <code>logged-in<\/code> while saving the settings<\/li>\n<li>Small tweaks and improvements.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>New: Integrate with the standard login form.<\/li>\n<li>Fix: Enqueue admin assets on the settings page only.<\/li>\n<li>Allow login block only once for a post.<\/li>\n<li>Small tweaks and improvements.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>New: Magic Login Block - It's much easier to add and customize the login form in the block editor.<\/li>\n<li>Customizable token intervals added. (removed 1-60 minutes restriction)<\/li>\n<li>New placeholder added: {{EXPIRES_WITH_INTERVAL}} to display TTL with the interval.<\/li>\n<li>Updated Shared UI<\/li>\n<li>Improved documentation on settings page.<\/li>\n<li>New: Show an error message when the user doesn't exist.<\/li>\n<li>New filter: Added <code>magic_login_invalid_token_error_message<\/code> to customize error message.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fix: Scheduled expired token cleanup<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Update Shared UI<\/li>\n<li>Shortcode <code>magic_login_form<\/code> now supports <code>redirect_to<\/code> attribute<\/li>\n<li>fix: don't display login form if the user already logged-in<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Hotfix: return shortcode output instead of printing<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Tested with WP 5.8<\/li>\n<li>Shortcode <code>magic_login_form<\/code> support added!<\/li>\n<li>fix: make sure <code>deactivate_plugins<\/code> exists when manually switching versions<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Update Shared UI<\/li>\n<li>fix: add text-domain for missing strings<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Update Shared UI<\/li>\n<li>Tested with WP 5.7<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Update Shared UI<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>First release<\/li>\n<\/ul>","raw_excerpt":"Passwordless login for WordPress. Streamline the login process by sending magic links to your users.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/135216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=135216"}],"author":[{"embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/handyplugins"}],"wp:attachment":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=135216"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=135216"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=135216"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=135216"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=135216"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=135216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}