Es posible filtrar una Vista si UNO o DOS campos de las entradas contienen un valor, esto es:
Si Campo A tiene un valor X, o el Campo B tiene un valor Y.
En la Vista, en Ajustes Avanzados, hay que poner un filtro con el nombre del primer campo:
CampoA es Igual a custom
(hay que ponerla así, sólo la palabra custom)
Alterado por mí, del siguiente enlace: https://formidableforms.com/knowledgebase/frm_where_filter/#kb-add-two-filters-combined-with-or
Código:
add_filter('frm_where_filter', 'filtro_campoa_or_campob', 10, 2);
function filtro_campoa_or_campob($where, $args){
$view_id = 257; // ID de la Vista a filtrar
$field_1 = 269;// ID del campo A ESTE ES EL PRIMER CAMPO A CHECAR
$field_2 = 268;// ID del campor B ESTE ES EL SEGUNDO CAMPO A CHECAR
$user = wp_get_current_user(); // Asigna a la variable $user el Usuario Actual
$search_term_1 = $user->usr_assign_num_name; // Primer término a comparar: sustituir por algún valor o valor de un campo (o meta-key del usuario, en este caso)
$search_term_2 = $user->usr_assign_clave; // Segundo término a comparar: 1011000001 (clave usuario)
if ( $args['display']->ID == $view_id && $args['where_opt'] == $field_1 ) {
$search_val_1 = $search_term_1; //tal vez estas dos líneas (esta y la siguiente) son superfluas, se podría llegar directamente a $search_val_1
$search_val_2 = $search_term_2; // y $search_val_2 sin necesidad de pasar por $search_term_1 y $search_term_2
if ( $search_val_1 && $search_val_2 ) {
$where = "( (meta_value = '". $search_val_1 ."' and fi.id = " . $field_1 . ")";
$where .= " OR (meta_value = '" . $search_val_2 . "' and fi.id = " . $field_2 . ") )";
} else if ( $search_val_1 ) {
$where = "(meta_value = '". $search_val_1 ."' and fi.id = " . $field_1 . ")";
} else if ( $search_val_2 ) {
$where = "(meta_value = '". $search_val_2 ."' and fi.id = " . $field_2 . ")";
} else {
$where = "fi.form_id = " . $args['display']->frm_form_id;
}
}
return $where;
}

