I just converted a Joomla 1.5.9 website to WordPress. It helped reinforce my dislike for Joomla.
Anyway, this website had close to 1000 Joomla users that needed to be migrated into WordPress for a website redesign. I did some reading and figured I would lose the user’s password in the process. Not so! Thanks to a (not so well documented) plugin, I was able to convert the Joomla users to WordPress with 100% compatibility including saving their password. All user information I needed was preserved including name, username, password, and registered date.
Here is how to migrate Joomla users to WordPress:
Background: Converting a Joomla website to WordPress. The users needed to be exported from Joomla and imported into WordPress. In this tutorial I was using Joomla version 1.5.9 and WordPress version 3.4, but it’s the same for most other versions.
1. Export your Joomla Users
You will need to export your Joomla users to a CSV file. There are plenty of ways to do this. I chose an extension called “ARRA User Export Import“.
On your Joomla Website, install the Joomla “ARRA User Export Import” extension for your particular version of Joomla. For Joomla 1.5, this extension is free.
Navigate to your ARRA User Export Import options page on Joomla.
At a minimum, check the boxes for exporting name, username, email, break name into first name and last name. Also, under Additional Fields to Export, check the boxes for Password and Registered Date.
Under “Export File Type” choose “comma” for field separator. Choose CSV as the export file type.
2. Install WordPress User Import Plugin
On your WordPress Site, install the WordPress plugin “Import Users from CSV“. If you browse this plugin’s files, you will find an “example.csv” file. Use the included export example to see how your Joomla exported CSV should be formatted. Open your CSV file with your Joomla users in Excel and format it according to the example.
The header for your password column MUST be named “joomlapass”.
If you want to preserve your “user registered” date, you might need to format the registered date column to match the WordPress format (yyyy-mm-dd hh:mm:ss). Use the Excel format function to do this quickly.
Your Joomla User Export CSV file should now look similar to this in order to migrate them into WordPress successfully:
3. Import Your Joomla Users Into WordPress
You are ready to import your Joomla users into WordPress! From the WordPress admin menu, go to Users -> Import from CSV. Don’t check the option for password nag or user notification. We will not the password nag since their Joomla password is going to be imported. We also don’t want the users notification being sent out.
Once the import in complete, check to make sure you can see your newly imported users in the WordPress users admin area.
4. Setup Joomla User Authentication Plugin in WordPress
Install and Activate the Joomla to WP Migrated Users Authentication Plugin. This plugin will intercept Joomla encoded passwords and check it for you. Remember when we imported the users into WordPress, their password was imported into the “usermeta” database table under the “joomlapass” key? This plugin will encrypt the password entered in by the user using Joomla encryption. It will then compare that encrypted string with the password stored in the user’s joomlapass field. If the encrypted string matches what’s in the database, the plugin will let the user in. It will then save a WordPress encrypted version of the password into the default WordPress password field. Then, next time the user logs in, the normal WordPress login process will happen instead of this cross check process.
5. Test Your Joomla Users to WordPress Users Migration
Try logging into WordPress using your old Joomla username and password. It should work! If not, you screwed up somehow. Leave a comment and you might get some help.
That’s it! Your users will never know all this happened and they will be able to login like normal. You can tell them how much work it was making sure they didn’t have to create a new password, but they will not care because users are ungrateful.
If your Joomla passwords were encrypted using a non-standard Joomla format, then you will need to modify the WordPress Authentication plugin’s “auth_joomla” function so that it is able to interact with your non-standard Joomla encryption.
21 thoughts on “How To Migrate Joomla Users to WordPress”
will this work for Joomla 2.5? And what about cms2cms.com? It doesn’t migrate passwords but other user details will be migrated (and I would avoid installing several plugins). Looks much simpler. What’s your opinion?
Yes, it should work with Joomla 2.5.
It depends on what you are doing. If you are trying to convert an entire Joomla website to WordPress, that site might help (I’ve never heard of it before). If you just want to port over your users, something like that would be overkill.
If you must preserve the users passwords, this is the only option I know of to do that. The only plugin that must stay installed after porting over your users is the authentication plugin. Even then, you could just copy the plugin functions into your theme’s functions.php file and avoid leaving any plugins installed. So this process doesn’t muddy up your WordPress install too much at all.
If password preservation is not required, I would export/import your Joomla users table into to your WordPress database. Then you would loop through all the users and insert them into your WordPress website using the wp_insert_user function (http://codex.wordpress.org/Function_Reference/wp_insert_user).
Thank you .. THANK YOU!
For the Custom Metadata fields…how does that translate over? In other words, how do we rename these to match our installation say, if we have Buddypress XProfile Custom Field Types which is what we use to define extra profile fields in Buddypress profiles? Easier said than done I imagine?
I should add that I understand adding meta columns in the csv adds the data to the user_meta table, so I’m imagining that a statement would have to be run that inserts user by user, data from each meta field into the applicable xprofile field type?
I’m not sure I’m following you. Are you asking about how to get your extra user_meta fields into the CSV? If generating a CSV file is turning into a problem, you might find it easier to just use wp_insert_user/add_user_metadata and avoid the “Import users from CSV” plugin completely. (http://codex.wordpress.org/Function_Reference/wp_insert_user / http://codex.wordpress.org/Function_Reference/add_user_meta)
I recently moved my site from Joomla to WordPress. It was a little difficult to get everything working right (links redirecting) etc. It’s possible though, here’s how: http://www.jackcola.org/2013/05/upgrading-jackcola-org-from-joomla-to-wordpress/
I’m doing a total makeover for a friend’s site with a few hundred users, upgrading it from Joomla 1.5 to the current version of WordPress. I wanted to let you know that your instructions worked perfectly!
(Except ARRA User Export Import doesn’t seem to be available anymore, and there was nothing else available for Joomla 1.5….so I had to hack the Joomla user table from the SQL database….)
But I wouldn’t have been able to figure this out so quickly without your instructions, so thank you!
The ARRA User Export Import is still available, but you have to register on the site now to access it. The link above doesn’t work. I had to dig around on the site when logged in to find the link. I’ll try and retrace my steps and add the link here. I was able to download it yesterday (8-11-13).
Thanks for letting me know. I’ve updated the link, so it’s working again. They do require registration to get to the download link.
Thank you very much! I was facing this exact same problem and your solution worked perfectly.
I am unable to get through Joomla “ARRA User Export Import” extension. Do you suggest any other plugin in replacement of ARRA User Export Import ?
Worked like a charm thank you
It appears that the Joomla WP Authentication plugin is no longer working. Any alternative?
Thank you so much for this post!! It works!! Even though the plugins that are used are not updated for more than 2 years – it did exactly what it should! I would recommend uninstalling the Import Users from CSV after it has been used – to ensure the site against vulnerability from the “old” plugin!
Awesome. Can’t wait to use this. I will just do an SQL query to grab the users though to save installing any additional Joomla extensions. I don’t want to touch the joomla install I’m migrating from 🙂
Just an update on my previous post. I’ve now completed a migration of VirtueMart users to WooCommerce and following these instructions it worked like a charm.
Only 1 lesson learnt for me and hopefully will be helpful to anyone else following this technique in the future:
Should run a plugin or use other means to prevent any emails from being sent out when user records are updated. Despite unchecking the box to update users, they were still updated by WordPress which I’ve since found out seems to be an issue being experience by many different users across different plugins with WordPress 4.3 and 4.3.1 . Not sure if it’s fixed yet or not but worth just stopping any emails while you run this process and then re-enabling.
The other thing to stem from this is that when the Joomla user first enters their password and it’s changed to WordPress password they are sent the password updated email which is a little confusing for the user as they haven’t actually changed their password (it’s just been changed in the system).
Anyway, hope this helps. I’m also going to write the import from CSV plugin developer to offer to help translate the UI so it’s more user friendly and better language is used. I don’t want it to disappear as it’s a good plugin : )
Unfortunately this plugin is no more at arra site…Only 3 paid ones. Oh well, my search will need to keep on…darn joomla, never again!
Thanks Buddy, I am Facing the same Issue but don’t know how to fix this.
This no longer works in 2022
Thanks for this post. It was an interesting read to understand the internals of password management better. The Joomla User Authentication plugin no longer works as many people may have found out. The reason is that the plugin uses the MD5 hashing algorithm whereas Joomla currently is using a Blowfish hashing algorithm for user passwords. Hence, the plugin will never be able to assert whether the user entered the correct password because its calculating an MD5 hash and comparing it with a Blowfish hash. Anyway, the good news is that WordPress natively supports the Joomla Blowfish password hashes. I’ve just migrated my users to WordPress using the Users Migration Joomla to WordPress plugin (https://codecanyon.net/item/users-migration-joomla-to-wordpress) and noticed that the password hashes were exactly the same in both the Joomla and WordPress user tables. After logging in with a test account, I confirmed that the login works correctly. So, for those who are looking to migrate their users, you could either do it yourself manually, or spare yourself the trouble and spend a few bucks on a simple plugin that does the job for you nicely. (Note: the plugin currently supports Joomla 3.x)