Hey Kyle,
Sorry for the delay.
My first thought is, have you searched for User Migration plugins? I haven’t but there may already be something out there that does exactly what you want.
If not . . .
You’re right that the users are getting converted to the WordPress users after they login.
I don’t know where you’re current DB is but you could leave it where it is, or move it to the same place as the WordPress DB one so you don’t have to have two servers running. You may already have it on the same server?
This way I guess using the plugin would mostly do what you’re looking for as it stands.
The plugin I’ve written was based on the external system and database being the master record and handling the resetting of passwords and creating accounts.
The benefits of what’s already in my plugin:
– A new user would get created from the old system at first login
– This user would have a new safer password hash created
The issues to solve would be:
1) We would have to reserve any usernames already used in the external database to ensure that a new user doesn’t take it before an old user has been migrated
2) We would need to make the new DB be the preference so if a user already exists with that username we log them in, with WP. If not we check the external DB and see if they exist there and create them.
3) I’ve had someone before who had a very custom hashing method like yours and I suggested I didn’t want to add it to the plugin as it was going to bloat it with a custom solution that no one else would use. I’ve now had a thought seeing yours that I could allow users to create a function (with a name I define in the instructions) that would exist in your functions.php file that would take in the password and salt and you could put the code you’ve specified above in it for your custom case.
Does this all make sense? Do you have any thoughts? Have I missed anything?