From ff8ab17fec74d4b2a1ef382409060ff5c9fce8a0 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Fri, 14 Apr 2017 14:43:34 -0400 Subject: [PATCH] Adding filters for the admin searching Adding the checkboxes to admin side for custom fields. Only checkboxes so far. --- setup/adminHooks.php | 65 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 1756f6d..a5c26ae 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -35,6 +35,71 @@ add_filter( 'glm-member-db-member-info-custom-tab', function( $content, $memberI $content = $this->controller( 'memberinfo', 'fields', $memberId ); return $content; },1,2); +add_filter( 'glm-member-db-custom-filter-search', function ( $content ) { +$parts = array(); + $customFields = $this->wpdb->get_results( + "SELECT * + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields", + ARRAY_A + ); + if ( isset( $customFields ) && count( $customFields ) > 0 ) { + foreach ( $customFields as $key => $field ) { + switch ( $field['field_type'] ) { + case 'text': + case 'textarea': + + break; + case 'checkbox': + // convert name to lower case and replace spaces with _ + $field_name = preg_replace( '/[ -]/', '_', strtolower( $field['field_name'] ) ); + $parts[$field['id']] = '' . $field['field_name'] . ': wpdb->get_results( + "SELECT * + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields", + ARRAY_A + ); + if ( isset( $customFields ) && count( $customFields ) > 0 ) { + foreach ( $customFields as $key => $field ) { + switch ( $field['field_type'] ) { + case 'text': + case 'textarea': + + break; + case 'checkbox': + // 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 member + FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info + WHERE id IN ( + SELECT ref_dest + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data + WHERE field_data = 'Yes' + AND field_id = (SELECT id + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields + WHERE field_name = '" . esc_sql( $field['field_name'] ) . "') + ) )"; + } + break; + } + } + } + return $queryParts; +}); add_action( 'glm-member-db-member-info-save-custom-fields', function( $memberInfoId ){ -- 2.17.1