/**
  * Upload a file
  * @return  string or array
  */
 public function upload_file($field_key, $field)
 {
     if (isset($_FILES[$field_key]) && !empty($_FILES[$field_key]) && !empty($_FILES[$field_key]['name'])) {
         if (!empty($field['allowed_mime_types'])) {
             $allowed_mime_types = $field['allowed_mime_types'];
         } else {
             $allowed_mime_types = get_allowed_mime_types();
         }
         $files = array();
         $files_to_upload = job_manager_prepare_uploaded_files($_FILES[$field_key]);
         add_filter('job_manager_upload_dir', array($this, 'upload_dir'), 10, 2);
         foreach ($files_to_upload as $file_to_upload) {
             $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $field_key));
             if (is_wp_error($uploaded_file)) {
                 throw new Exception($uploaded_file->get_error_message());
             } else {
                 if (!isset($uploaded_file->file)) {
                     $uploaded_file->file = str_replace(site_url(), ABSPATH, $uploaded_file->url);
                 }
                 $files[] = $uploaded_file;
             }
         }
         remove_filter('job_manager_upload_dir', array($this, 'upload_dir'), 10, 2);
         return $files;
     }
 }
 /**
  * Upload a file
  * @return  string or array
  */
 protected function upload_file($field_key, $field)
 {
     if (isset($_FILES[$field_key]) && !empty($_FILES[$field_key]) && !empty($_FILES[$field_key]['name'])) {
         if (!empty($field['allowed_mime_types'])) {
             $allowed_mime_types = $field['allowed_mime_types'];
         } else {
             $allowed_mime_types = get_allowed_mime_types();
         }
         $file_urls = array();
         $files_to_upload = job_manager_prepare_uploaded_files($_FILES[$field_key]);
         foreach ($files_to_upload as $file_to_upload) {
             $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $field_key));
             if (is_wp_error($uploaded_file)) {
                 throw new Exception($uploaded_file->get_error_message());
             } else {
                 $file_urls[] = $uploaded_file->url;
             }
         }
         if (!empty($field['multiple'])) {
             return $file_urls;
         } else {
             return current($file_urls);
         }
     }
 }
 /**
  * Upload file via ajax
  *
  * No nonce field since the form may be statically cached.
  */
 public function upload_file()
 {
     $data = array('files' => array());
     if (!empty($_FILES)) {
         foreach ($_FILES as $file_key => $file) {
             $files_to_upload = job_manager_prepare_uploaded_files($file);
             foreach ($files_to_upload as $file_to_upload) {
                 $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $file_key));
                 if (is_wp_error($uploaded_file)) {
                     $data['files'][] = array('error' => $uploaded_file->get_error_message());
                 } else {
                     $data['files'][] = $uploaded_file;
                 }
             }
         }
     }
     wp_send_json($data);
 }
 private function upload_files($post_id)
 {
     /** WordPress Administration Image API */
     include_once ABSPATH . 'wp-admin/includes/image.php';
     include_once ABSPATH . 'wp-admin/includes/media.php';
     $allowed_mime_types = get_allowed_mime_types();
     $output = array();
     $files_to_upload = job_manager_prepare_uploaded_files($_FILES['listify_gallery_images']);
     foreach ($files_to_upload as $file_key => $file_to_upload) {
         $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $file_key));
         if (is_wp_error($uploaded_file)) {
             throw new Exception($uploaded_file->get_error_message());
         } else {
             $output['urls'][] = $uploaded_file->url;
         }
     }
     $maybe_attach = array();
     if (empty($output['urls'])) {
         return $output;
     }
     foreach ($output['urls'] as $url) {
         $maybe_attach[] = str_replace(array(WP_CONTENT_URL, site_url()), array(WP_CONTENT_DIR, ABSPATH), $url);
     }
     foreach ($maybe_attach as $attachment_url) {
         $attachment = array('post_title' => get_the_title($post_id), 'post_content' => '', 'post_status' => 'inherit', 'post_parent' => $post_id, 'guid' => $attachment_url);
         if ($info = wp_check_filetype($attachment_url)) {
             $attachment['post_mime_type'] = $info['type'];
         }
         $attachment_id = wp_insert_attachment($attachment, $attachment_url, $post_id);
         $output['ids'][] = $attachment_id;
         if (!is_wp_error($attachment_id)) {
             wp_update_attachment_metadata($attachment_id, wp_generate_attachment_metadata($attachment_id, $attachment_url));
         }
     }
     return $output;
 }