Filters for transforming values, customizing paths, and extending location rules.
fieldforge/local_json/save_path
Change the directory where Local JSON files are saved.
php
/**
* @param string $path Default: get_stylesheet_directory() . '/fieldforge-json'
* @return string Absolute path.
*/
add_filter( 'fieldforge/local_json/save_path', function( $path ) {
return WP_CONTENT_DIR . '/fieldforge-json';
} );fieldforge/local_json/load_paths
Add additional directories to load JSON field groups from.
php
/**
* @param string[] $paths Default: [child_theme/fieldforge-json, parent_theme/fieldforge-json]
* @return string[]
*/
add_filter( 'fieldforge/local_json/load_paths', function( $paths ) {
$paths[] = MY_PLUGIN_DIR . '/fieldforge-json';
return $paths;
} );fieldforge/load_value
Filter a field value as it is loaded from the database. Runs before formatting.
php
/**
* @param mixed $value The raw value from DB.
* @param string $field_name The field name.
* @param int $post_id The post ID.
* @param object $row The raw database row.
* @return mixed The filtered value.
*/
add_filter( 'fieldforge/load_value', function( $value, $field_name, $post_id, $row ) {
// Auto-decrypt sensitive fields
if ( $field_name === 'api_key' && $value ) {
return my_decrypt_function( $value );
}
// Provide a default for empty fields
if ( $field_name === 'accent_color' && empty( $value ) ) {
return '#3b82f6';
}
return $value;
}, 10, 4 );fieldforge/match_location_rule
Extend location rule matching with custom parameters.
php
/**
* @param string $actual The resolved actual value.
* @param array $rule The rule definition.
* @param WP_Post $post The post being evaluated.
* @return string The actual value to compare.
*/
add_filter( 'fieldforge/match_location_rule', function( $actual, $rule, $post ) {
if ( $rule['param'] === 'post_author_role' ) {
$author = get_userdata( $post->post_author );
return $author ? $author->roles[0] : '';
}
return $actual;
}, 10, 3 );Hooks Quick Reference
| Hook | Type | Parameters | When |
|---|---|---|---|
fieldforge/field_group_saved | Action | $group_id, $group | After group create/update |
fieldforge/field_group_deleted | Action | $group_id | Before group delete |
fieldforge/value_updated | Action | $post_id, $field_name | After value insert/update |
fieldforge/values_deleted | Action | $post_id | After all values deleted |
fieldforge/local_json/save_path | Filter | $path | When saving JSON files |
fieldforge/local_json/load_paths | Filter | $paths | When loading JSON files |
fieldforge/load_value | Filter | $value, $field_name, $post_id, $row | When loading a value |
fieldforge/match_location_rule | Filter | $actual, $rule, $post | When evaluating location rules |
—