# bit-form/1.1.8/includes/Core/Util/FieldValueHandler.php

Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator &amp; Custom Form Builder, version 1.1.8. 53 lines.

- Page: https://pluginprobe.com/plugins/bit-form/1.1.8/code/includes/Core/Util/FieldValueHandler.php
- Raw: https://pluginprobe.com/plugins/bit-form/1.1.8/raw/includes/Core/Util/FieldValueHandler.php
- Modified: 2020-11-04T15:30:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/bit-form/1.1.8/code/includes/Core/Util/FieldValueHandler.php#L10-L20`.

```php
<?php
namespace BitCode\BitForm\Core\Util;

final class FieldValueHandler
{
    public static function replaceFieldWithValue($stringToReplaceField, $fieldValues)
    {
        if (empty($stringToReplaceField)) {
            return $stringToReplaceField;
        }
        if (!is_string($stringToReplaceField)) {
            $stringToReplaceField = wp_json_encode($stringToReplaceField);
        }
        $fieldPattern = '/\${\w[^ ${}]*}/';
        preg_match_all($fieldPattern, $stringToReplaceField, $matchedField);
        if (empty($matchedField)) {
            return $stringToReplaceField;
        }
        $uniqueFieldsInStr = array_unique($matchedField[0]);
        foreach ($uniqueFieldsInStr as $key => $value) {
            $fieldName = substr($value, 2, strlen($value)-3);
            if (isset($fieldValues[$fieldName])) {
                $targetFieldValue = isset($fieldValues[$fieldName]['value']) ? $fieldValues[$fieldName]['value'] : $fieldValues[$fieldName];
                if (gettype($targetFieldValue) === 'array' || gettype($targetFieldValue) === 'object') {
                    $fieldValue = wp_json_encode($targetFieldValue);
                } else {
                    $fieldValue = strval($targetFieldValue);
                }
                $stringToReplaceField =  str_replace($value, $fieldValue, $stringToReplaceField);
            } elseif (array_search($fieldName, $fieldValues) !== false) {
                $stringToReplaceField =  str_replace($value, '', $stringToReplaceField);
            }
        }
        return $stringToReplaceField;
    }

    public static function validateMailArry($emailAddresses, $fieldValues)
    {
        if (!is_array($emailAddresses)) {
            return [FieldValueHandler::replaceFieldWithValue($emailAddresses, $fieldValues)];
        }
        foreach ($emailAddresses as $key=>$email) {
            if (!is_email($email)) {
                $email = FieldValueHandler::replaceFieldWithValue($email, $fieldValues);
                if (is_email($email)) {
                    $emailAddresses[$key] = $email;
                }
            }
        }
        return $emailAddresses;
    }
}

```
