Make an ACF Field Read-Only
Shows an ACF field's value in the editor but stops editors changing it, useful for IDs or values filled by an import or integration.
Opens WPIDE on
Code
// Field names to lock.
$wpide_acf_readonly_fields = array( 'external_id', 'import_source' );
foreach ( $wpide_acf_readonly_fields as $wpide_acf_readonly_name ) {
add_filter( 'acf/prepare_field/name=' . $wpide_acf_readonly_name, function ( $field ) {
if ( is_array( $field ) ) {
$field['readonly'] = true;
$field['instructions'] = trim( ( $field['instructions'] ?? '' ) . ' (Read-only)' );
}
return $field;
} );
}
Notes
Works for text, number, email and URL fields. Code can still update the value.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.