| @@ -63,9 +63,9 @@ | ||
| 63 | 63 | if ($this->get('dataset') == 'is_prevent_store') { |
| 64 | 64 | $entry = new Forminator_Form_Entry_Model(); |
| 65 | 65 | $entry->set_fields($this->replace_values_to_labels($this->get('field_data_array'), $this->get('cached_form'), $entry)); |
| 66 | 66 | if (isset($entry->meta_data) && is_array($entry->meta_data)) { |
| 67 | - $entry->meta_data = $this->update_meta_data($entry->meta_data); | |
| 67 | + $entry->meta_data = $this->update_meta_data($entry->meta_data, $this->get('cached_form')); | |
| 68 | 68 | } |
| 69 | 69 | $this->set('cached_entry', $entry); |
| 70 | 70 | $this->set('cached_meta', $this->get('cached_entry')->meta_data); |
| 71 | 71 | } else { |
| @@ -70,9 +70,9 @@ | ||
| 70 | 70 | $this->set('cached_meta', $this->get('cached_entry')->meta_data); |
| 71 | 71 | } else { |
| 72 | 72 | $entry = Forminator_API::get_entry($this->get('item'), $this->get('dataset')); |
| 73 | 73 | if (isset($entry->meta_data) && is_array($entry->meta_data)) { |
| 74 | - $entry->meta_data = $this->update_meta_data($entry->meta_data); | |
| 74 | + $entry->meta_data = $this->update_meta_data($entry->meta_data, $this->get('cached_form')); | |
| 75 | 75 | } |
| 76 | 76 | $this->set('cached_entry', $entry); |
| 77 | 77 | $this->set('cached_meta', $this->get('cached_entry')->meta_data); |
| 78 | 78 | } |
| @@ -529,13 +529,23 @@ | ||
| 529 | 529 | } |
| 530 | 530 | return $content; |
| 531 | 531 | } |
| 532 | 532 | |
| 533 | - // Fix: Compatibility with Forminator 1.48.x | |
| 534 | - public function update_meta_data($meta_data) { | |
| 533 | + // fields compatibility | |
| 534 | + public function update_meta_data($meta_data, $form) { | |
| 535 | 535 | foreach ($meta_data as $meta_key => $meta) { |
| 536 | + // 1.48.x | |
| 536 | 537 | if ((false !== strpos($meta_key, 'checkbox') || false !== strpos($meta_key, 'select')) && !empty($meta['value']) && is_string($meta['value'])) { |
| 537 | 538 | $meta_data[$meta_key]['value'] = implode(', ', explode('<br/>', $meta['value'])); |
| 539 | + } | |
| 540 | + // 1.53.x | |
| 541 | + if (false !== strpos($meta_key, 'calculation') && isset($meta['value']) && !is_array($meta['value'])) { | |
| 542 | + $field = $form->get_field($meta_key, true); | |
| 543 | + $value = ('' === (string) $meta['value']) ? '0.0' : $meta['value']; | |
| 544 | + $meta_data[$meta_key]['value'] = [ | |
| 545 | + 'result' => $value, | |
| 546 | + 'formatting_result' => is_array($field) && !empty($field) ? Forminator_Field::forminator_number_formatting($field, $value) : $value, | |
| 547 | + ]; | |
| 538 | 548 | } |
| 539 | 549 | } |
| 540 | 550 | return $meta_data; |
| 541 | 551 | } |