Update for users and custom fields.
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 3 May 2018 18:03:56 +0000 (14:03 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 3 May 2018 18:03:56 +0000 (14:03 -0400)
Archive any member not in old 2017 or 2018 member category.
Update the custom field email.

models/admin/migcsa/index.php
views/admin/migcsa/index.html

index f708493..5cba2ce 100644 (file)
@@ -140,6 +140,14 @@ class GlmMembersAdmin_migcsa_index
         }
 
         switch( $option ) {
+        case 'updateEmail':
+            $view     = 'memberTypes';
+            $response = $this->updateCustomFieldEmails();
+            break;
+        case 'archive':
+            $view     = 'memberTypes';
+            $response = $this->archive();
+            break;
         case 'updateUsernames':
             $view     = 'memberTypes';
             $response = $this->updateUsernames();
@@ -191,6 +199,125 @@ class GlmMembersAdmin_migcsa_index
 
     }
 
+    public function updateCustomFieldEmails()
+    {
+
+         $sql = "
+        SELECT member_id,member_contact_email
+          FROM member
+         WHERE member_id IN (SELECT member_id
+                               FROM member_category
+                              WHERE category_id IN (40,42))";
+        $stmt    = $this->dbh->query( $sql );
+        $members = $stmt->fetchAll();
+
+        $count = count( $members );
+
+        $this->wpdb->query('START TRANSACTION');
+        foreach ( $members as $m ) {
+            // First get the ref_dest for this member.
+            $ref_dest = $this->wpdb->get_var(
+                $this->wpdb->prepare(
+                    "SELECT id
+                       FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX  . "members
+                      WHERE old_member_id = %d",
+                    $m['member_id']
+                )
+            );
+            if ( $ref_dest ) {
+                $contact_id = $this->wpdb->get_var(
+                    $this->wpdb->prepare(
+                        "SELECT id
+                           FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX  . "contacts
+                          WHERE ref_dest = %d",
+                        $ref_dest
+                    )
+                );
+                echo '<pre>$contact_id: ' . print_r( $contact_id, true ) . '</pre>';
+                // see if there's an email set
+                $cf_email_id = $this->wpdb->get_var(
+                    $this->wpdb->prepare(
+                        "SELECT id
+                           FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX  . "custom_field_data
+                          WHERE field_id = %d
+                            AND entity_id = %d",
+                        14,
+                        $contact_id
+                    )
+                );
+                echo '<pre>$cf_email_id: ' . print_r( $cf_email_id, true ) . '</pre>';
+                if ( $cf_email_id ) {
+                    $this->wpdb->update(
+                        GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . 'custom_field_data',
+                        array( 'field_data' => $m['member_contact_email'] ),
+                        array( 'id' => $cf_email_id )
+                    );
+                } else {
+                    $this->wpdb->insert(
+                        GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . 'custom_field_data',
+                        array(
+                            'field_data' => $m['member_contact_email'],
+                            'field_id'   => 14,
+                            'entity_id'  => $contact_id
+                        )
+                    );
+                }
+            }
+
+        }
+        // $this->wpdb->query('ROLLBACK');
+        $this->wpdb->query('COMMIT');
+
+        return '<pre>$count: ' . print_r( $count, true ) . '</pre>';
+    }
+
+    public function archive()
+    {
+         $sql = "
+        SELECT member_id,member_name,process_email
+          FROM member
+         WHERE member_id NOT IN (SELECT member_id
+                               FROM member_category
+                              WHERE category_id IN (40,42))";
+        $stmt    = $this->dbh->query( $sql );
+        $members = $stmt->fetchAll();
+
+        $count = count( $members );
+
+        $this->wpdb->query('START TRANSACTION');
+        foreach ( $members as $m ) {
+            // First get the ref_dest for this member.
+            $ref_dest = $this->wpdb->get_var(
+                $this->wpdb->prepare(
+                    "SELECT id
+                       FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX  . "members
+                      WHERE old_member_id = %d",
+                    $m['member_id']
+                )
+            );
+            if ( $ref_dest ) {
+                // update the member access level.
+                $this->wpdb->update(
+                    GLM_MEMBERS_PLUGIN_DB_PREFIX . 'members',
+                    array( 'access' => 90 ),
+                    array( 'id' => $ref_dest )
+                );
+                echo '<pre>$ref_dest: ' . print_r( $ref_dest, true ) . '</pre>';
+                // Now update the member contact access level for this member.
+                $this->wpdb->update(
+                    GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . 'contacts',
+                    array( 'access' => 90 ),
+                    array( 'ref_dest' => $ref_dest )
+                );
+            }
+
+        }
+        // $this->wpdb->query('ROLLBACK');
+        $this->wpdb->query('COMMIT');
+
+        return '<pre>$count: ' . print_r( $count, true ) . '</pre>';
+    }
+
     public function updateUsernames()
     {
         // $contact_ids    = array( 725, 1123, 904, 1308, 974, 1099, 534, 1019, 1077, 907, 773, 851, 1113, 1011, 17, 1213, 724, 225, 719, 687, 709, 882, 989, 648, 768, 1210, 1176, 659, 1080, 402, 817, 1300, 934);
index a5939e7..80e664d 100644 (file)
@@ -12,3 +12,7 @@
 <a href="{$thisUrl}?page={$thisPage}&option=updateMemberContacts">Update Member Contacts</a>
 <br />
 <a href="{$thisUrl}?page={$thisPage}&option=updateUsernames">Update Usernames</a>
+<br />
+<a href="{$thisUrl}?page={$thisPage}&option=archive">Archive Old Users</a>
+<br />
+<a href="{$thisUrl}?page={$thisPage}&option=updateEmail">Update Custom field email</a>