From: Steve Sutton Date: Thu, 13 Apr 2017 16:51:22 +0000 (-0400) Subject: Update filters for search query and the order by. X-Git-Tag: v1.0.0^2~21 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=f5947f6d6f57bb40abb5f4b1829b749bd60ae0b6;p=WP-Plugins%2Fglm-member-db-fields.git Update filters for search query and the order by. For the search query replace space and dash with underscore. For the order by clause to sort the rvs by just arrived, red hot then coming soon. --- diff --git a/setup/frontHooks.php b/setup/frontHooks.php index 308ac26..e2065c3 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -59,7 +59,7 @@ add_filter('glm-member-db-front-search-query', function() { break; case 'checkbox': // convert name to lower case and replace spaces with _ - $field_name = str_replace( ' ', '_', strtolower( $field['field_name'] ) ); + $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 ref_dest @@ -74,6 +74,34 @@ add_filter('glm-member-db-front-search-query', function() { } return $queryParts; }); +add_filter('glm-member-db-front-search-query-orderby', function($originalOrderBy){ + // Order by clause for Just Arrived. + $orderBy = " ( + SELECT CASE WHEN field_data = 'Yes' THEN 0 ELSE 1 end + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data + WHERE field_id = (SELECT id + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields + WHERE field_name = 'Just Arrived') + AND ref_dest = T.id) "; + // Order by clause for Red Hot Deal. + $orderBy .= ", ( + SELECT CASE WHEN field_data = 'Yes' THEN 0 ELSE 1 end + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data + WHERE field_id = (SELECT id + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields + WHERE field_name = 'Red Hot Deal') + AND ref_dest = T.id) "; + // Order by clause for Coming Soon. + $orderBy .= ", ( + SELECT CASE WHEN field_data = 'Yes' THEN 0 ELSE 1 end + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_field_data + WHERE field_id = (SELECT id + FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields + WHERE field_name = 'Coming Soon') + AND ref_dest = T.id) "; + $orderBy .= ", $originalOrderBy DESC "; + return $orderBy; +}); add_filter('glm_custom_fields', function($attribute, $id = 0) { global $wpdb;