Hi,
1. I've tested is and it works just fine with your example. So you must have done something wrong with your override. Try adding it via the HikaShop configuration as explained in the documention link I gave you.
2. Change the code:
if(!empty($selected) && is_array($selected) && (in_array($val[0], $selected) || strpos($selected[0], $val[0]) !== false)) {
$checked = 'checked="checked"';
if($type == 'radio') {
$deleteButton = ' '.parent::getDeleteButton($filter, $divName, '', $html, '', true, 'field_'.$filter->filter_id.'_'.$key.'_'.$divName);
}
}
to:
if(!empty($selected) && is_array($selected)){
foreach($selected as $selectedElement){
if(preg_match('#^('.$selectedElement.'|.*\:\:'.$selectedElement.'|'.$selectedElement.'::.*)$#',$val[0],$match)){
$checked = 'checked="checked"';
if($type == 'radio') {
$deleteButton = ' '.parent::getDeleteButton($filter, $divName, '', $html, '', true, 'field_'.$filter->filter_id.'_'.$key.'_'.$divName);
}
break;
}
}
}
in the file administrator/components/com_hikashop/classes/filter.php and that will make the system properly select the elements after the search. Regarding the fact that you see all the values after the filter, that's normal:
You're in dynamic display mode where the filters display all the values of the products in the listing. Since there are no products after the filtering, there are no values. So instead of not displaying any values in the filters, it displays all of them.