exportData();
}
}
private function toXMLItem($user){
echo("\t
decodeFileError($theFile['error']);
}else{
/*
* Starting import
*/
_e('Import started.', self::LANG_DOMAIN); echo "\n\n";
_e('Please do not refresh the page and not go anywhere.'); echo "\n";
_e('Interruption of page execution could cause data loss and user table to break!'); echo "\n";
$parser = new AEIOU_Parser_SimpleXML();
$users = $parser->parse($theFile['tmp_name']);
$exists = isset($_POST['exists'])?$_POST['exists']:'skip';
foreach($users as $user){
$login = $user['user_login'];
echo("\n$login ");
$usr = get_user_by('login', $login);
$userID = 0;
$userMeta = (isset($user['metadata'])) ? $user['metadata'] : array();
if(isset($user['metadata'])) unset($user['metadata']);
if($usr && $exists != 'skip'){
$usr = (array) $usr->data;
if($exists == 'update'){
/*
* Keeping metadata and removing from array
*/
foreach($user as $key => $value){
/*
* Removing all non empty key from import
*/
if(isset($usr[$key]) && !empty($usr[$key])){
unset($user[$key]);
}
}
}
if(count($user)>0){
$changes = array_keys($user);
$changes = "".implode(",", $changes)."";
echo sprintf(__("has new %s value(s).", self::LANG_DOMAIN),$changes) . "\n";
$user['ID'] = $usr['ID'];
wp_update_user($user);
}else{
_e("unchanged.", self::LANG_DOMAIN) . "\n";
}
$userID = $user['ID'];
}else{
if(!$usr){
/*
* New User must be created
*/
$userID = wp_insert_user($user);
$user['ID'] = $userID;
wp_update_user($user);
echo sprintf(__("inserted with ID %d", self::LANG_DOMAIN),$userID) . "\n";
}else{
echo __("skipped due it's already in the database", self::LANG_DOMAIN) . "\n";
}
}
if(isset($_POST['metadata']) && $userID != 0){
/*
* Admin asked for metadata import
*/
$count = 0;
foreach($userMeta as $key => $value){
$metaKey = get_user_meta($userID, $key);
if(empty($metaKey[0])) $metaKey = false;
if(is_serialized($value)) $value = unserialize($value);
if(!$metaKey || $exists=='replace'){
delete_user_meta($userID, $key);
if( !empty( $value ) ){
$count+=1;
if($verbose) echo sprintf(__("Metadata %s updated for user %s", self::LANG_DOMAIN), $key, $login) . "\n";
update_user_meta($userID, $key, $value );
}else{
if($metaKey && $verbose) echo sprintf(__("Metadata %s removed for user %s", self::LANG_DOMAIN), $key, $login) . "\n";
}
}
}
if($count>0)
echo sprintf(__("Updated %d metadatas for user %s", self::LANG_DOMAIN), $count, $login) . "\n";
}
}
}
}
}
?>