public static function is_field_hidden($field, $values)
 {
     global $frm_field;
     $field->field_options = maybe_unserialize($field->field_options);
     if ($field->type == 'user_id' or $field->type == 'hidden') {
         return false;
     }
     if (!isset($field->field_options['hide_field']) or empty($field->field_options['hide_field'])) {
         return false;
     }
     //TODO: check if field is included in conditional heading
     $field->field_options['hide_field'] = (array) $field->field_options['hide_field'];
     if (!isset($field->field_options['hide_field_cond'])) {
         $field->field_options['hide_field_cond'] = array('==');
     }
     $field->field_options['hide_field_cond'] = (array) $field->field_options['hide_field_cond'];
     $field->field_options['hide_opt'] = (array) $field->field_options['hide_opt'];
     if (!isset($field->field_options['show_hide'])) {
         $field->field_options['show_hide'] = 'show';
     }
     if (!isset($field->field_options['any_all'])) {
         $field->field_options['any_all'] = 'any';
     }
     $hidden = false;
     $hide = array();
     foreach ($field->field_options['hide_field'] as $hide_key => $hide_field) {
         if ($hidden and $field->field_options['any_all'] == 'any' and $field->field_options['show_hide'] == 'hide') {
             continue;
         }
         $observed_value = isset($values['item_meta'][$hide_field]) ? $values['item_meta'][$hide_field] : '';
         if ($field->type == 'data' and empty($field->field_options['hide_opt'][$hide_key]) and (is_numeric($observed_value) or is_array($observed_value))) {
             $observed_field = $frm_field->getOne($hide_field);
             if ($observed_field->type == 'data') {
                 $field->field_options['hide_opt'][$hide_key] = $observed_value;
             }
             unset($observed_field);
         }
         $hidden = FrmProFieldsHelper::value_meets_condition($observed_value, $field->field_options['hide_field_cond'][$hide_key], $field->field_options['hide_opt'][$hide_key]);
         if ($field->field_options['show_hide'] == 'show') {
             $hidden = $hidden ? false : true;
         }
         $hide[$hidden] = $hidden;
     }
     if ($field->field_options['any_all'] == 'all' and !empty($hide) and isset($hide[0]) and isset($hide[1])) {
         $hidden = $field->field_options['show_hide'] == 'show' ? true : false;
     } else {
         if ($field->field_options['any_all'] == 'any' and $field->field_options['show_hide'] == 'show' and isset($hide[0])) {
             $hidden = false;
         }
     }
     return $hidden;
 }
 private static function conditions_met($notification, $entry)
 {
     $stop = false;
     $met = array();
     if (!isset($notification['conditions']) or empty($notification['conditions'])) {
         return $stop;
     }
     foreach ($notification['conditions'] as $k => $condition) {
         if (!is_numeric($k)) {
             continue;
         }
         if ($stop and $notification['conditions']['any_all'] == 'any' and $notification['conditions']['send_stop'] == 'stop') {
             continue;
         }
         if (is_array($condition['hide_opt'])) {
             $condition['hide_opt'] = reset($condition['hide_opt']);
         }
         $observed_value = isset($entry->metas[$condition['hide_field']]) ? $entry->metas[$condition['hide_field']] : '';
         if ($condition['hide_opt'] == 'current_user') {
             $condition['hide_opt'] = get_current_user_id();
         }
         $stop = FrmProFieldsHelper::value_meets_condition($observed_value, $condition['hide_field_cond'], $condition['hide_opt']);
         if ($notification['conditions']['send_stop'] == 'send') {
             $stop = $stop ? false : true;
         }
         $met[$stop] = $stop;
     }
     if ($notification['conditions']['any_all'] == 'all' && !empty($met) && isset($met[0]) && isset($met[1])) {
         $stop = $notification['conditions']['send_stop'] == 'send' ? true : false;
     } else {
         if ($notification['conditions']['any_all'] == 'any' && $notification['conditions']['send_stop'] == 'send' && isset($met[0])) {
             $stop = false;
         }
     }
     return $stop;
 }