Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
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;
}