How to get wordpress gravityforms calculated field value with api [RESOLVED]

I am using api v2 for gravityforms to submit to a form from a telegram bot.

This form have some calculation fields(value is calculated based on other fields).

I need to get the values of the calculated fields and show them to the bots user before actually submitting the form.

When there is only one calculation field, I can handle it, I get the form, and extract the formula from the field and parse it and get the value.

  public function calculateFieldValue(&$form, $fields, $fieldId) {
    $formula = $fields[$fieldId]['calculationFormula'];
    preg_match_all('/\{[^\}]*\}/', $formula, $output_array);
    foreach ($output_array[0] as $row) {
      preg_match('/[0-9]+/', $row, $id);
      $id         = $id[0];
      $fieldValue = $form['input_' . $id];
      $formula    = str_replace($row, $fieldValue, $formula);
    }

    return $form['input_' . $fieldId] = eval('return ' . $formula . ';');
  }

But some of the fields are using conditional logic to have different formulas based on the input …

So is there any api or hack to tell gravity form to calculate the fields values before submitting it? or do I have to recreate the entire conditional logic of the gravityform and extract the correct field from the list?

would it be possible to do this with a plugin?

also posted here https://stackoverflow.com/questions/56215217/how-to-wordpress-gravityforms-calculated-field-value-with-api

Ended up writing my own helper class https://github.com/Exlord/dominobot-api-skeleton-php

1 Like

Thank you for sharing that.