function duplicate_field($field) { // get sub fields $sub_fields = acf_extract_var($field, 'sub_fields'); // save field to get ID $field = acf_update_field($field); // duplicate sub fields acf_duplicate_fields($sub_fields, $field['ID']); // return return $field; }
function duplicate_field($field) { // vars $sub_fields = array(); if (!empty($field['layouts'])) { // loop through layouts foreach ($field['layouts'] as $layout) { // extract sub fields $extra = acf_extract_var($layout, 'sub_fields'); // merge if (!empty($extra)) { $sub_fields = array_merge($sub_fields, $extra); } } // foreach } // if // save field to get ID $field = acf_update_field($field); // duplicate sub fields acf_duplicate_fields($sub_fields, $field['ID']); // return return $field; }
function acf_duplicate_field_group($selector = 0, $new_post_id = 0) { // disable JSON to avoid conflicts between DB and JSON acf_disable_local(); // load the origional field gorup $field_group = acf_get_field_group($selector); // bail early if field group did not load correctly if (empty($field_group)) { return false; } // keep backup of field group $orig_field_group = $field_group; // update ID $field_group['ID'] = $new_post_id; $field_group['key'] = uniqid('group_'); // add (copy) if (!$new_post_id) { $field_group['title'] .= ' (' . __("copy", 'acf') . ')'; } // save $field_group = acf_update_field_group($field_group); // get fields $fields = acf_get_fields($orig_field_group); // duplicate fields acf_duplicate_fields($fields, $field_group['ID']); // action for 3rd party customization do_action('acf/duplicate_field_group', $field_group); // return return $field_group; }