/**
  * Make sure that the GV approval entry meta has been deleted, but not other meta
  * @since 1.15
  * @param $entry_ids
  */
 function _check_deleted_entry_meta($entry_ids)
 {
     $values = gform_get_meta_values_for_entries($entry_ids, array('is_approved', 'do_not_delete'));
     foreach ($values as $value) {
         $this->assertFalse($value->is_approved);
         $this->assertEquals("DO NOT DELETE", $value->do_not_delete);
     }
 }
 public static function build_lead_array($results, $use_long_values = true)
 {
     $leads = array();
     $lead = array();
     $form_id = 0;
     if (is_array($results) && sizeof($results) > 0) {
         $form_id = $results[0]->form_id;
         $lead = array('id' => $results[0]->id, 'form_id' => $results[0]->form_id, 'date_created' => $results[0]->date_created, 'is_starred' => intval($results[0]->is_starred), 'is_read' => intval($results[0]->is_read), 'ip' => $results[0]->ip, 'source_url' => $results[0]->source_url, 'post_id' => $results[0]->post_id, 'currency' => $results[0]->currency, 'payment_status' => $results[0]->payment_status, 'payment_date' => $results[0]->payment_date, 'transaction_id' => $results[0]->transaction_id, 'payment_amount' => $results[0]->payment_amount, 'payment_method' => $results[0]->payment_method, 'is_fulfilled' => $results[0]->is_fulfilled, 'created_by' => $results[0]->created_by, 'transaction_type' => $results[0]->transaction_type, 'user_agent' => $results[0]->user_agent, 'status' => $results[0]->status, 'orderStatus' => $results[0]->orderStatus);
         $form = RGFormsModel::get_form_meta($form_id);
         $prev_lead_id = 0;
         foreach ($results as $result) {
             if ($prev_lead_id != $result->id && $prev_lead_id > 0) {
                 array_push($leads, $lead);
                 $lead = array('id' => $result->id, 'form_id' => $result->form_id, 'date_created' => $result->date_created, 'is_starred' => intval($result->is_starred), 'is_read' => intval($result->is_read), 'ip' => $result->ip, 'source_url' => $result->source_url, 'post_id' => $result->post_id, 'currency' => $result->currency, 'payment_status' => $result->payment_status, 'payment_date' => $result->payment_date, 'transaction_id' => $result->transaction_id, 'payment_amount' => $result->payment_amount, 'payment_method' => $result->payment_method, 'is_fulfilled' => $result->is_fulfilled, 'created_by' => $result->created_by, 'transaction_type' => $result->transaction_type, 'user_agent' => $result->user_agent, 'status' => $result->status);
             }
             $field_value = $result->value;
             $field_number = (string) $result->field_number;
             //using long values if specified
             if ($use_long_values && strlen($field_value) >= GFORMS_MAX_FIELD_LENGTH - 10) {
                 $long_text = RGFormsModel::get_field_value_long($lead, $field_number, $form, false);
                 $field_value = !empty($long_text) ? $long_text : $field_value;
             }
             $lead[$field_number] = $field_value;
             $prev_lead_id = $result->id;
         }
     }
     //adding last lead.
     if (sizeof($lead) > 0) {
         array_push($leads, $lead);
     }
     //running entry through gform_get_field_value filter
     foreach ($leads as &$lead) {
         foreach ($form['fields'] as $field) {
             /* @var GF_Field $field */
             $inputs = $field->get_entry_inputs();
             // skip types html, page and section?
             if (is_array($inputs)) {
                 foreach ($inputs as $input) {
                     $lead[(string) $input['id']] = apply_filters('gform_get_input_value', rgar($lead, (string) $input['id']), $lead, $field, $input['id']);
                 }
             } else {
                 $value = rgar($lead, (string) $field->id);
                 if (self::is_encrypted_field($lead['id'], $field->id)) {
                     $value = GFCommon::decrypt($value);
                 }
                 $lead[$field->id] = apply_filters('gform_get_input_value', $value, $lead, $field, '');
             }
         }
     }
     //add custom entry properties
     $entry_ids = array();
     foreach ($leads as $l) {
         $entry_ids[] = $l['id'];
     }
     $entry_meta = GFFormsModel::get_entry_meta($form_id);
     $meta_keys = array_keys($entry_meta);
     $entry_meta_data_rows = gform_get_meta_values_for_entries($entry_ids, $meta_keys);
     foreach ($leads as &$lead) {
         foreach ($entry_meta_data_rows as $entry_meta_data_row) {
             if ($entry_meta_data_row->lead_id == $lead['id']) {
                 foreach ($meta_keys as $meta_key) {
                     $lead[$meta_key] = $entry_meta_data_row->{$meta_key};
                 }
             }
         }
     }
     return $leads;
 }
示例#3
0
 public static function build_lead_array($results, $use_long_values = false)
 {
     $leads = array();
     $lead = array();
     $form_id = 0;
     if (is_array($results) && sizeof($results) > 0) {
         $form_id = $results[0]->form_id;
         $lead = array("id" => $results[0]->id, "form_id" => $results[0]->form_id, "date_created" => $results[0]->date_created, "is_starred" => intval($results[0]->is_starred), "is_read" => intval($results[0]->is_read), "ip" => $results[0]->ip, "source_url" => $results[0]->source_url, "post_id" => $results[0]->post_id, "currency" => $results[0]->currency, "payment_status" => $results[0]->payment_status, "payment_date" => $results[0]->payment_date, "transaction_id" => $results[0]->transaction_id, "payment_amount" => $results[0]->payment_amount, "is_fulfilled" => $results[0]->is_fulfilled, "created_by" => $results[0]->created_by, "transaction_type" => $results[0]->transaction_type, "user_agent" => $results[0]->user_agent, "status" => $results[0]->status);
         $form = RGFormsModel::get_form_meta($form_id);
         $prev_lead_id = 0;
         foreach ($results as $result) {
             if ($prev_lead_id != $result->id && $prev_lead_id > 0) {
                 array_push($leads, $lead);
                 $lead = array("id" => $result->id, "form_id" => $result->form_id, "date_created" => $result->date_created, "is_starred" => intval($result->is_starred), "is_read" => intval($result->is_read), "ip" => $result->ip, "source_url" => $result->source_url, "post_id" => $result->post_id, "currency" => $result->currency, "payment_status" => $result->payment_status, "payment_date" => $result->payment_date, "transaction_id" => $result->transaction_id, "payment_amount" => $result->payment_amount, "is_fulfilled" => $result->is_fulfilled, "created_by" => $result->created_by, "transaction_type" => $result->transaction_type, "user_agent" => $result->user_agent, "status" => $result->status);
             }
             $field_value = $result->value;
             //using long values if specified
             if ($use_long_values && strlen($field_value) >= GFORMS_MAX_FIELD_LENGTH - 10) {
                 $field = RGFormsModel::get_field($form, $result->field_number);
                 $long_text = RGFormsModel::get_field_value_long($lead, $result->field_number, $form, false);
                 $field_value = !empty($long_text) ? $long_text : $field_value;
             }
             $lead[$result->field_number] = $field_value;
             $prev_lead_id = $result->id;
         }
     }
     //adding last lead.
     if (sizeof($lead) > 0) {
         array_push($leads, $lead);
     }
     //running entry through gform_get_field_value filter
     foreach ($leads as &$lead) {
         foreach ($form["fields"] as $field) {
             if (isset($field["inputs"]) && is_array($field["inputs"])) {
                 foreach ($field["inputs"] as $input) {
                     $lead[(string) $input["id"]] = apply_filters("gform_get_input_value", rgar($lead, (string) $input["id"]), $lead, $field, $input["id"]);
                 }
             } else {
                 $lead[$field["id"]] = apply_filters("gform_get_input_value", rgar($lead, (string) $field["id"]), $lead, $field, "");
             }
         }
     }
     //adding custom entry properties
     $entry_ids = array();
     foreach ($leads as $l) {
         $entry_ids[] = $l["id"];
     }
     $entry_meta = GFFormsModel::get_entry_meta($form_id);
     $meta_keys = array_keys($entry_meta);
     $entry_meta_data_rows = gform_get_meta_values_for_entries($entry_ids, $meta_keys);
     foreach ($leads as &$lead) {
         foreach ($entry_meta_data_rows as $entry_meta_data_row) {
             if ($entry_meta_data_row->lead_id == $lead["id"]) {
                 foreach ($meta_keys as $meta_key) {
                     $lead[$meta_key] = $entry_meta_data_row->{$meta_key};
                 }
             }
         }
     }
     return $leads;
 }