public static function create_estimate($passed_args, $status = '') { $defaults = array('subject' => sprintf(__('New Estimate: %s', 'sprout-invoices'), date_i18n(get_option('date_format') . ' @ ' . get_option('time_format'), current_time('timestamp'))), 'user_id' => '', 'estimate_id' => '', 'invoice_id' => '', 'client_id' => '', 'project_id' => '', 'status' => $status ? $status : self::STATUS_REQUEST, 'total' => (double) 0, 'currency' => '', 'po_number' => '', 'discount' => '', 'tax' => (double) 0, 'tax2' => (double) 0, 'notes' => SI_Estimates_Edit::get_default_notes(), 'terms' => SI_Estimates_Edit::get_default_terms(), 'issue_date' => time(), 'expiration_date' => 0, 'line_items' => array(), 'fields' => array()); $args = wp_parse_args($passed_args, $defaults); $id = wp_insert_post(array('post_status' => $args['status'], 'post_type' => self::POST_TYPE, 'post_title' => $args['subject'])); if (is_wp_error($id)) { return 0; } $estimate = self::get_instance($id); if (isset($args['fields'])) { $estimate->set_submission_fields($args['fields']); } // Set the submitted user id if logged in. if (is_user_logged_in()) { $estimate->set_user_id(get_current_user_id()); } $estimate->set_user_id($args['user_id']); $estimate->set_estimate_id($args['estimate_id']); $estimate->set_client_id($args['client_id']); $estimate->set_project_id($args['project_id']); $estimate->set_status($args['status']); $estimate->set_total($args['total']); $estimate->set_currency($args['currency']); $estimate->set_po_number($args['po_number']); $estimate->set_discount($args['discount']); $estimate->set_tax($args['tax']); $estimate->set_tax2($args['tax2']); $estimate->set_notes($args['notes']); $estimate->set_terms($args['terms']); $issue_date = is_numeric($args['issue_date']) ? $args['issue_date'] : strtotime($args['issue_date']); $estimate->set_issue_date($issue_date); $expiration_date = is_numeric($args['expiration_date']) ? $args['expiration_date'] : strtotime($args['expiration_date']); $estimate->set_expiration_date($expiration_date); $estimate->set_line_items($args['line_items']); do_action('sa_new_estimate', $estimate, $args); return $id; }