acf_duplicate_fields()ACF 5.0.0

acf_duplicate_fields

Duplicate an array of fields.

No Hooks.

Returns

Array.

Usage

acf_duplicate_fields( $fields, $parent_id );
$fields(array)
An array of fields.
Default: array()
$parent_id(int)
The new parent ID.

Changelog

Since 5.0.0 Introduced.

acf_duplicate_fields() code ACF 6.8.8

function acf_duplicate_fields( $fields = array(), $parent_id = 0 ) {

	// Generate keys for all new fields
	// - Needed to alter conditional logic rules
	// - Use usleep() to ensure unique keys.
	$keys = array();
	foreach ( $fields as $field ) {
		usleep( 1 );
		$keys[ $field['key'] ] = uniqid( 'field_' );
	}
	acf_append_data( 'generated_keys', $keys );

	$duplicates = array();

	// Duplicate fields.
	foreach ( $fields as $field ) {
		$field_id     = $field['ID'] ? $field['ID'] : $field['key'];
		$duplicates[] = acf_duplicate_field( $field_id, $parent_id );
	}

	// Return.
	return $duplicates;
}