function import($importData, $parsedData) { if (!$this->is_active_addon($importData['post_type'])) { return; } $import_options = $importData['import']['options'][$this->slug]; // echo "<pre>"; // print_r($import_options); // echo "</pre>"; if (!empty($parsedData)) { $this->logger = $importData['logger']; $post_id = $importData['pid']; $index = $importData['i']; foreach ($this->fields as $field_slug => $field_params) { if (in_array($field_params['type'], array('title', 'plain_text'))) { continue; } switch ($field_params['type']) { case 'image': // import the specified image, then set the value of the field to the image ID in the media library $image_url_or_path = $parsedData[$field_slug][$index]; $download = $import_options['download_image'][$field_slug]; $uploaded_image = PMXI_API::upload_image($post_id, $image_url_or_path, $download, $importData['logger'], true); $data[$field_slug] = array("attachment_id" => $uploaded_image, "image_url_or_path" => $image_url_or_path, "download" => $download); break; case 'file': $image_url_or_path = $parsedData[$field_slug][$index]; $download = $import_options['download_image'][$field_slug]; $uploaded_file = PMXI_API::upload_image($post_id, $image_url_or_path, $download, $importData['logger'], true, "", "files"); $data[$field_slug] = array("attachment_id" => $uploaded_file, "image_url_or_path" => $image_url_or_path, "download" => $download); break; default: // set the field data to the value of the field after it's been parsed $data[$field_slug] = $parsedData[$field_slug][$index]; break; } // apply mapping rules if they exist if ($import_options['mapping'][$field_slug]) { $mapping_rules = json_decode($import_options['mapping'][$field_slug], true); if (!empty($mapping_rules) and is_array($mapping_rules)) { foreach ($mapping_rules as $rule_number => $map_to) { if (!empty($map_to[trim($data[$field_slug])])) { $data[$field_slug] = trim($map_to[trim($data[$field_slug])]); break; } } } } // -------------------- } call_user_func($this->import_function, $post_id, $data, $importData['import']); } }