This is my final working piece of code:
function wpr_manager_filter($query) {
global $pagenow;
global $typenow;
$current_page = isset( $_GET['post_type'] ) ? $_GET['post_type'] : '';
if ( is_admin()
&& 'properties' == $typenow
&& 'edit.php' == $pagenow
)
{
$queryParamsCounter = 0;
if (isset( $_GET['city-filter'] ) && $_GET['city-filter'] != '-1')
{
$cityId = (int)$_GET['city-filter'];
$queryParamsCounter++;
}
if (isset( $_GET['visibility-filter'] ) && $_GET['visibility-filter'] != '-1')
{
$queryParamsCounter++;
$visibility = (int)$_GET['visibility-filter'];
}
$meta_query = array();
if ($queryParamsCounter > 1) {
$meta_query['relation'] = 'AND';
}
if (isset($cityId)) {
$meta_query[] = array(
'key' => 'city',
'value' => $cityId,
'compare' => '=',
'type' => 'NUMERIC',
);
}
if (isset($visibility)) {
$meta_query[] = array(
'key' => 'visibility',
'value' => $visibility,
'compare' => '=',
'type' => 'NUMERIC',
);
}
$query->set( 'meta_query', $meta_query);
}
}
May someone else find it useful in the future.