/** * Retrieves keys for all available ticket statuses. * * @since 1.0 * @return arr $ticket_status All available ticket statuses */ function kbs_get_ticket_status_keys() { $statuses = array_keys(kbs_get_ticket_statuses()); asort($statuses); return array_values($statuses); }
/** * Set the ticket status and run any status specific changes necessary. * * @since 1.0 * @param str $status The status to set the payment to * @return bool Returns if the status was successfully updated */ public function update_status($status = false) { if ($old_status === $status) { return false; // Don't permit status changes that aren't changes } $do_change = apply_filters('kbs_should_update_ticket_status', true, $this->ID, $status, $old_status); $updated = false; if ($do_change) { do_action('kbs_before_ticket_status_change', $this->ID, $status, $old_status); $update_fields = array('ID' => $this->ID, 'post_status' => $status, 'edit_date' => current_time('mysql')); $updated = wp_update_post(apply_filters('kbs_update_ticket_status_fields', $update_fields)); $all_ticket_statuses = kbs_get_ticket_statuses(); $this->status_nicename = array_key_exists($status, $all_ticket_statuses) ? $all_ticket_statuses[$status] : ucfirst($status); // Process any specific status functions switch ($status) { case 'open': $this->process_open(); break; case 'hold': $this->process_on_hold(); break; case 'closed': $this->process_closed(); break; } do_action('kbs_update_ticket_status', $this->ID, $status, $old_status); } return $updated; }