From: Steve Sutton Date: Wed, 25 Jul 2018 18:25:38 +0000 (-0400) Subject: Updating the search query for $uid X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=4391c0e29795ba1a8814c7765a8a3305be7dccd7;p=WP-Plugins%2Fglm-member-db-fields.git Updating the search query for $uid Diffs between the members and contacts. --- diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 31015d9..54a79a5 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -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; }