This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2016-12-11 14:02:43 +01:00

57 lines
1.7 KiB
PHP

<?php
/* USAGE:
php import_users.php FILENAME WP_LOAD_PATH
EXAMPLE:
php import_users.php users.json /var/www/mysite/wp-load.php
*/
function _log($msg) {
echo "[".date('r')."] ".$msg."\n";
}
if(count($argv) != 3) {
_log('Usage: php import_users.php FILENAME WP_LOAD_PATH');
exit(1);
}
$filename = $argv[1];
$wp_load_path = $argv[2];
require_once($wp_load_path);
$site_name = get_bloginfo('name');
$json = file_get_contents($filename);
$users = json_decode($json);
foreach($users as $user) {
list($username,$first_name,$last_name, $email) = $user;
$pass = wp_generate_password($length=32);
$userdata = array(
'user_login' => $username,
'user_pass' => $pass,
'user_email' => $email,
'first_name' => $first_name,
'last_name' => $last_name);
$wp_user = get_user_by('login', $username);
if ( !$wp_user ) {
$user_id = wp_insert_user($userdata);
if ( is_wp_error($user_id) ) {
_log("[$site_name][error] ".$user_id->get_error_message()."(username: $username)");
continue;
}
_log("[$site_name][new] $user_id : $username,$first_name,$last_name,$email");
/* LDAP login flag */
$flagged = add_user_meta( $user_id, "wpDirAuthFlag", "1");
if( !$flagged ) {
_log("$user_id not flagged");
}
} else {
if($wp_user->user_email != $email) {
_log("[$site_name][update] $wp_user->ID : replaced $wp_user->user_email with $email");
$wp_user->user_email = $email;
$user_id = wp_insert_user($wp_user);
if ( is_wp_error($user_id) ) {
_log("[$site_name][error] ".$user_id->get_error_message()."(username: $username)");
}
}
}
}