Example #1
0
 /**
  * Replace a text value where_val with the matching entry IDs for Dynamic Field filters
  *
  * @param array $args
  * @param object $where_field
  */
 private static function prepare_dfe_text(&$args, $where_field)
 {
     // Only proceed if we have a non-category dynamic field with a string where_val
     if ($where_field->type != 'data' || !$args['where_val'] || !is_string($args['where_val']) || isset($where_field->field_options['post_field']) && $where_field->field_options['post_field'] == 'post_category') {
         return;
     }
     $linked_id = FrmProField::get_dynamic_field_entry_id($where_field->field_options['form_select'], $args['where_val'], $args['temp_where_is']);
     // If text doesn't return any entry IDs, get entry IDs from entry key
     // Note: Keep for reverse compatibility
     if (!$linked_id) {
         $linked_field = FrmField::getOne($where_field->field_options['form_select']);
         if (!$linked_field) {
             return;
         }
         $filter_args = array();
         self::add_group_by($filter_args, $args, 'item_key');
         $linked_id = FrmDb::get_col('frm_items', array('form_id' => $linked_field->form_id, 'item_key ' . FrmDb::append_where_is($args['temp_where_is']) => $args['where_val']));
     }
     if (!$linked_id) {
         return;
     }
     //Change $args['where_val'] to linked entry IDs
     $args['where_val'] = (array) $linked_id;
     // Don't use old where_val_esc value for filtering
     unset($args['where_val_esc']);
     $args['where_val'] = apply_filters('frm_filter_dfe_where_val', $args['where_val'], $args);
 }
 /**
  * Get the entry ID or category ID to autopopulate a Dynamic field
  *
  * @since 2.0.15
  * @param object $field
  * @param string $value
  * @return int $value
  */
 private static function get_id_for_dynamic_field($field, $value)
 {
     if (isset($field->field_options['post_field']) && $field->field_options['post_field'] == 'post_category') {
         // Category fields
         $id = FrmProField::get_cat_id_from_text($value);
     } else {
         // Non post fields
         $id = FrmProField::get_dynamic_field_entry_id($field->field_options['form_select'], $value, '=');
     }
     return $id;
 }