Updating the search query for $uid
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 25 Jul 2018 18:25:38 +0000 (14:25 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 25 Jul 2018 18:25:38 +0000 (14:25 -0400)
Diffs between the members and contacts.

setup/adminHooks.php

index 31015d9..54a79a5 100644 (file)
@@ -175,6 +175,9 @@ $parts = array();
 
 /**
  * Admin Query Hook for searching member by custom fields
+ *
+ * There's two types now member and contact custom fields.
+ * Need to be able to search for either based on thier $uid.
  */
 add_filter('glm-member-db-admin-search-query', function( $content, $uid ) {
     $queryParts = array();
@@ -191,18 +194,33 @@ add_filter('glm-member-db-admin-search-query', function( $content, $uid ) {
             switch ( $field['field_type'] ) {
             case 'textarea':
                 break;
+            case 'picklist':
             case 'text':
                 // convert name to lower case and replace spaces with _
                 $field_name = preg_replace( '/[ -]/', '_', strtolower( $field['field_name'] ) );
                 if ( isset( $_REQUEST[$field_name] ) && $fieldValue = filter_var( $_REQUEST[$field_name], FILTER_SANITIZE_STRING ) ) {
-                    $queryParts[] = " T.id IN (
-                        SELECT mi.member
-                          FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info mi, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
-                         WHERE cfd.entity_id = mi.id
-                           AND cfd.field_data like '%" .  esc_sql( $fieldValue ) . "%'
-                           AND cfd.field_id = (SELECT id
-                                           FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
-                                          WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
+                    switch ( $uid ) {
+                    case 'glm-member-db':
+                        $queryParts[] = " T.id IN (
+                            SELECT mi.member
+                              FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info mi, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
+                             WHERE cfd.entity_id = mi.id
+                               AND cfd.field_data like '%" .  esc_sql( $fieldValue ) . "%'
+                               AND cfd.field_id = (SELECT id
+                                               FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
+                                              WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
+                        break;
+                    case 'glm-member-db-contacts':
+                        $queryParts[] = " T.id IN (
+                            SELECT C.id
+                              FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts C, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
+                             WHERE cfd.entity_id = C.id
+                               AND cfd.field_data like '%" .  esc_sql( $fieldValue ) . "%'
+                               AND cfd.field_id = (SELECT id
+                                               FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
+                                              WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
+                        break;
+                    }
                 }
 
                 break;
@@ -210,14 +228,28 @@ add_filter('glm-member-db-admin-search-query', function( $content, $uid ) {
                 // convert name to lower case and replace spaces with _
                 $field_name = preg_replace( '/[ -]/', '_', strtolower( $field['field_name'] ) );
                 if ( isset( $_REQUEST[$field_name] ) && filter_var( $_REQUEST[$field_name], FILTER_VALIDATE_BOOLEAN ) ) {
-                    $queryParts[] = " T.id IN (
-                        SELECT mi.member
-                          FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info mi, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
-                         WHERE cfd.entity_id = mi.id
-                           AND cfd.field_data = 'Yes'
-                           AND cfd.field_id = (SELECT id
-                                           FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
-                                          WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
+                    switch ( $uid ) {
+                    case 'glm-member-db':
+                        $queryParts[] = " T.id IN (
+                            SELECT mi.member
+                              FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info mi, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
+                             WHERE cfd.entity_id = mi.id
+                               AND cfd.field_data = 'Yes'
+                               AND cfd.field_id = (SELECT id
+                                               FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
+                                              WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
+                        break;
+                    case 'glm-member-db-contacts':
+                        $queryParts[] = " T.id IN (
+                            SELECT C.id
+                              FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts C, " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data cfd
+                             WHERE cfd.entity_id = C.id
+                               AND cfd.field_data = 'Yes'
+                               AND cfd.field_id = (SELECT id
+                                               FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields
+                                              WHERE field_name = '" . esc_sql( $field['field_name'] ) . "'))";
+                        break;
+                    }
                 }
                 break;
             }