/**
* Implements hook_views_query_alter().
*/
function mymodule_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
if ('wm_users' == $view->id() && 'page_1' == $view->current_display) {
// We don't want to filter the values when the filter value is empty.
$filters = [ // Filters to unset from query when they are empty
'id_1',
'id',
];
$fields = [];
foreach ($filters as $filter_name) {
if (isset($view->filter[$filter_name])) {
$fields[] = $view->filter[$filter_name]->relationship . '.' . $view->filter[$filter_name]->field;
}
}
if ($fields) {
foreach ($query->where as &$where_group) {
foreach ($where_group['conditions'] as $key => $condition) {
$match = array_search($condition['field'], $fields);
if (FALSE !== $match) {
if (empty($condition['value'])) {
unset($where_group['conditions'][$key]);
}
unset($fields[$match]);
if (!$fields) {
break 2;
}
}
}
}
}
}
}