Bueno, esto debería funcionar:
1.- Sustituir el Select de Región por el de tu campo personalizado:
Localiza este bloque en oc-content\themes\next_revo\inc.search.php:
<div class="cell selector">
<?php next_region_select() ; ?>
</div>
Reemplázalo con:
<div class="cell selector">
<?php $cfIdentifier = 'sample-dropdown';
$field = Field::newInstance()->findBySlug($cfIdentifier);
FieldForm::meta($field); ?>
</div>
<script type="text/javascript">
var metaIdentifier = 'meta_<?php echo $cfIdentifier; ?>';
$("label[for='" + metaIdentifier + "']").remove();
$("select#" + metaIdentifier).prepend('<option value="" selected="selected">Select an option</option>').change();
</script>
Y tienes que adaptarlo a tus circunstancias específicas:
a.- Reemplaza sample-dropdown con el identificador real de tu campo personalizado (eso lo averiguas en las Opciones Avanzadas del campo personalizado en el Panel de Administración).
b.- Reemplaza Select an option con un texto apropiado ("Selecciona Modelo/Tamaño/etc", algo descriptivo del campo personalizado).
...............
2.- Para conseguir búsquedas por ese campo personalizado sin necesidad de que haya una categoría activa:
Añade esto al final del todo de functions.php de tu tema:
Notas:
1.- Cuida de no dejar líneas en blanco después de esto.
2.- si functions.php de tu tema no termina con ?> , quita la primera línea de mi código.
<?php
function cust_isolated_custom_field_search() {
$params = Params::getParamsAsArray();
if ($params['meta'] && !@$params['sCategory']) {
reset($params['meta']);
$id = key($params['meta']);
Search::newInstance()->addConditions(sprintf(
"%st_item.pk_i_id IN (SELECT fk_i_item_id FROM %st_item_meta WHERE fk_i_field_id = '%d' AND s_value = '%s')", DB_TABLE_PREFIX, DB_TABLE_PREFIX, $id, $params['meta'][$id]
));
}
}
osc_add_hook('search_conditions', 'cust_isolated_custom_field_search');
?>
Saludos