This week, a Joomlashack University member asked us about simplifying the Joomla signup process.

Yes, in Joomla 3.7 you will be able to add fields. However, this member wanted to remove fields, without touching Joomla core files.

He wanted to remove the Name field and keep just three fields: “Username”, “Password” and “Email address”.

We will do this with a neat technique thanks to Lodder from JoomJunk.co.uk.

To be able to follow this tutorial, you need Joomla 3 installed. We’re going to be using the Protostar template for this demonstration.

Step #1. Enable User Registration

First, let’s make sure that users can register on our site:

  • In your Joomla backend, go to “Users” > “Manage” > “Options”.
  • Set the “Allow User Registration” parameter to “Yes”.
  • Set the “New User Account Activation” parameter to “Self”.

Step #2. Check the Default Registration Form

  • On the Joomla front end, within the login module, locate the “Create an account” link.
  • Click this link and you’ll see the standard Joomla registration form you are about to override.

As you can see, this form displays six fields. In this tutorial, you will learn how to delete three of them, “Name”, “Confirm Password” and “Confirm email Address”. You are going to end up with only the “Username”, “Password” and “Email Address” fields.

Step #3. Creating the Override

  • In your Joomla administrator area, go to “Extensions” > “Templates” > “Templates”.
  • Click on the “Protostar Details and Files” link:
  • Click on the “Create Overrides” tab.
  • Find the column named “Components”.
  • Click on the “com_users” folder.
  • Click on “registration”:
  • You will now see a success message, saying that your override has been created:

Step #4. Editing the Override

  • Click on the “Editor” tab.
  • Go to “html” > “com_users” > “registration” > “default.php”:
  • Open the default.php file and look at the code. At the top, find “JHtml::_(‘behavior.formvalidator’);”:
  • Place your mouse cursor at the end of this code, right after the double quotes mark. Hit “Enter” key a few times and copy-paste the following code snippet:
/*** Begin Registration Form Override ***/
 
$doc = JFactory::getDocument();
 $js = "
        jQuery(document).ready(function($){
             // Define the variables
            var regForm     = $('#member-registration');
            var name        = regForm.find('#jform_name');
            var password    = regForm.find('#jform_password1');
            var password2   = regForm.find('#jform_password2');
            var email       = regForm.find('#jform_email1');
            var email2      = regForm.find('#jform_email2'); 
            // Hide the required field, star, name, confirm pass and confirm email
            regForm.find('.spacer').parents('.control-group').hide();
            regForm.find('.star').hide();
            name.parents('.control-group').hide();
            password2.parents('.control-group').hide();
            email2.parents('.control-group').hide();
             // Add a default value to the name field
            name.val('Anonymous');
             // Clone password and email values to the confirm fields
            email.on('keyup', function() {
                email2.val( this.value );
            });
            password.on('keyup', function() {
                password2.val( this.value );
            });
         });    
    ";    
$doc->addScriptDeclaration($js);

/*** Finish Registration Form Override ***/

Congratulations! You just learned how to delete unwanted fields in your standard Joomla registration form using template override technique.

If you enjoyed this little trick and would like to learn more on Joomla template overrides, there are several classes on overrides inside Joomlashack University.