Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

Clean Login

A plugin for displaying useful forms in front-end only using shortcodes. Login, Registration, Profile Editor and Lost Password forms

Responsive Frontend Login and Registration plugin. A plugin for displaying login, register, editor and restore password forms through shortcodes.

  • [clean-login]
  • [clean-login-edit]
  • [clean-login-register]
  • [clean-login-restore]


  • Add your login form in the frontend easily (page or post)
  • And also the registration and the lost password form
  • If user is logged in, the user will see a custom profile and will be able to edit his/her data in another front-end form
  • One shortcode per form, you only need to create a page or post and apply this shortcode to create each form you want


  • Every form created is responsive
  • CSS adapted to each theme

Spam protection

  • Register form protected with CAPTCHA (as an option)
  • Forms are also protected by Honeypot antispam protection


More features

  • Auto status checker
  • Hide admin bar for non-admin users as an option
  • Disable dashboard access as an option
  • Standby user role for new user registration. With no capabilities, to allow admin approval of users optionally
  • Auto linked forms, if you place a shortcode in a page/post the link between them will be automatically generated
  • And yes, this is WordPress 4.6 ready! Also compatible with WooCommerce.

You could test it here Enjoy!

Author codection
Contributors hornero, carazo
  1. clean-login screenshot 1

    Login form

  2. clean-login screenshot 2

    Preview user

  3. clean-login screenshot 3

    Editor form

  4. clean-login screenshot 4

    Lost password form

  5. clean-login screenshot 5

    Register form with CAPTCHA

  6. clean-login screenshot 6

    Setting access from the dashboard

  7. clean-login screenshot 7

    Setting page from the dashboard

  8. clean-login screenshot 8

    Settings menu

  9. clean-login screenshot 9

    Plugin status

  10. clean-login screenshot 10

    Options section

  11. clean-login screenshot 11

    Settings updated

  12. clean-login screenshot 12

    WPML. Certificate of Compatibility


  • Install Clean Login automatically through the WordPress Dashboard or by uploading the ZIP file in the plugins directory.
  • Then, after the package is uploaded and extracted, click Activate Plugin.

Now going through the points above, you should now see a new Clean Login menu item under Settings menu in the sidebar of the admin panel, see figure below of how it looks like.

Setting Menu image link

If you get any error after following through the steps above please contact us through item support comments so we can get back to you with possible helps in installing the plugin and more. On successful activation of this plugin, you should be able to see the login form when you place this shortcode [clean-login] in any page or post


Below, the description of each shortcode for use as registration, login, lost password and profile editor forms

  • [clean-login] This shortcode contains login form and login information.
  • [clean-login-edit] This shortcode contains the profile editor. If you include in a page/post a link will appear on your login preview.
  • [clean-login-register] This shortcode contains the register form. If you include in a page/post a link will appear on your login form.
  • [clean-login-restore] This shortcode contains the restore (lost password?) form. If you include in a page/post a link will appear on your login form.

Also, in the Clean Login settings page you can check the plugin status as follows:

Plugin status image link

In this setting page you can also find the way to enable/disable the differents options of the plugin, like below:

Options image link

Regarding the widget usage, just place the Clean Login status and links widget in the widget area you prefer. It will show the user status and the links to the pages/posts which contains the plugin shortcodes.

Please feel free to contact us if you have any questions.


A post/page need to be created by typing the main shortcode [clean-login] in the content.

When you save or update this post/page you will see the login form.

And also in the setting page [clean-login] entry will be updated pointing to the current post/page which contains the shortcode (and generates the login form):

Settings updated image link

We would repeat the same process with the rest of shortcodes if we need it:

  • [clean-login-edit] to create an edit profile form
  • [clean-login-register] to create a registration form
  • [clean-login-restore] to create a forgotten password and restore form


  • Ukrainian language included. Thanks to Павел Дидыченко @didychenko
  • Tested on 4.7


  • Bug solved. User Roles are not translated on the frontend. Thanks to @ramzesimus for reporting it.
  • Partial support with Black Studio TinyMCE Widget and Shortcode Widget plugins, but one extra shortcode [clean-login] is needed to be include in a page/post. Thanks to Marco Chiesi @marcochiesi
  • Bug due to template support is now solved. Notice in the Register Form after 1.7.8 update. Thanks to @ramzesimus
  • Potential bug solved, due to variable scope at register-new.php


  • WPML redirection fixed. Thanks to @provinciacreative for the feedback


  • WPML redirection support for all the pages with clean-login shortcode and for the terms and conditions url. Thanks to Ignazio Lucenti, and also thanks to @webanwendung24
  • Template support added. Now the plugin looks for the templates in the "theme_folder/clean-login/" as well. This is very useful to override the look of the content pages and keep this overrides when updating the plugin. Thanks to Ignazio Lucenti
  • cl_login_form filter included in the login form (this can be also updated through templates)


  • Added filter cl_login_redirect_url to allow overriding the login redirect, thanks to Diego Zanella
  • Added filter cl_logout_redirect_url to allow overriding the logout redirect, thanks to Diego Zanella


  • get_currentuserinfo() has been also replaced in all the forms, thanks to @ramzesimus
  • wp_enqueue_style unique handle name and dependency, thanks to @ramzesimus
  • Tested on 4.6 (beta1)


  • get_currentuserinfo() has been deprecated in WordPress 4.5. It is currently replaced by wp_get_current_user(). Thanks to @christer_f for notifying us


  • Turkish language updated. Thanks to Mert Eden
  • Tested on 4.5


  • French language updated. Thanks to thaipop


  • 'Clean Login status and links' widget markup bug fixed. Thanks to ramzesimus (Роман Перевала)


  • Add name and surname in the registration form feature. Feature supported by Jordi Raüll
  • Validate user registration through an email. Feature supported by Jordi Raüll
  • Name and username as mandatory fields. Feature proposed by Vess Ivanov
  • Spanish translation updated
  • Catalonian language template (empty) created
  • Bug fixed in the login form when using redirections
  • Tested on 4.4


  • Settings link included in the plugins list
  • Redirection feature after registration bug fixed. Thanks to plentyland and davispe for reporting it
  • Tested on 4.3.1
  • Redirect after login and logout. Feature supported by Juan Manuel Caceres from JC Global Resources
  • Spanish translation updated
  • Some improvements in the setting page


  • Spanish translation updated
  • Notify the user registration through the 'user_register' action hook. By ensuring, inter alia, the user role registration and MailPoet newsletters compatibility. Thanks to hamlet237
  • Bug fixed in the URL for terms and conditions at registration form. Thanks again to hamlet237
  • en_US translation created, with the idea of translating default strings :-) Thanks to fdkfashiondesign
  • Username as email feature. Thanks to Lindsay Macvean
  • Single password feature. Admins can simplify the registration process if desired. Thanks again to Lindsay Macvean
  • Redirection feature after registration. Thanks once again to Lindsay Macvean
  • jQuery cleaned up, and log_me bug fixed. Thanks third again to Lindsay Macvean
  • FAQ updated
  • Tested on 4.3
  • Donation link included


  • Spanish translation updated
  • Donation link included
  • Reflected XSS vulnerability fixed. Thanks to HSASec-Team


  • Spanish translation updated
  • Clean Login register with mandatory checkbox. Feature supported by Martijn van der Wijck


  • Swedish language included. Thanks to Didrik Holstensson Kvist
  • Tested on 4.2.2
  • Bug fixed 'query_arg not sanitized at login form'. Thanks to KTS915.


  • Spanish translation updated
  • .cleanlogin-field-role class added to ensure more flexibility in CSS styling
  • Polish language included. Thanks to Jarosław Idzior
  • ...query_arg()'s have been sanitized to avoid XSS vulnerability
  • Registration form shortcode adds standard role capability as parameter, e.g. [clean-login-register role="contributor"]. Feature supported by Joyce Tan


  • Email notification for new registered users with an editable email content, as option in the setting page. Feature supported by Роман Перевала (Perevala Roman)
  • Predefined roles by the administrator when a new user is registered with the ability to choose his/her own role, as option in the setting page. Feature supported by Роман Перевала (Perevala Roman)
  • Translation included in the restore password email subject
  • Translation included in the new user email subject


  • Logout link included in default Clean Login Widget


  • Bug fixed 'Notice: Use of undefined constant DOING_AJAX'


  • Bug fixed in AJAX queries. Thanks again to Роман Перевала for reporting


  • Bug fixed in block dashboard access (as option) related with some AJAX interactions. Thanks to Роман Перевала for reporting


  • FAQ section included.


  • French language updated. Thanks to Alain Sole
  • Tested on 4.2


  • Bug fixed in password complexity checker. Thanks to Steve Scofield for reporting


  • Russian language included. Thanks to Anastassiya Polyakova
  • Hebrew language filename fixed


  • Password complexity as option. Passwords must be at least eight characters including one upper/lowercase letter, one special/symbol character and alphanumeric characters. Passwords should not contain the user\'s username, email, or first/last name. Feature supported by Steve Scofield
  • "Failed security check" replaced by "Failed security check, expired Activation Link due to duplication or date."


  • Italian language included. Thanks to Walter Priori Friggi


  • Persian language included. Thanks to Morteza Rajabzade
  • Dutch language included. Thanks to Hans van der Marel



  • Brazilian Portuguese language included. Thanks to Filipe Mendes Schüler (@fmschuler)
  • Tested on 4.1.1


  • German language included. Thanks to Rainer (rainerma)
  • Serbian language included. Thanks to Borisa Djuraskovic (from


  • Hebrew language updated. Thanks again to Ahrale (from Atar4U)



  • Danish language included. Thanks to Bkold (Børge Kolding)
  • Registration button disabled on submit (with JS, no jQuery to ensure themes compatibility)
  • Icon for WordPress dashboard included (for both 128 and 256 px resolutions)


  • French language updated from sources (no translation included)


  • Simplifying the placeholder in the restore form by ensuring external plugins (which replace strings) compatibility.


  • Bug detected: First name and last name of the current user is hidden if the username is hidden by settings. Solved!


  • Enabling to permit users to reset their password using their email. Feature supported by KTS915
  • The username can be switched off from the preview form. Feature supported by KTS915
  • Spanish language updated.


  • French language included. Thanks to Blasteur83 (Dylan Lane)


  • Prepend all the functions names by ensuring the plugin compatibility and stability. Thanks to dharmashanti
  • Tested on 3.9.2


  • Output buffering turned on, following the Shortcode API. Thanks to stewarty


  • Mistake solved under plugin description. Thanks to WP-Biz (Ryan)


  • Demo site URL updated and also the content
  • Screenshots updated
  • Documentation deleted from index.html and also updated here.


  • Banner created
  • Screenshots added
  • Demo site for testing purposes


  • First release
  • Can I use my email in addition to your username for login? Yes, through WP Email Login.
  • Can I modify my Avatar? Clean Login uses your email to get your Avatar from the Gravatar service (from Automattic), but if you want to modify from the WordPress dashboard you can use WP User Avatar.
  • Is Clean Login compatible with AJAX-based plugins/themes/queries? Yes, from the version 1.2.6.
  • Can I change the sender name from Wordpress to my domain name? Yes, through WP Simple Mail Sender.

Usage and Settings

Please, refer to Installation section

Demo site

Version 1.7.10

Requires WordPress version: 3.4 or higher

Compatible up to: 4.6.3

Last Updated 25 Oct 2016

Date Added: 02 Jun 2014

Plugin Homepage


4.9 stars
82 ratings


Not Enough Data

Works: 0
Broken: 0