<strike>I need to import users to my WP database once a day. So I have a script that runs once a day to do an action. The problem that I'm having is that I'm a little over my head on this one. Another company provides me with userdata in a .csv file. I then need to import this file to my WP database. The script I use for running once a day is the following (this is in my functions.php): add_action( 'wp', 'prefix_setup_schedule' ); /** * On an early action hook, check if the hook is scheduled - if not, schedule it. */ function prefix_setup_schedule() { if ( ! wp_next_scheduled( 'prefix_hourly_event' ) ) { wp_schedule_event( time(), 'hourly', 'prefix_hourly_event'); } } add_action( 'prefix_hourly_event', 'prefix_do_this_hourly' ); /** * On the scheduled action hook, run a function. */ function prefix_do_this_hourly() { wp_mail( '[email protected]', 'Automatic email sent at '.time(), 'Automatic scheduled email from WordPress.'); } On the server runs a cronjob that activates `wp-cron.php` once a day. If there aren't any users the script won't run so I activate it. Once there is activity it runs. This is a simple working example of an email that is sent every hour. Now I need to import users. Here is what I found: LOAD DATA INFILE 'path/to/file/users.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; I don't know if this works I'm not there yet. The problem I'm facing now it that the usersystem of WordPres exists of two tables `wp_user` and `wp_usermeta`. Can anybody tell me if I'm even on the right track and how to solve this. Is there maybe a way to seperate the .csv file and select what to import where including the fact that there is a refference between the `user` and `usermeta` tables? M.</strike> I changed my way of thinking and want to do the following: $row = 1; ini_set('auto_detect_line_endings',TRUE); if (($handle = fopen(get_bloginfo('template_directory')."/import_test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { $num = count($data); echo "<p> $num fields in line $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } This is a direct copy from http://php.net/fgetcsv. <br> Now I want to replace the for loop with an `wp_create_user` function to add the user.<br> At the same time I need to add user_meta to that user (I think). Any ideas how I can add a user with metafields and select the right values from my csv file matching the `vars`? - EDIT -<br> I have come so far but I can't get the last part to work. I have the adding of a new user fixed. <br> The foreach loops through the csv to add all users: $filepath = get_bloginfo('template_directory')."/import_test.csv"; ini_set('auto_detect_line_endings',TRUE); $file = fopen($filepath, "r") or die("Error opening file"); $i = 0; while(($line = fgetcsv($file, 1000, ";")) !== FALSE) { if($i == 0) { $c = 0; foreach($line as $col) { $cols[$c] = $col; $c++; } } else if($i > 0) { $c = 0; foreach($line as $col) { $data[$i][$cols[$c]] = $col; $c++; } } $i++; } foreach ($data as $gebruiker){ $username = $gebruiker['username']; if ( username_exists( $username ) ){ $user = get_user_by( 'login', $username); update_user_meta( $user->ID, 'meta_key', $gebruiker['email'] ); } else{ $users = wp_insert_user( array( 'user_login' => $gebruiker['username'], 'user_pass' => $gebruiker['password'], 'first_name' => $gebruiker['first_name'], 'last_name' => $gebruiker['last_name'], 'user_email' => $gebruiker['email'], 'display_name' => $gebruiker['first_name'] . ' ' . $gebruiker['last_name'], 'nickname' => $gebruiker['first_name'] . '' . $gebruiker['last_name'], 'role' => 'subscriber' ) ); foreach ($data as $update_user) { update_user_meta( $users, 'import_1', $update_user['first_name'] ); update_user_meta( $users, 'import_2', $update_user['last_name'] ); } } } To add files to the `wp_usermeta` table I want to work with `update_user_meta` since the `wp_insert_user` comes back with an ID of the just created user. But no matter where I place the `update_user_meta` in the loop it gives me back the following error: `Fatal error: Cannot use object of type WP_Error as array in`<br> The error is fixed. Because the users allready existed. So need to check for that later. This does mean that the fields are added to the usermeta but empty ====== EDIT ======<br> The above code is final and working...