{"id":236321,"date":"2025-06-12T09:03:26","date_gmt":"2025-06-12T09:03:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/email-otp-login-with-default-login-form\/"},"modified":"2025-08-05T04:08:19","modified_gmt":"2025-08-05T04:08:19","slug":"email-otp-login-with-default-login-form","status":"publish","type":"plugin","link":"https:\/\/uk.wordpress.org\/plugins\/email-otp-login-with-default-login-form\/","author":20953759,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"6.8.5","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Email OTP Login with default login form","header_author":"Webnotics","header_description":"Adds email OTP verification after login credentials on wp-login.php.","assets_banners_color":"739fff","last_updated":"2025-08-05 04:08:19","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/donate.stripe.com\/3cI5kE7sv6ex30s5LB5kk2x","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":40,"downloads":861,"num_ratings":6,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"webnotics","date":"2025-06-17 03:59:37"},"1.0.2":{"tag":"1.0.2","author":"webnotics","date":"2025-06-25 04:50:13"},"1.0.3":{"tag":"1.0.3","author":"webnotics","date":"2025-08-05 04:08:19"}},"upgrade_notice":{"1.0.0":"<p>First stable release. Make sure you test it on a staging site before using in production.<\/p>","1.0.2":"<p><em>Release Date 17th June 2025<\/em>\n* Update email template design *<\/p>","1.0.3":"<p><em>Release Date 31st July  2025<\/em>\n* Modified existing actions and filters related to the Email Login OTP system for improved flexibility and developer customization. *<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":6},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3310337,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256X256.png":{"filename":"icon-256X256.png","revision":3310337,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3310337,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3310337,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3310337,"resolution":"1","location":"assets","locale":"","width":1428,"height":673},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3310337,"resolution":"2","location":"assets","locale":"","width":1432,"height":659},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3310337,"resolution":"3","location":"assets","locale":"","width":1380,"height":706}},"screenshots":{"1":"OTP entry modal on wp-login.php.","2":"Role-based OTP settings page in WordPress admin.","3":"Error message when OTP is invalid or expired"}},"plugin_section":[],"plugin_tags":[18971,602,9210,600,9217],"plugin_category":[38,54],"plugin_contributors":[243677,235608],"plugin_business_model":[],"class_list":["post-236321","plugin","type-plugin","status-publish","hentry","plugin_tags-email-verification","plugin_tags-login","plugin_tags-otp","plugin_tags-security","plugin_tags-two-factor","plugin_category-authentication","plugin_category-security-and-spam-protection","plugin_contributors-sumitkamboj53","plugin_contributors-webnotics","plugin_committers-webnotics"],"banners":{"banner":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/banner-772x250.png?rev=3310337","banner_2x":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/banner-1544x500.png?rev=3310337","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/icon-128x128.png?rev=3310337","icon_2x":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/icon-256X256.png?rev=3310337","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/screenshot-1.png?rev=3310337","caption":"OTP entry modal on wp-login.php."},{"src":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/screenshot-2.png?rev=3310337","caption":"Role-based OTP settings page in WordPress admin."},{"src":"https:\/\/ps.w.org\/email-otp-login-with-default-login-form\/assets\/screenshot-3.png?rev=3310337","caption":"Error message when OTP is invalid or expired"}],"raw_content":"<!--section=description-->\n<p>This plugin enhances the default WordPress login security by adding a One-Time Password (OTP) verification step via email:<\/p>\n\n<ul>\n<li>Users log in with their regular email\/username and password.<\/li>\n<li>If credentials are valid, an OTP is generated and emailed to the user.<\/li>\n<li>A popup is shown on the same login page (<code>wp-login.php<\/code>) to enter the OTP.<\/li>\n<li>Once the correct OTP is entered, the user is logged in.<\/li>\n<\/ul>\n\n<p>To help you get started, there's a comprehensive video tutorial available that guides you through the process of setting.\n[youtube https:\/\/youtu.be\/AZ6w1lkltOI]<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Secure login via OTP sent to user\u2019s email.<\/li>\n<li>Role-based OTP enforcement.<\/li>\n<li>Uses native wp-login.php form \u2014 no custom forms required.<\/li>\n<li>Session-based OTP handling for security.<\/li>\n<li>Expiring OTP (default: 40 seconds).<\/li>\n<li>No third-party dependencies.<\/li>\n<\/ul>\n\n<h3>Donate<\/h3>\n\n<p>If you find this plugin useful and want to support its development, you can make a donation via the following link:<\/p>\n\n<p><a href=\"https:\/\/donate.stripe.com\/3cI5kE7sv6ex30s5LB5kk2x\">Donate Here<\/a><\/p>\n\n<p>Your donation helps to ensure that this plugin remains free and receives regular updates!<\/p>\n\n<h3>Credits<\/h3>\n\n<p>The plugin development was supported by [webnotics], [sumitkamboj53]. Contributions and feedback are always welcome.<\/p>\n\n<h3>Documentation and Support<\/h3>\n\n<p><strong><a href=\"https:\/\/webnotics.org\/email-otp-login-with-default-login-form\/\" title=\"documentation\">Documentation<\/a><\/strong>\nFor detailed documentation, visit https:\/\/webnotics.org\/email-otp-login-with-default-login-form\/\nFor support, please contact us at <a href=\"mailto:&#115;&#117;&#112;&#112;&#111;&#114;&#116;&#064;&#119;&#101;&#098;&#110;&#111;&#116;&#105;&#099;&#115;&#046;&#115;&#111;&#x6c;&#x75;&#x74;&#x69;&#x6f;&#x6e;&#x73;\">support@webnotics.solutions<\/a>.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/email-otp-login-with-default-login-form<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to <strong>Settings \u2192 Email OTP Settings<\/strong> to select which user roles require OTP login verification.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20this%20plugin%20work%20with%20custom%20login%20forms%3F'><h3>Does this plugin work with custom login forms?<\/h3><\/dt>\n<dd><p>No. This plugin is designed to work only with the default <code>wp-login.php<\/code> form.<\/p><\/dd>\n<dt id='can%20i%20enable%20otp%20only%20for%20specific%20roles%3F'><h3>Can I enable OTP only for specific roles?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings \u2192 Email OTP Settings<\/strong> and select the roles you want to enforce OTP for.<\/p><\/dd>\n<dt id='is%20the%20otp%20stored%20securely%3F'><h3>Is the OTP stored securely?<\/h3><\/dt>\n<dd><p>OTP is stored in the PHP session temporarily and cleared after use or expiration.<\/p><\/dd>\n<dt id='what%20happens%20if%20the%20otp%20expires%3F'><h3>What happens if the OTP expires?<\/h3><\/dt>\n<dd><p>The user will be redirected back to the login page and asked to log in again.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with OTP popup, email sending, and expiration logic<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<p><em>Release Date 17th June 2025<\/em>\n* Update email template design *<\/p>\n\n<h4>1.0.3<\/h4>\n\n<p><em>Release Date 1st Aug  2025<\/em>\n* Modified existing actions and filters related to the Email Login OTP system for improved flexibility and developer customization. *<\/p>","raw_excerpt":"Adds email OTP (One-Time Password) verification after valid login credentials on the default wp-login.php form for added security.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/236321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=236321"}],"author":[{"embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webnotics"}],"wp:attachment":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=236321"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=236321"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=236321"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=236321"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=236321"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=236321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}