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.