/** * Do something to loading of forms * * @since 0.2.0 * * @uses "caldera_forms_ajax_return" * * @param string $out * @param array $form The form configuration * * @return mixed */ function cf_form_connector_control_form_load($out, $form) { if ($out['type'] !== 'complete') { return $out; } if (!empty($form['stage_form'])) { $stage_form = Caldera_Forms_Forms::get_form($form['stage_form']); $process_record = cf_form_connector_get_current_position(); $process_record[$form['stage_form']]['fields'] = array_merge((array) $process_record[$form['stage_form']]['fields'], $form['fields']); $process_record[$form['stage_form']]['field_values'] = array_merge((array) $process_record[$form['stage_form']]['field_values'], Caldera_Forms::get_submission_data($form)); if (!empty($form['form_connection'])) { $process_record[$form['stage_form']][$form['ID']] = array('id' => $form['form_connection']['entry_id']); if (empty($form['form_connection']['back_button'])) { $process_record[$form['stage_form']][$form['ID']]['no_back'] = true; } if (!empty($process_record[$form['stage_form']]['previous_form'])) { $process_record[$form['stage_form']][$form['ID']]['back'] = $process_record[$form['stage_form']]['previous_form']; } $process_record[$form['stage_form']]['previous_form'] = $form['ID']; $process_record[$form['stage_form']]['current_form'] = $form['form_connection']['next_form_id']; cf_form_connector_set_current_position($process_record); // handler proper redirects if (!empty($out['url'])) { wp_send_json($out); } wp_send_json(array('target' => $form['stage_form'] . '_' . (int) $_POST['_cf_frm_ct'], 'form' => Caldera_Forms::render_form($stage_form))); } else { // is current = stage ? yup last form last process. if (empty($form['form_connection']) || !empty($process_record[$form['stage_form']]['current_form']) && $process_record[$form['stage_form']]['current_form'] === $form['stage_form']) { $connected_form = Caldera_Forms_Forms::get_form($form['stage_form']); if (is_array($connected_form) && (!empty($connected_form['mailer']['enable_mailer']) || $connected_form['mailer']['on_insert'])) { $entry_id = $process_record[$connected_form['ID']]['entry_id']; $data = $process_record[$form['stage_form']]['field_values']; $process_record[$form['stage_form']] = array(); cf_form_connector_set_current_position($process_record); if (class_exists('Caldera_Forms_Magic_Summary')) { $message_setting = $connected_form['mailer']['email_message']; if (false !== strpos($message_setting, '{summary}')) { $magic_parser = new Caldera_Forms_Magic_Summary($connected_form, $data); if (!isset($connected_form['mailer']['email_type']) || $connected_form['mailer']['email_type'] == 'html') { $magic_parser->set_html_mode(true); } else { $magic_parser->set_html_mode(false); } $magic_parser->set_fields(cf_conn_form_get_all_fields($connected_form)); $message_setting = str_replace('{summary}', $magic_parser->get_tag(), $message_setting); $connected_form['mailer']['email_message'] = $message_setting; } } Caldera_Forms_Save_Final::do_mailer($connected_form, $entry_id, $data); } return $out; } $process_record[$form['stage_form']][$form['ID']] = array('id' => (int) Caldera_Forms::do_magic_tags('{entry_id}')); if (!empty($process_record[$form['stage_form']]['previous_form'])) { $process_record[$form['stage_form']][$form['ID']]['back'] = $process_record[$form['stage_form']]['previous_form']; } $process_record[$form['stage_form']]['previous_form'] = $form['ID']; $process_record[$form['stage_form']]['current_form'] = $form['stage_form']; $process_record[$form['stage_form']]['fields'] = array_merge((array) $process_record[$form['stage_form']]['fields'], $form['fields']); $process_record[$form['stage_form']]['field_values'] = array_merge((array) $process_record[$form['stage_form']]['field_values'], Caldera_Forms::get_submission_data($form)); cf_form_connector_set_current_position($process_record); Caldera_Forms::process_submission(); exit; } } return $out; }
/** * Process mailer * * @since 1.2.3 * * @param array $form Form config * @param int|null $entryid Optional. ID of entry to send. If not provided, will be deteremined based on global $transdata * @param array|null $data Optional. Data to use for sending. If not provided, will be retrieved by form ID. */ public static function do_mailer($form, $entryid = null, $data = null) { global $transdata; if (!$data) { $data = Caldera_Forms::get_submission_data($form); } // add entry ID to transient data if (!isset($entryid)) { $entryid = null; } $transdata['entry_id'] = $entryid; // do mailer! $sendername = __('Caldera Forms Notification', 'caldera-forms'); if (!empty($form['mailer']['sender_name'])) { $sendername = $form['mailer']['sender_name']; if (false !== strpos($sendername, '%')) { $isname = Caldera_Forms::get_slug_data(trim($sendername, '%'), $form); if (!empty($isname)) { $sendername = $isname; } } } if (empty($form['mailer']['sender_email'])) { $sendermail = get_option('admin_email'); } else { $sendermail = $form['mailer']['sender_email']; if (false !== strpos($sendermail, '%')) { $ismail = Caldera_Forms::get_slug_data(trim($sendermail, '%'), $form); if (is_email($ismail)) { $sendermail = $ismail; } } } // use summary if (empty($form['mailer']['email_message'])) { $form['mailer']['email_message'] = "{summary}"; } $mail = array('recipients' => array(), 'subject' => Caldera_Forms::do_magic_tags($form['mailer']['email_subject']), 'message' => stripslashes($form['mailer']['email_message']) . "\r\n", 'headers' => array(Caldera_Forms::do_magic_tags('From: ' . $sendername . ' <' . $sendermail . '>')), 'attachments' => array()); // if added a bcc if (isset($form['mailer']['bcc_to'])) { $mail['headers'][] = Caldera_Forms::do_magic_tags('Bcc: ' . $form['mailer']['bcc_to']); } // if added a replyto $reply_to = trim($form['mailer']['reply_to']); if (!empty($reply_to)) { $mail['headers'][] = Caldera_Forms::do_magic_tags('Reply-To: <' . $reply_to . '>'); } // Filter Mailer first as not to have user input be filtered $mail['message'] = Caldera_Forms::do_magic_tags($mail['message']); if ($form['mailer']['email_type'] == 'html') { $mail['headers'][] = "Content-type: text/html"; $mail['message'] = wpautop($mail['message']); } // get tags preg_match_all("/%(.+?)%/", $mail['message'], $hastags); if (!empty($hastags[1])) { foreach ($hastags[1] as $tag_key => $tag) { $tagval = Caldera_Forms::get_slug_data($tag, $form); if (is_array($tagval)) { $tagval = implode(', ', $tagval); } $mail['message'] = str_replace($hastags[0][$tag_key], $tagval, $mail['message']); } } //$mail['message'] // ifs preg_match_all("/\\[if (.+?)?\\](?:(.+?)?\\[\\/if\\])?/", $mail['message'], $hasifs); if (!empty($hasifs[1])) { // process ifs foreach ($hasifs[0] as $if_key => $if_tag) { $content = explode('[else]', $hasifs[2][$if_key]); if (empty($content[1])) { $content[1] = ''; } $vars = shortcode_parse_atts($hasifs[1][$if_key]); foreach ($vars as $varkey => $varval) { if (is_string($varkey)) { $var = Caldera_Forms::get_slug_data($varkey, $form); if (in_array($varval, (array) $var)) { // yes show code $mail['message'] = str_replace($hasifs[0][$if_key], $content[0], $mail['message']); } else { // nope- no code $mail['message'] = str_replace($hasifs[0][$if_key], $content[1], $mail['message']); } } else { $var = Caldera_Forms::get_slug_data($varval, $form); if (!empty($var)) { // show code $mail['message'] = str_replace($hasifs[0][$if_key], $content[0], $mail['message']); } else { // no code $mail['message'] = str_replace($hasifs[0][$if_key], $content[1], $mail['message']); } } } } } if (!empty($form['mailer']['recipients'])) { $mail['recipients'] = explode(',', Caldera_Forms::do_magic_tags($form['mailer']['recipients'])); } else { $mail['recipients'][] = get_option('admin_email'); } $submission = array(); foreach ($data as $field_id => $row) { if ($row === null || !isset($form['fields'][$field_id])) { continue; } $key = $form['fields'][$field_id]['slug']; if (is_array($row)) { if (!empty($row)) { $keys = array_keys($row); if (is_int($keys[0])) { $row = implode(', ', $row); } else { $tmp = array(); foreach ($row as $linekey => $item) { if (is_array($item)) { $item = '( ' . implode(', ', $item) . ' )'; } $tmp[] = $linekey . ': ' . $item; } $row = implode(', ', $tmp); } } else { $row = null; } } $mail['message'] = str_replace('%' . $key . '%', $row, $mail['message']); $mail['subject'] = str_replace('%' . $key . '%', $row, $mail['subject']); $submission[] = $row; $labels[] = $form['fields'][$field_id]['label']; } // final magic $mail['message'] = Caldera_Forms::do_magic_tags($mail['message']); $mail['subject'] = Caldera_Forms::do_magic_tags($mail['subject']); // CSV if (!empty($form['mailer']['csv_data'])) { ob_start(); $df = fopen("php://output", 'w'); fputcsv($df, $labels); fputcsv($df, $submission); fclose($df); $csv = ob_get_clean(); $csvfile = wp_upload_bits(uniqid() . '.csv', null, $csv); if (isset($csvfile['file']) && false == $csvfile['error'] && file_exists($csvfile['file'])) { $mail['attachments'][] = $csvfile['file']; } } if (empty($mail)) { return; } /** * Filter email data before sending * * @since 1.2.3 in this location. * @since unknown in original location (Caldera_Forms::save_final_form) * * @param array $mail Email data * @param array $data Form entry data * @param array $form The form config */ $mail = apply_filters('caldera_forms_mailer', $mail, $data, $form); $headers = implode("\r\n", $mail['headers']); /** * Runs before mail is sent, but after data is prepared * * @since 1.2.3 in this location. * @since unknown in original location (Caldera_Forms::save_final_form) * * @param array $mail Email data * @param array $data Form entry data * @param array $form The form config */ do_action('caldera_forms_do_mailer', $mail, $data, $form); // force message to string. if (is_array($mail['message'])) { $mail['message'] = implode("\n", $mail['message']); } if (!empty($mail)) { // is send debug enabled? if (!empty($form['debug_mailer'])) { add_action('phpmailer_init', array('Caldera_Forms', 'debug_mail_send'), 1000); } if (wp_mail((array) $mail['recipients'], $mail['subject'], stripslashes($mail['message']), $headers, $mail['attachments'])) { // kill attachment. if (!empty($csvfile['file'])) { if (file_exists($csvfile['file'])) { unlink($csvfile['file']); } } /** * Fires main mailer completes * * @since 1.3.1 * * @param array $mail Email data * @param array $data Form entry data * @param array $form The form config */ do_action('caldera_forms_mailer_complete', $mail, $data, $form); } else { /** * Fires main mailer fails * * @since 1.2.3 * * @param array $mail Email data * @param array $data Form entry data * @param array $form The form config */ do_action('caldera_forms_mailer_failed', $mail, $data, $form); } } else { if (!empty($csvfile['file'])) { if (file_exists($csvfile['file'])) { unlink($csvfile['file']); } } } }
function cf_ajax_redirect($type, $url, $form) { if (empty($form['form_ajax'])) { return; } if (empty($_POST['cfajax'])) { return; } $data = Caldera_Forms::get_submission_data($form); // setup notcies $urlparts = parse_url($url); $query = array(); if (!empty($urlparts['query'])) { parse_str($urlparts['query'], $query); } $notices = array(); $note_general_classes = array('alert'); $note_general_classes = apply_filters('caldera_forms_render_note_general_classes', $note_general_classes, $form); // base id $form_id = 'caldera_form_1'; if ($type == 'complete') { if (isset($query['cf_su'])) { $notices['success']['note'] = $form['success']; $form_id = 'caldera_form_' . $query['cf_su']; } else { $out['url'] = $url; $notices['success']['note'] = __('Redirecting', 'caldera-forms'); } } elseif ($type == 'preprocess') { if (isset($query['cf_er'])) { $data = get_transient($query['cf_er']); if (!empty($data['note'])) { $notices[$data['type']]['note'] = $data['note']; } } else { $out['url'] = $url; $notices['success']['note'] = __('Redirecting', 'caldera-forms'); } } elseif ($type == 'error') { $data = get_transient($query['cf_er']); if (!empty($data['note'])) { $notices['error']['note'] = $data['note']; } } // check for field erors if (!empty($data['fields'])) { foreach ($form['fields'] as $fieldid => $field) { if (isset($data['fields'][$fieldid])) { if ($urlparts['path'] == 'api') { $out['fields'][$field['slug']] = $data['fields'][$fieldid]; } else { $out['fields'][$fieldid] = $data['fields'][$fieldid]; } } } } $notices = apply_filters('caldera_forms_render_notices', $notices, $form); $note_classes = array('success' => array_merge($note_general_classes, array('alert-success')), 'error' => array_merge($note_general_classes, array('alert-error')), 'info' => array_merge($note_general_classes, array('alert-info')), 'warning' => array_merge($note_general_classes, array('alert-warning')), 'danger' => array_merge($note_general_classes, array('alert-danger'))); $note_classes = apply_filters('caldera_forms_render_note_classes', $note_classes, $form); $html = ''; if (!empty($notices)) { // do notices foreach ($notices as $note_type => $notice) { if (!empty($notice['note'])) { $result = Caldera_Forms::do_magic_tags($notice['note']); $html .= '<div class=" ' . implode(' ', $note_classes[$note_type]) . '">' . $result . '</div>'; } } } if (!empty($result)) { $out['result'] = $result; } if (!empty($query)) { if (!empty($query['cf_su'])) { unset($query['cf_su']); } if (!empty($query['cf_ee'])) { $out['entry'] = $query['cf_ee']; } $out['data'] = $query; } $out['html'] = $html; $out['type'] = isset($data['type']) ? $data['type'] : $type; $out['form_id'] = $form['ID']; $out['form_name'] = $form['name']; $out['status'] = $type; $out = apply_filters('caldera_forms_ajax_return', $out, $form); wp_send_json($out); exit; }
/** * Process entry and save as post/ post meta. * * @since 1.1.0 * * @param array $config Processor config. * @param array $form From config. * * @return array */ function cf_custom_fields_capture_entry($config, $form) { $user_id = get_current_user_id(); if (!empty($config['post_author'])) { $user_id = Caldera_Forms::do_magic_tags($config['post_author']); } $entry = array('post_title' => Caldera_Forms::get_field_data($config['post_title'], $form), 'post_status' => Caldera_Forms::do_magic_tags($config['post_status']), 'post_type' => $config['post_type'], 'post_content' => Caldera_Forms::get_field_data($config['post_content'], $form), 'post_parent' => Caldera_Forms::do_magic_tags($config['post_parent']), 'to_ping' => Caldera_Forms::do_magic_tags($config['to_ping']), 'post_password' => Caldera_Forms::do_magic_tags($config['post_password']), 'post_excerpt' => Caldera_Forms::do_magic_tags($config['post_excerpt']), 'comment_status' => $config['comment_status']); if (empty($entry['post_content'])) { $entry['post_content'] = ''; } // set the ID if (!empty($config['ID'])) { $is_post_id = Caldera_Forms::do_magic_tags($config['ID']); $post = get_post($is_post_id); if (!empty($post) && $post->post_type == $entry['post_type']) { $entry['ID'] = $is_post_id; } } // set author if (!empty($user_id)) { $entry['post_author'] = $user_id; } //is edit? if (!empty($_POST['_cf_frm_edt'])) { // need to work on this still. SIGH! } else { // Insert the post into the database $entry_id = wp_insert_post($entry); if (empty($entry_id)) { return; } } // do upload + attach if (!empty($config['featured_image'])) { $featured_image = Caldera_Forms::get_field_data($config['featured_image'], $form); foreach ((array) $featured_image as $filename) { $featured_image = cf_custom_fields_attach_file($filename, $entry_id); update_post_meta($entry_id, '_thumbnail_id', $featured_image); } } //handle taxonomies $terms_saved = false; $tax_fields = cf_custom_fields_get_taxonomy_fields($config); if (!empty($tax_fields)) { $terms_saved = cf_custom_fields_save_terms($tax_fields, $entry_id); if ($terms_saved) { $term_values = wp_list_pluck($tax_fields, 'terms'); } } //get post fields into an array of fields not to save as meta. $post_fields = array_keys($entry); // get all submission data $data = Caldera_Forms::get_submission_data($form); update_post_meta($entry_id, '_cf_form_id', $form['ID']); foreach ($data as $field => $value) { if ('_entry_token' != $field && '_entry_id' != $field) { if (in_array($field, $post_fields) || in_array($form['fields'][$field]['ID'], $post_fields)) { continue; } } if ($terms_saved) { if (is_array($value)) { $_value = implode(', ', $value); } else { $_value = $value; } if (in_array($_value, $term_values)) { continue; } } if (empty($form['fields'][$field])) { continue; } if (in_array($form['fields'][$field]['type'], array('button', 'html'))) { continue; } if ($form['fields'][$field]['type'] == 'file') { if ($field == $config['featured_image']) { continue; // dont attache twice. } foreach ((array) $value as $file) { cf_custom_fields_attach_file($file, $entry_id); } } $slug = $form['fields'][$field]['slug']; /** * Filter value before saving using to post type processor * * @since 2.0.3 * * @param mixed $value The value to be saved * @param string $slug Slug of field * @param int $entry ID of post */ $value = apply_filters('cf_custom_fields_pre_save_meta_key_to_post_type', $value, $slug, $entry_id); update_post_meta($entry_id, $slug, $value); } return array('Post ID' => $entry_id, 'ID' => $entry_id, 'permalink' => get_permalink($entry_id)); }
/** * Save meta data from form. * * @since 1.?.? * * @param array $config Processor config. * @param array $form Form config. */ function cf_custom_fields_save_meta_data($config, $form) { global $post; if (!is_admin()) { return; } $data = Caldera_Forms::get_submission_data($form); $field_toremove = array(); foreach ($data as $key => $value) { foreach ($form['fields'] as $field) { $field_toremove[$field['slug']] = $field['slug']; } } foreach ($data as $key => $value) { if (empty($form['fields'][$key])) { continue; } update_post_meta($post->ID, $form['fields'][$key]['slug'], $value); if (isset($field_toremove[$form['fields'][$key]['slug']])) { unset($field_toremove[$form['fields'][$key]['slug']]); } } if (!empty($field_toremove)) { foreach ($field_toremove as $key) { delete_post_meta($post->ID, $key); } } return $data; }
/** * Do something to loading of forms * * @since 0.2.0 * * @uses "caldera_forms_ajax_return" * * @param string $out * @param array $form The form configuration * * @return mixed */ function cf_form_connector_control_form_load($out, $form) { if ($out['type'] !== 'complete') { return $out; } if (!empty($form['stage_form'])) { $stage_form = Caldera_Forms::get_form($form['stage_form']); $process_record = cf_form_connector_get_current_position(); if (!empty($form['form_connection'])) { $process_record[$form['stage_form']][$form['ID']] = array('id' => $form['form_connection']['entry_id']); if (empty($form['form_connection']['back_button'])) { $process_record[$form['stage_form']][$form['ID']]['no_back'] = true; } if (!empty($process_record[$form['stage_form']]['previous_form'])) { $process_record[$form['stage_form']][$form['ID']]['back'] = $process_record[$form['stage_form']]['previous_form']; } $process_record[$form['stage_form']]['previous_form'] = $form['ID']; $process_record[$form['stage_form']]['current_form'] = $form['form_connection']['next_form_id']; $process_record[$form['stage_form']]['fields'] = array_merge((array) $process_record[$form['stage_form']]['fields'], $form['fields']); $process_record[$form['stage_form']]['field_values'] = array_merge((array) $process_record[$form['stage_form']]['field_values'], Caldera_Forms::get_submission_data($form)); cf_form_connector_set_current_position($process_record); // handler proper redirects if (!empty($out['url'])) { wp_send_json($out); } wp_send_json(array('target' => $form['stage_form'] . '_' . (int) $_POST['_cf_frm_ct'], 'form' => Caldera_Forms::render_form($stage_form))); } else { // is current = stage ? yup last form last process. if (!empty($process_record[$form['stage_form']]['current_form']) && $process_record[$form['stage_form']]['current_form'] === $form['stage_form']) { $process_record[$form['stage_form']] = array(); cf_form_connector_set_current_position($process_record); return $out; } $process_record[$form['stage_form']][$form['ID']] = array('id' => (int) Caldera_Forms::do_magic_tags('{entry_id}')); if (!empty($process_record[$form['stage_form']]['previous_form'])) { $process_record[$form['stage_form']][$form['ID']]['back'] = $process_record[$form['stage_form']]['previous_form']; } $process_record[$form['stage_form']]['previous_form'] = $form['ID']; $process_record[$form['stage_form']]['current_form'] = $form['stage_form']; $process_record[$form['stage_form']]['fields'] = array_merge((array) $process_record[$form['stage_form']]['fields'], $form['fields']); $process_record[$form['stage_form']]['field_values'] = array_merge((array) $process_record[$form['stage_form']]['field_values'], Caldera_Forms::get_submission_data($form)); cf_form_connector_set_current_position($process_record); Caldera_Forms::process_submission(); exit; } } return $out; }
/** * Save meta data from form. * * @since 1.?.? * * @param array $config Processor config. * @param array $form Form config. */ function cf_custom_fields_save_meta_data($config, $form) { global $post; if (!is_admin()) { return; } $data = Caldera_Forms::get_submission_data($form); $field_toremove = array(); foreach ($form['fields'] as $field) { // remove old data delete_post_meta($post->ID, $field['slug']); } foreach ($data as $key => $value) { if (empty($form['fields'][$key])) { continue; } $slug = $form['fields'][$key]['slug']; /** * Filter value before saving using to metabox processor * @since 2.0.3 * * @param mixed $value The value to be saved * @param string $slug Slug of field * @param int $post_id ID of post */ $value = apply_filters('cf_custom_fields_pre_save_meta_key_metabox', $value, $slug, $post->ID); if (is_array($value)) { delete_post_meta($post->ID, $slug); foreach ($value as $single_value) { add_post_meta($post->ID, $slug, $single_value); } } else { update_post_meta($post->ID, $slug, $value); } if (isset($field_toremove[$form['fields'][$key]['slug']])) { unset($field_toremove[$form['fields'][$key]['slug']]); } } return $data; }
/** * Process entry and save as post/ post meta. * * @since 1.1.0 * * @param array $config Processor config. * @param array $form From config. * * @return array */ function cf_custom_fields_capture_entry($config, $form) { $user_id = get_current_user_id(); if (!empty($config['post_author'])) { $user_id = Caldera_Forms::do_magic_tags($config['post_author']); } $entry = array('post_title' => Caldera_Forms::get_field_data($config['post_title'], $form), 'post_status' => Caldera_Forms::do_magic_tags($config['post_status']), 'post_type' => $config['post_type'], 'post_content' => Caldera_Forms::get_field_data($config['post_content'], $form), 'post_parent' => Caldera_Forms::do_magic_tags($config['post_parent']), 'to_ping' => Caldera_Forms::do_magic_tags($config['to_ping']), 'post_password' => Caldera_Forms::do_magic_tags($config['post_password']), 'post_excerpt' => Caldera_Forms::do_magic_tags($config['post_excerpt']), 'comment_status' => $config['comment_status']); // set the ID if (!empty($config['ID'])) { $is_post_id = Caldera_Forms::do_magic_tags($config['ID']); $post = get_post($is_post_id); if (!empty($post) && $post->post_type == $entry['post_type']) { $entry['ID'] = $is_post_id; } } // set author if (!empty($user_id)) { $entry['post_author'] = $user_id; } //is edit? if (!empty($_POST['_cf_frm_edt'])) { // need to work on this still. SIGH! } else { // Insert the post into the database $entry_id = wp_insert_post($entry); if (empty($entry_id)) { return; } } // do upload + attach if (!empty($config['featured_image'])) { $featured_image = Caldera_Forms::get_field_data($config['featured_image'], $form); foreach ((array) $featured_image as $filename) { $featured_image = cf_custom_fields_attach_file($filename, $entry_id); update_post_meta($entry_id, '_thumbnail_id', $featured_image); } } //get post fields into an array of fields not to save as meta. $post_fields = array_keys($entry); // get all submission data $data = Caldera_Forms::get_submission_data($form); update_post_meta($entry_id, '_cf_form_id', $form['ID']); foreach ($data as $field => $value) { if ('_entry_token' != $field && '_entry_id' != $field) { if (in_array($field, $post_fields) || in_array($form['fields'][$field]['ID'], $post_fields)) { continue; } } if (empty($form['fields'][$field])) { continue; } if (in_array($form['fields'][$field]['type'], array('button', 'html'))) { continue; } if ($form['fields'][$field]['type'] == 'file') { if ($field == $config['featured_image']) { continue; // dont attache twice. } foreach ((array) $value as $file) { cf_custom_fields_attach_file($file, $entry_id); } } update_post_meta($entry_id, $form['fields'][$field]['slug'], $value); } return array('Post ID' => $entry_id, 'ID' => $entry_id, 'permalink' => get_permalink($entry_id)); }