WordPress – come importare utenti con ruoli e campi aggiuntivi da un file csv
Se c’è una cosa che non mi piace è complicarmi la vita quando le cose le so fare.
Mi avevano chiesto di usare Wp All Import e importare gli utenti da un file csv.
A me è una cosa che da abbastanza fastidio.
Ci metto molto meno tempo a crearmi uno scriptino da far girare una o più volte (quello che è necessario) e che faccia quanto richiesto. Qui infatti leggo un file CSV e mappo i campi del file, dopo di che creo o aggiorno gli utenti a seconda se l’email esiste o no.
Non mi sembra una cosa complicata.
Ecco come ho fatto.
<?php
//import utenti su wp da file csv con campi aggiuntivi creati da wp members
require_once('wp-blog-header.php');
$row = 1;
if (($handle = fopen("utenti.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num campi alla linea $row: <br /></p>\n";
$row++;
$username=$data[0];
$password='m$@H#wmG5$4bwMnw';
$email=$data[2];
$billing_city=ucwords(strtolower($data[3]));
$nazione=ucwords(strtolower($data[4]));
$billing_postcode=$data[5];
$nome_azienda=ucwords(strtolower($data[6]));
$cat_utente=strtolower($data[7]);
$is_cliente=strtolower($data[10]);
$lingua=strtolower($data[11]);
$role=strtolower($data[12]);
$role_usare=$role.'_'.$lingua;
if( !email_exists( $email ) ){
$user_id = wp_create_user( $username, $password, $email );
$oggetto_user = new WP_User($user_id);
$oggetto_user->set_role($role_usare);
update_user_meta($user_id, 'billing_city', $billing_city);
update_user_meta($user_id, 'billing_state', $nazione);
update_user_meta($user_id, 'billing_postcode', $billing_postcode);
update_user_meta($user_id, 'nome_azienda', $nome_azienda);
update_user_meta($user_id, 'cat_utente', $cat_utente);
update_user_meta($user_id, 'check_is_cliente', $is_cliente);
update_user_meta($user_id, 'lingua', $lingua);
update_user_meta($userId, 'active', 1);
echo 'utente '.$username.' creato<br>';
}else{
$user = get_user_by( 'email', $email );
//print_r($user );
$userId = $user->ID;
$oggetto_user = new WP_User($userId);
$oggetto_user->set_role($role_usare);
update_user_meta($userId, 'billing_city', $billing_city);
update_user_meta($userId, 'billing_state', $nazione);
update_user_meta($userId, 'billing_postcode', $billing_postcode);
update_user_meta($userId, 'nome_azienda', $nome_azienda);
update_user_meta($userId, 'cat_utente', $cat_utente);
update_user_meta($userId, 'check_is_cliente', $is_cliente);
update_user_meta($userId, 'lingua', $lingua);
update_user_meta($userId, 'active', 1);
echo 'Utente '.$username.' già presente nel database<br>';
}
}
fclose($handle);
}
?>
Se ti serve una personalizzazione su WordPress, contattami usando questo modulo.





















Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!