function tom_validate_options($input) { if (isset($_POST['reset'])) { add_settings_error('tonjoo-tom', 'restore_defaults', 'Default options restored.', 'updated fade'); return TOMOption::tom_get_default_values(); } foreach ($input as $key => $value) { // $value['options'] = array(); $haveoptions = array(); if (!empty($value['options']) && is_array($value['options'])) { /* combine input value key and input value to one array as key => value */ $combine[$key]['options'] = array_combine($value['options']['opt-key'], $value['options']['opt-val']); /* get other field like name, type */ $org[$key] = $value; /* Merge options field */ $haveoptions[$key] = array_merge($org[$key], $combine[$key]); } $input = array_merge($input, $haveoptions); } /* Merge with main input */ $input = array_merge($input, $haveoptions); return json_encode($input); }
</div> </div> <p><a id="new-repeatable" href="#">Add New Field</a></p> </div> </div> <label for="tom-default-new-data"> Default : </label> <div class="input"> <div id="new-data-default"> <!-- will dynamic generate by jquery --> <input class="input-default" name="default" type="text" id="tom-default-new-data" value=""> </div> <?php $defaultOptions = TOMOption::tom_default_options(); ?> <div id="typography-options" class="input-default typography-options" style="display:none;"> <label>Color :</label> <div class="color-container"> <input class="array-default color-picker" type="text" data-name="color" /> </div> <label>Size :</label> <select class="array-default tom-typography tom-typography-size" data-name="size"> <?php foreach ($defaultOptions['font-size'] as $key => $value) { echo '<option value="' . $value . 'px">' . $value . ' px</option>'; } ?> </select> <br>