Nothing stands out as ‘wrong’ – though you do have a few errors:
- The third tax_query conditional is missing a closing bracket
- The third tax_query should be querying
precio
not$ubicacion
. - Cast the ID variables as integers
I’d suggest putting WordPress into debug mode to highlight any syntax errors. Try doing it for only one taxonomy first, and then add the others in. If using WP3.3+ I would also suggest the following set up:
add_action('pre_get_posts', 'my_customsearch');
function my_customsearch($query) {
if(! $query->is_main_query() || ! $query->is_search )
return;
$tax_query = array();
$operacion = (int) get_query_var('product_category');
// first dropdown
if (! empty($operacion) && $operacion > 0) {
$tax_query[] = array(
'taxonomy' => 'product_category',
'field' => 'id',
'terms' => $operacion
);
}
if ( sizeof($tax_query) > 0 ) {
$tax_query['relation'] = 'AND';
$query->set( 'tax_query', $tax_query );
}
}
Keep in mind this will replace any tax query that is part of the main search.