function thb_duplicable_fields_save(THB_Field $field, $post_id = 0)
 {
     $fieldKey = $field->getName();
     $uniqids = array();
     thb_duplicable_remove($fieldKey, $post_id);
     $count = 0;
     if (isset($_POST[$fieldKey])) {
         if ($field->isComplex()) {
             $subKeys = $field->getSubkeys();
             $count = count($_POST[$fieldKey][$subKeys[0]]);
         } else {
             $count = count($_POST[$fieldKey]);
         }
     }
     if ($count > 0) {
         for ($i = 0; $i < $count; $i++) {
             if ($field->isComplex()) {
                 $value = array();
                 foreach ($field->getSubkeys() as $subKey) {
                     if (isset($_POST[$fieldKey][$subKey][$i])) {
                         $value[$subKey] = thb_text_toDB($_POST[$fieldKey][$subKey][$i]);
                     }
                 }
                 // $value = serialize($value);
             } else {
                 if (isset($_POST[$fieldKey][$i])) {
                     $value = thb_text_toDB($_POST[$fieldKey][$i]);
                 }
             }
             $meta['subtemplate'] = $_POST['subtemplate'][$fieldKey][$i];
             if (!empty($_POST['uniqid'][$fieldKey][$i])) {
                 $meta['uniqid'] = $_POST['uniqid'][$fieldKey][$i];
             } else {
                 $meta['uniqid'] = md5(time() . $i);
             }
             $uniqids[] = $meta['uniqid'];
             if (is_array($value)) {
                 foreach ($value as $k => $v) {
                     $value[$k] = thb_text_normalize($v);
                 }
             } else {
                 $value = thb_text_normalize($value);
             }
             thb_duplicable_add($fieldKey, array('ord' => $i, 'value' => $value, 'meta' => $meta, 'post_id' => $post_id));
         }
     }
     return $uniqids;
 }
 function thb_upload_custom_fonts()
 {
     $key = 'custom_font';
     $upload_dir = wp_upload_dir();
     $basedir = $upload_dir['basedir'];
     if (!empty($_POST)) {
         thb_duplicable_remove($key, 0);
     }
     if (!empty($_FILES) && isset($_FILES[$key])) {
         $count = count($_FILES[$key]['name']);
         for ($i = 0; $i < $count; $i++) {
             $uploaded_file = array('name' => $_FILES[$key]['name'][$i], 'type' => $_FILES[$key]['type'][$i], 'tmp_name' => $_FILES[$key]['tmp_name'][$i], 'error' => $_FILES[$key]['error'][$i], 'size' => $_FILES[$key]['size'][$i]);
             if ($uploaded_file['name'] != '') {
                 $file = thb_upload($uploaded_file);
                 if (file_exists($file['file']['file'])) {
                     $archive_name = str_replace('-fontfacekit.zip', '', basename($uploaded_file['name']));
                     // if( !file_exists($basedir . '/fonts/' . $archive_name . '/stylesheet.css') ) {
                     thb_unzip($file['file']['file'], $basedir . '/fonts/' . $archive_name . '/');
                     unlink($file['file']['file']);
                     $stylesheet = @file_get_contents($basedir . '/fonts/' . $archive_name . '/stylesheet.css');
                     preg_match_all('|font-family:(.*)$|mi', $stylesheet, $families);
                     preg_match_all('|font-weight:(.*)$|mi', $stylesheet, $weights);
                     preg_match_all('|font-style:(.*)$|mi', $stylesheet, $styles);
                     if (isset($families[1]) && !empty($families[1])) {
                         $k = 0;
                         foreach ($families[1] as $family) {
                             $family = trim($family);
                             $family = str_replace("'", "", $family);
                             $family = str_replace(";", "", $family);
                             // $_POST[$key]['css'][] = $family;
                             // $_POST[$key]['folder'][] =$archive_name;
                             $_POST[$key]['family'][] = $family;
                             $_POST[$key]['css'][] = $family;
                             $_POST[$key]['folder'][] = $archive_name;
                             $var = array();
                             if (isset($weights[1]) && !empty($weights[1]) && isset($styles[1]) && !empty($styles[1])) {
                                 // for( $j=0; $j<count($weights[1]); $j++ ) {
                                 $w = $weights[1][$k];
                                 $s = $styles[1][$k];
                                 $w = trim($w);
                                 $w = str_replace("'", "", $w);
                                 $w = str_replace(";", "", $w);
                                 $s = trim($s);
                                 $s = str_replace("'", "", $s);
                                 $s = str_replace(";", "", $s);
                                 $v = $w . $s;
                                 if ($v == 'normalnormal') {
                                     $v = 'normal';
                                 }
                                 $var[] = $v;
                                 // }
                             }
                             $_POST[$key]['variants'][] = $var;
                             $k++;
                         }
                     }
                     // }
                 }
             }
         }
     }
     if (!empty($_POST) && isset($_POST[$key])) {
         $post_count = count($_POST[$key]['css']);
         $font = $_POST[$key];
         for ($i = 0; $i < $post_count; $i++) {
             $meta = array('subtemplate' => '');
             if (!empty($_POST['uniqid'][$i])) {
                 $meta['uniqid'] = $_POST['uniqid'][$i];
             } else {
                 $meta['uniqid'] = md5(time() . $i);
             }
             $family = $_POST[$key]['family'][$i];
             //$family_name . ': ' . implode(', ', $font['variants'][$i]);
             thb_duplicable_add($key, array('ord' => $i, 'value' => array('family' => $family, 'css' => $font['css'][$i], 'variants' => implode(',', $font['variants'][$i]), 'folder' => $font['folder'][$i]), 'meta' => $meta));
         }
     }
     if (!empty($_POST)) {
         $result = thb_system_raise_success(__('All saved!', 'thb_text_domain'));
         thb_system_set_flashdata($result);
     }
 }