function import_csv($path, $form_id, $field_ids, $entry_key = 0, $start_row = 2, $del = ',')
 {
     global $importing_fields, $wpdb;
     if (!defined('WP_IMPORTING')) {
         define('WP_IMPORTING', true);
     }
     $form_id = (int) $form_id;
     if (!$form_id) {
         return $start_row;
     }
     if (!$importing_fields) {
         $importing_fields = array();
     }
     if (!ini_get('safe_mode')) {
         set_time_limit(0);
     }
     //Remove time limit to execute this function
     if ($f = fopen($path, "r")) {
         unset($path);
         global $frm_entry, $frmdb;
         $row = 0;
         //setlocale(LC_ALL, 'ja_JP.UTF8');
         while (($data = fgetcsv($f, 100000, $del)) !== FALSE) {
             $row++;
             if ($start_row > $row) {
                 continue;
             }
             $values = array('form_id' => $form_id);
             $values['item_meta'] = array();
             foreach ($field_ids as $key => $field_id) {
                 $data[$key] = isset($data[$key]) ? $data[$key] : '';
                 //if($data[$key] == ''){
                 //    error_log($row .' key:'. $key .' $data[$key] empty');
                 //    return $row-1;
                 //}
                 if (is_numeric($field_id)) {
                     if (isset($importing_fields[$field_id])) {
                         $field = $importing_fields[$field_id];
                     } else {
                         $field = FrmField::getOne($field_id);
                         $importing_fields[$field_id] = $field;
                     }
                     $values['item_meta'][$field_id] = $data[$key];
                     if ($field->type == 'user_id') {
                         if (!is_numeric($values['item_meta'][$field_id])) {
                             if (!isset($user_array)) {
                                 $users = $wpdb->get_results("SELECT ID, user_login, display_name FROM {$wpdb->users} ORDER BY display_name ASC");
                                 $user_array = array();
                                 foreach ($users as $user) {
                                     $ukey = !empty($user->display_name) ? $user->display_name : $user->user_login;
                                     $user_array[$ukey] = $user->ID;
                                     unset($ukey);
                                     unset($user);
                                 }
                             }
                             if (isset($user_array[$values['item_meta'][$field_id]])) {
                                 $values['item_meta'][$field_id] = (int) $user_array[$values['item_meta'][$field_id]];
                             }
                         }
                         $values['user_id'] = $values['item_meta'][$field_id];
                     } else {
                         if ($field->type == 'checkbox' and !empty($values['item_meta'][$field_id])) {
                             if (!in_array($values['item_meta'][$field_id], (array) $field->options)) {
                                 $checked = maybe_unserialize($values['item_meta'][$field_id]);
                                 if (!is_array($checked)) {
                                     $checked = explode(',', $checked);
                                 }
                                 if ($checked and count($checked) > 1) {
                                     $values['item_meta'][$field_id] = array_map('trim', $checked);
                                 }
                             }
                         }
                     }
                     $_POST['item_meta'][$field_id] = $values['item_meta'][$field_id];
                     FrmProEntryMeta::set_post_fields($field, $values['item_meta'][$field_id]);
                     unset($field);
                 } else {
                     if (is_array($field_id)) {
                         $field_type = isset($field_id['type']) ? $field_id['type'] : false;
                         $linked = isset($field_id['linked']) ? $field_id['linked'] : false;
                         $field_id = $field_id['field_id'];
                         if ($field_type == 'data') {
                             if ($linked) {
                                 $entry_id = $frmdb->get_var($frmdb->entry_metas, array('meta_value' => $data[$key], 'field_id' => $linked), 'item_id');
                             } else {
                                 //get entry id of entry with item_key == $data[$key]
                                 $entry_id = $frmdb->get_var($frmdb->entries, array('item_key' => $data[$key]));
                             }
                             if ($entry_id) {
                                 $values['item_meta'][$field_id] = $entry_id;
                             }
                         }
                         unset($field_type);
                         unset($linked);
                     } else {
                         $values[$field_id] = $data[$key];
                     }
                 }
             }
             if (!isset($values['item_key']) or empty($values['item_key'])) {
                 $values['item_key'] = $data[$entry_key];
             }
             if (isset($values['created_at'])) {
                 $values['created_at'] = date('Y-m-d H:i:s', strtotime($values['created_at']));
             }
             if (isset($values['updated_at'])) {
                 $values['updated_at'] = date('Y-m-d H:i:s', strtotime($values['updated_at']));
             }
             $created = $frm_entry->create($values);
             unset($_POST);
             unset($values);
             unset($created);
             if ($row - $start_row >= 250) {
                 //change max rows here
                 fclose($f);
                 return $row;
             }
         }
         fclose($f);
         return $row;
     }
 }