Fixing issue with lead entry update insert and date_created
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 22 Jul 2016 20:42:03 +0000 (16:42 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 22 Jul 2016 20:42:03 +0000 (16:42 -0400)
Wasn't setting the date_submitted from the entry data was using
current_time which won't work. We need to see when the entry was in the
gravity form.

models/admin/management/leads.php

index d53f9b8..df7d52a 100644 (file)
@@ -450,18 +450,7 @@ class GlmMembersAdmin_management_leads // extends GlmDataLeadsManagement
             }
             $member_lead_id = $this->addMemberLead( $lead );
             if ( $member_lead_id ) {
-                // see if the gf_entry_id is already in
-                $entry_id = $this->wpdb->get_var(
-                    $this->wpdb->prepare(
-                        "SELECT id
-                           FROM " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "lead_entry
-                          WHERE gf_entry_id = %d",
-                        $entry['id']
-                    )
-                );
-                if ( !$entry_id ) {
-                    $entry_id = $this->addMemberLeadEntry( $member_lead_id, $lead, $entry );
-                }
+                $entry_id = $this->addMemberLeadEntry( $member_lead_id, $lead, $entry );
                 if ( $entry_id ) {
                     // now we can add the interest field for the entry record
                     $this->addMemberLeadInterests( $entry_id, $entry );
@@ -553,29 +542,42 @@ class GlmMembersAdmin_management_leads // extends GlmDataLeadsManagement
         if ( !isset( $lead ) || !is_array( $lead ) ) {
             return false;
         }
+        /*
+        echo '<pre>$lead_id: ' . print_r( $lead_id, true ) . '</pre>';
+        echo '<pre>$lead: ' . print_r( $lead, true ) . '</pre>';
+        echo '<pre>$entry: ' . print_r( $entry, true ) . '</pre>';
+        exit;
+         */
+        // see if the gf_entry_id is already in
+        $entry_id = $this->wpdb->get_var(
+            $this->wpdb->prepare(
+                "SELECT id
+                   FROM " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "lead_entry
+                  WHERE gf_entry_id = %d",
+                $entry['id']
+            )
+        );
         $source_id = $this->getSourceId( $entry['form_id'] );
-        $this->wpdb->insert(
-            GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . 'lead_entry',
-            array(
-                'source_id'       => $source_id,
-                'lead_id'         => $lead_id,
-                'gf_entry_id'     => $entry['id'],
-                'fname'           => ( ( $lead['fname'] )   ? $lead['fname']   : ''),
-                'lname'           => ( ( $lead['lname'] )   ? $lead['lname']   : ''),
-                'org'             => ( ( $lead['org'] )     ? $lead['org']     : ''),
-                'addr1'           => ( ( $lead['addr1'] )   ? $lead['addr1']   : ''),
-                'addr2'           => ( ( $lead['addr2'] )   ? $lead['addr2']   : ''),
-                'city'            => ( ( $lead['city'] )    ? $lead['city']    : ''),
-                'state'           => ( ( $lead['state'] )   ? $lead['state']   : ''),
-                'zip'             => ( ( $lead['zip'] )     ? $lead['zip']     : ''),
-                'country'         => ( ( $lead['country'] ) ? $lead['country'] : ''),
-                'phone'           => ( ( $lead['phone'] )   ? $lead['phone']   : ''),
-                'phone2'          => ( ( $lead['phone2'] )  ? $lead['phone2']  : ''),
-                'fax'             => ( ( $lead['fax'] )     ? $lead['fax']     : ''),
-                'date_submitted'  => current_time( 'mysql' ),
-                'user_trace_info' => $entry['ip'],
-            ),
-            array(
+        $data = array(
+            'source_id'       => $source_id,
+            'lead_id'         => $lead_id,
+            'gf_entry_id'     => $entry['id'],
+            'fname'           => ( ( $lead['fname'] )   ? $lead['fname']   : ''),
+            'lname'           => ( ( $lead['lname'] )   ? $lead['lname']   : ''),
+            'org'             => ( ( $lead['org'] )     ? $lead['org']     : ''),
+            'addr1'           => ( ( $lead['addr1'] )   ? $lead['addr1']   : ''),
+            'addr2'           => ( ( $lead['addr2'] )   ? $lead['addr2']   : ''),
+            'city'            => ( ( $lead['city'] )    ? $lead['city']    : ''),
+            'state'           => ( ( $lead['state'] )   ? $lead['state']   : ''),
+            'zip'             => ( ( $lead['zip'] )     ? $lead['zip']     : ''),
+            'country'         => ( ( $lead['country'] ) ? $lead['country'] : ''),
+            'phone'           => ( ( $lead['phone'] )   ? $lead['phone']   : ''),
+            'phone2'          => ( ( $lead['phone2'] )  ? $lead['phone2']  : ''),
+            'fax'             => ( ( $lead['fax'] )     ? $lead['fax']     : ''),
+            'date_submitted'  => $entry['date_created'],
+            'user_trace_info' => $entry['ip'],
+        );
+        $data_format = array(
                 '%s',
                 '%s',
                 '%s',
@@ -591,9 +593,24 @@ class GlmMembersAdmin_management_leads // extends GlmDataLeadsManagement
                 '%s',
                 '%s',
                 '%s',
-            )
-        );
-        return $this->wpdb->insert_id;
+            );
+        if ( $entry_id ) {
+            $this->wpdb->update(
+                GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . 'lead_entry',
+                $data,
+                array( 'id' => $entry_id ),
+                $data_format,
+                array( '%d' )
+            );
+            return $entry_id;
+        } else {
+            $this->wpdb->insert(
+                GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . 'lead_entry',
+                $data,
+                $data_format
+            );
+            return $this->wpdb->insert_id;
+        }
     }
     public function getMembersInterests( $form_id ) {
         static $interest = array();