From f5947f6d6f57bb40abb5f4b1829b749bd60ae0b6 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Thu, 13 Apr 2017 12:51:22 -0400 Subject: [PATCH] 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. --- setup/frontHooks.php | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) 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; -- 2.17.1