/**
  * Main Instance
  */
 public static function instance()
 {
     if (is_null(self::$_instance)) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * Submit Step
  */
 public static function submit()
 {
     $job = get_post(self::$job_id);
     if (empty(self::$job_id) || $job->post_status !== 'publish' && !job_manager_user_can_edit_pending_submissions()) {
         echo wpautop(__('Invalid listing', 'wp-job-manager'));
         return;
     }
     self::init_fields();
     foreach (self::$fields as $group_key => $group_fields) {
         foreach ($group_fields as $key => $field) {
             if (!isset(self::$fields[$group_key][$key]['value'])) {
                 if ('job_title' === $key) {
                     self::$fields[$group_key][$key]['value'] = $job->post_title;
                 } elseif ('job_description' === $key) {
                     self::$fields[$group_key][$key]['value'] = $job->post_content;
                 } elseif (!empty($field['taxonomy'])) {
                     self::$fields[$group_key][$key]['value'] = wp_get_object_terms($job->ID, $field['taxonomy'], array('fields' => 'ids'));
                 } else {
                     self::$fields[$group_key][$key]['value'] = get_post_meta($job->ID, '_' . $key, true);
                 }
             }
         }
     }
     self::$fields = apply_filters('submit_job_form_fields_get_job_data', self::$fields, $job);
     wp_enqueue_script('wp-job-manager-job-submission');
     get_job_manager_template('job-submit.php', array('form' => self::$form_name, 'job_id' => self::get_job_id(), 'action' => self::get_action(), 'job_fields' => self::get_fields('job'), 'company_fields' => self::get_fields('company'), 'step' => self::get_step(), 'submit_button_text' => __('Save changes', 'wp-job-manager')));
 }
 /**
  * Submit Step
  */
 public static function submit()
 {
     global $job_manager, $post;
     $job = get_post(self::$job_id);
     if (empty(self::$job_id) || $job->post_status !== 'publish') {
         echo wpautop(__('Invalid job', 'wp-job-manager'));
         return;
     }
     self::init_fields();
     foreach (self::$fields as $group_key => $fields) {
         foreach ($fields as $key => $field) {
             switch ($key) {
                 case 'job_title':
                     if (!isset(self::$fields[$group_key][$key]['value'])) {
                         self::$fields[$group_key][$key]['value'] = $job->post_title;
                     }
                     break;
                 case 'job_description':
                     if (!isset(self::$fields[$group_key][$key]['value'])) {
                         self::$fields[$group_key][$key]['value'] = $job->post_content;
                     }
                     break;
                 case 'job_type':
                     if (!isset(self::$fields[$group_key][$key]['value'])) {
                         self::$fields[$group_key][$key]['value'] = current(wp_get_object_terms($job->ID, 'job_listing_type', array('fields' => 'slugs')));
                     }
                     break;
                 case 'job_category':
                     if (!isset(self::$fields[$group_key][$key]['value'])) {
                         self::$fields[$group_key][$key]['value'] = current(wp_get_object_terms($job->ID, 'job_listing_category', array('fields' => 'slugs')));
                     }
                     break;
                 default:
                     if (!isset(self::$fields[$group_key][$key]['value'])) {
                         self::$fields[$group_key][$key]['value'] = get_post_meta($job->ID, '_' . $key, true);
                     }
                     break;
             }
         }
     }
     self::$fields = apply_filters('submit_job_form_fields_get_job_data', self::$fields, $job);
     wp_enqueue_script('wp-job-manager-job-submission');
     get_job_manager_template('job-submit.php', array('form' => self::$form_name, 'job_id' => self::get_job_id(), 'action' => self::get_action(), 'job_fields' => self::get_fields('job'), 'company_fields' => self::get_fields('company'), 'submit_button_text' => __('Update job listing', 'wp-job-manager')));
 }