acf_field_clone::prepare_field_for_db
description
Method of the class: acf_field_clone{}
No Hooks.
Returns
$post_id. (int)
Usage
$acf_field_clone = new acf_field_clone(); $acf_field_clone->prepare_field_for_db( $field );
- $field(required)
- .
Changelog
| Since 5.5.0 | Introduced. |
acf_field_clone::prepare_field_for_db() acf field clone::prepare field for db code ACF 6.8.8
function prepare_field_for_db( $field ) {
// bail early if no sub fields
if ( empty( $field['sub_fields'] ) ) {
return $field;
}
// bail early if name == _name
// this is a parent clone field and does not require any modification to sub field names
if ( $field['name'] == $field['_name'] ) {
return $field;
}
// this is a sub field
// _name = 'my_field'
// name = 'rep_0_my_field'
// modify all sub fields to add 'rep_0_' name prefix (prefix_name setting has already been applied)
$length = strlen( $field['_name'] );
$prefix = substr( $field['name'], 0, -$length );
// bail early if _name is not found at the end of name (unknown potential error)
if ( $prefix . $field['_name'] !== $field['name'] ) {
return $field;
}
// acf_log('== prepare_field_for_db ==');
// acf_log('- clone name:', $field['name']);
// acf_log('- clone _name:', $field['_name']);
// loop
foreach ( $field['sub_fields'] as &$sub_field ) {
$sub_field['name'] = $prefix . $sub_field['name'];
}
// return
return $field;
}