cf_custom_fields_save_meta_data
Save meta data from form.
Description
Parameters (2)
- 0. $config (array)
- Processor config.
- 1. $form (array)
- Form config.
Usage
if ( !function_exists( 'cf_custom_fields_save_meta_data' ) ) { require_once ABSPATH . PLUGINDIR . 'caldera-custom-fields/includes/metabox.php'; } // Processor config. $config = array(); // Form config. $form = array(); // NOTICE! Understand what this does before running. $result = cf_custom_fields_save_meta_data($config, $form);
Defined (1)
The function is defined in the following location(s).
- /includes/metabox.php
- 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_id => $field) {
- if( 'button' == Caldera_Forms_Field_Util::get_type($field, $form ) && $field['config']['type'] === 'submit' ) {
- unset( $form[ 'fields' ][ $field_id ] );
- }elseif ( Caldera_Forms_Field_Util::is_file_field( $field, $form ) ) {
- unset( $form[ 'fields' ][ $field_id ] );
- }elseif( Caldera_Forms_Fields::not_support( Caldera_Forms_Field_Util::get_type( $field, $form ), 'entry_list')) {
- unset( $form[ 'fields' ][ $field_id ] );
- }
- delete_post_meta( $post->ID, $field['slug'] );
- }
- // add filter to remove submit buttons
- add_filter('caldera_forms_render_setup_field', 'cf_custom_fields_submit_button_removal', 10, 2 );
- // add filter to remove file fields
- add_filter('caldera_forms_render_setup_field', 'cf_custom_fields_remove_file_fields', 10, 2 );
- 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;
- }