J'ai un ancien site PHP de 15 000 utilisateurs avec des mots de passe hachés Base64, je voudrais importer tous ces utilisateurs dans le nouveau site wordpress avec leurs mots de passe. Quelle serait la meilleure approche pour y parvenir?
Praveen
Vous pouvez utiliser wp_insert_user
. Puisque votre ancienne base de données a des mots de passe en base64, vous pouvez facilement obtenir la chaîne de mot de passe d'origine en utilisant base64_decode
.
$new_user_data = array(
'user_pass' => 'password',//pass your decoded password string
'user_login' => 'username',//pass your username
'user_email' => 'email',
'first_name' => 'firstname',
'last_name' => 'lastname',
'role' => 'author'//if you want to specify a different role other than default one
);
wp_insert_user( $new_user_data );
Vous devez formater vos anciennes données en csv, xml ou fichier texte, puis les lire et les transmettre en conséquence. Et n'essayez pas d'importer tous les 15 000 utilisateurs à la fois. Faites cela en plusieurs parties. De plus, la fonction sleep()
sera silencieuse afin de laisser au serveur un peu de repos.
WordPress utilise MD5 pour chiffrer les mots de passe. Donc, je ne pense pas que l'importation directe d'utilisateurs fonctionnera ici. Vous pouvez écrire un script pour importer des utilisateurs avec de nouveaux mots de passe générés automatiquement et envoyer des courriels à tous.
OR
Utilisez les crochets de filtre 'authenticate', 'wp_authenticate_user'
pour valider les utilisateurs avec la table d'utilisateurs existante. http://codex.wordpress.org/Plugin_API/Filter_Reference/authenticate
Ce plugin pourrait aider: http://wordpress.org/plugins/external-database-authentication/
WP utilisant md5 pour le chiffrement et vous avez base64, je ne pense donc pas que vous puissiez importer directement le même mot de passe. Mais comme nous savons tous que base64 peut être décodé http://www.php.net/base64_decode il est donc clair que nous pouvons également importer votre ancien mot de passe. Mais il existe plusieurs plugins WP qui importera les utilisateurs du fichier CSV vers la base de données WP et avec un nouveau mot de passe. Et le système enverra également un nouveau courrier de notification d'informations d'identification à cet utilisateur. http://wordpress.org/plugins/members-import/ ce plugin peut vous aider à faire de même. Dans ce plugin où les données du champ mot de passe du fichier CSV sont utilisées, transmettez cette chaîne à la fonction base64_decode()
.
Si vous importez le même mot de passe, inutile d'envoyer un message de notification.