Overview
Pre-filter values for a specific field name before default formatting.
Description
This filter is a field name specific version of acf/schema/format_value/pre. It allows you to pre-process values before ACF’s default formatting, but only for a specific field name.
The dynamic portion of the hook name, {field_name}, refers to the ACF field name.
Changelog
- Added in version 6.8.0
Parameters
apply_filters( 'acf/schema/format_value/pre/name={field_name}', $pre_value, $value, $field_object );
$pre_value(mixed) Pre-formatted value from previous filters, or null$value(mixed) The raw field value$field_object(array) The field object with settings
Return
(mixed|null) The pre-formatted value, or null to use default formatting.
Example
This example provides custom formatting for a specific event date field.
/**
* Custom date formatting for event_date field.
*
* @param mixed $pre_value Pre-formatted value or null.
* @param mixed $value The raw value (date string).
* @param array $field_object The field object.
* @return mixed Pre-formatted value or null.
*/
function my_acf_schema_format_event_date( $pre_value, $value, $field_object ) {
if ( ! $value ) {
return $pre_value;
}
// Convert to ISO 8601 with timezone
$date = DateTime::createFromFormat( 'Y-m-d H:i:s', $value );
if ( ! $date ) {
return $pre_value;
}
// Set timezone from WordPress settings
$timezone = wp_timezone();
$date->setTimezone( $timezone );
return $date->format( 'c' );
}
add_filter( 'acf/schema/format_value/pre/name=event_date', 'my_acf_schema_format_event_date', 10, 3 );
This example enriches a product SKU field with additional data.
/**
* Enrich product_sku field with full product data.
*
* @param mixed $pre_value Pre-formatted value or null.
* @param mixed $value The raw SKU value.
* @param array $field_object The field object.
* @return mixed Pre-formatted value or null.
*/
function my_acf_schema_format_product_sku( $pre_value, $value, $field_object ) {
if ( ! $value ) {
return $pre_value;
}
// Look up product by SKU in external system
$product = my_get_product_by_sku( $value );
if ( ! $product ) {
return $value; // Return SKU as-is
}
return array(
'@type' => 'Product',
'sku' => $value,
'name' => $product->name,
'description' => $product->description,
'offers' => array(
'@type' => 'Offer',
'price' => $product->price,
'priceCurrency' => 'USD',
),
);
}
add_filter( 'acf/schema/format_value/pre/name=product_sku', 'my_acf_schema_format_product_sku', 10, 3 );
Supercharge Your Website With Premium Features Using ACF PRO
Speed up your workflow and unlock features to better develop websites using ACF Blocks and Options Pages, with the Flexible Content, Repeater, Clone, Gallery Fields & More.
Related
- Filters: acf/schema/format_value/pre/type={field_type}
- Filters: acf/schema/format_value/name={field_name}
- Filters: acf/schema/format_value/pre
- Filters: acf/schema/format_value/type={field_type}
- Filters: acf/schema/format_value