Recently I have stumbled upon a situation in Joomla 3.1.1 where I need to add a custom field attached with default registration form.
I surfed the e
Eventually it turns out that the problem was a component called K2.I tried this custom registration stuff in joomla 2.5 and then suddenly thought how about disabling K2 System Plugin..It worked.
Im posting the steps to do so:
1.Navigate to joomla_root/components/com_users/models/forms/registration.xml and add a field there.
2.Then open up joomla_root/components/com_users/models/registration.php and then in the function register() change ur custom fields.
3.Don't forget to add a field in ur database table #_users which you have added in registration.xml
Joomla ships with a user plugin called "profile" which may contain the fields you want to add already.
In the administrator go to extensions/plugins, filter by type and choose "user", then find the "Profile" and open it. Check out the options on the right handside, enable the plugin and voila.
Warning: most templates override the registration form and they usually don't fire the correct plugin events. If this is the case, your users will only see the "standard" fields in the registration. And if you set any fields as required in the plugin, they will not be registered, but redirected to the complete registration page (the user component), where they will find the fields they already filled in except for the passwords, which can be quite annoying.
If the "profile" fields are not sufficient, copy the profile plugin and build your own.
Do NOT modify the profile plugin or com_users files like you have done, this is Joomla core and will be overwritten when you next upgrade.
Depending on whether you needed the custom field to be added to the database or not, you could use a form building component such as RSForm!Pro or ChronoForms. They both can tie into the user registration system in Joomla and give you a lot of flexibility in custom emails, adding info to database tables, etc. This would insulate you from any core updates that could wipe out your modifications. I believe Chronoforms is free as long as you don't mind a link back to the developers in the form.
If you can't do that, I would make sure that I had a backup of the files that I modified handy before updating the site. Joomla 3.1.x is a short term build so you have a higher risk of those files getting changed than if you were working on a Joomla 2.5.x site.