public static function set_post_fields($field, $value, $errors = null)
 {
     $field->field_options = maybe_unserialize($field->field_options);
     if (!isset($field->field_options['post_field']) || $field->field_options['post_field'] == '') {
         if (isset($errors)) {
             return $errors;
         }
         return;
     }
     if ($field->type == 'file') {
         global $frm_vars;
         if (!isset($frm_vars['media_id'])) {
             $frm_vars['media_id'] = array();
         }
         $frm_vars['media_id'][$field->id] = $value;
     }
     global $frmpro_settings;
     if ($value && !empty($value) && isset($field->field_options['unique']) && $field->field_options['unique']) {
         global $frmdb;
         $entry_id = isset($_POST) && isset($_POST['id']) ? $_POST['id'] : false;
         $post_id = $entry_id ? $frmdb->get_var($frmdb->entries, array('id' => $entry_id), 'post_id') : false;
         if (isset($errors) && FrmProEntryMetaHelper::post_value_exists($field->field_options['post_field'], $value, $post_id, $field->field_options['custom_field'])) {
             $errors['field' . $field->id] = FrmProFieldsHelper::get_error_msg($field, 'unique_msg');
         }
         unset($entry_id);
         unset($post_id);
     }
     if ($field->field_options['post_field'] == 'post_custom') {
         if ($field->type == 'date' and !preg_match('/^\\d{4}-\\d{2}-\\d{2}/', trim($value))) {
             $value = FrmProAppHelper::convert_date($value, $frmpro_settings->date_format, 'Y-m-d');
         }
         $_POST['frm_wp_post_custom'][$field->id . '=' . $field->field_options['custom_field']] = $value;
         if (isset($errors)) {
             return $errors;
         }
         return;
     }
     if ($field->field_options['post_field'] == 'post_date') {
         if (!preg_match('/^\\d{4}-\\d{2}-\\d{2}/', trim($value))) {
             $value = FrmProAppHelper::convert_date($value, $frmpro_settings->date_format, 'Y-m-d H:i:s');
         }
     } else {
         if ($field->type != 'tag' && $field->field_options['post_field'] == 'post_category') {
             $value = (array) $value;
             // change text to numeric ids
             if (defined('WP_IMPORTING')) {
                 foreach ($value as $k => $val) {
                     if (empty($val)) {
                         continue;
                     }
                     $term = term_exists($val, $field->field_options['taxonomy']);
                     if ($term) {
                         $value[$k] = is_array($term) ? $term['term_id'] : $term;
                     }
                     unset($k, $val, $term);
                 }
             }
             if (isset($field->field_options['taxonomy']) && $field->field_options['taxonomy'] != 'category') {
                 $new_value = array();
                 foreach ($value as $val) {
                     if ($val == 0) {
                         continue;
                     }
                     $term = get_term($val, $field->field_options['taxonomy']);
                     if (!isset($term->errors)) {
                         $new_value[$val] = $term->name;
                     } else {
                         $new_value[$val] = $val;
                     }
                     unset($term);
                 }
                 if (!isset($_POST['frm_tax_input'])) {
                     $_POST['frm_tax_input'] = array();
                 }
                 if (isset($_POST['frm_tax_input'][$field->field_options['taxonomy']])) {
                     foreach ($new_value as $new_key => $new_name) {
                         $_POST['frm_tax_input'][$field->field_options['taxonomy']][$new_key] = $new_name;
                     }
                 } else {
                     $_POST['frm_tax_input'][$field->field_options['taxonomy']] = $new_value;
                 }
             } else {
                 $_POST['frm_wp_post'][$field->id . '=' . $field->field_options['post_field']] = $value;
             }
         } else {
             if ($field->type == 'tag' && $field->field_options['post_field'] == 'post_category') {
                 $value = trim($value);
                 $value = array_map('trim', explode(',', $value));
                 $tax_type = isset($field->field_options['taxonomy']) && !empty($field->field_options['taxonomy']) ? $field->field_options['taxonomy'] : 'frm_tag';
                 if (!isset($_POST['frm_tax_input'])) {
                     $_POST['frm_tax_input'] = array();
                 }
                 if (is_taxonomy_hierarchical($tax_type)) {
                     //create the term or check to see if it exists
                     $terms = array();
                     foreach ($value as $v) {
                         $term_id = term_exists($v, $tax_type);
                         if (!$term_id) {
                             $term_id = wp_insert_term($v, $tax_type);
                         }
                         if ($term_id && is_array($term_id)) {
                             $term_id = $term_id['term_id'];
                         }
                         if (is_numeric($term_id)) {
                             $terms[$term_id] = $v;
                         }
                         unset($term_id);
                         unset($v);
                     }
                     $value = $terms;
                     unset($terms);
                 }
                 if (!isset($_POST['frm_tax_input'][$tax_type])) {
                     $_POST['frm_tax_input'][$tax_type] = (array) $value;
                 } else {
                     $_POST['frm_tax_input'][$tax_type] += (array) $value;
                 }
             }
         }
     }
     if ($field->field_options['post_field'] != 'post_category') {
         $_POST['frm_wp_post'][$field->id . '=' . $field->field_options['post_field']] = $value;
     }
     if (isset($errors)) {
         return $errors;
     }
 }
Esempio n. 2
0
 function post_value_exists($post_field, $value, $post_id, $custom_field = '')
 {
     _deprecated_function(__FUNCTION__, '1.07.05', 'FrmProEntryMetaHelper::post_value_exists');
     return FrmProEntryMetaHelper::post_value_exists($post_field, $value, $post_id, $custom_field);
 }