Filtros para transformar valores, personalizar rutas y extender reglas de ubicación.
fieldforge/local_json/save_path
Cambia el directorio donde se guardan los archivos JSON locales.
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
Añade directorios adicionales para cargar grupos de campos JSON.
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
Filtra un valor de campo a medida que se carga desde la base de datos. Se ejecuta antes de formatear.
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
Extiende la coincidencia de reglas de ubicación con parámetros personalizados.
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 );Referencia Rápida de Hooks
| Hook | Tipo | Parámetros | Cuándo |
|---|---|---|---|
fieldforge/field_group_saved | Acción | $group_id, $group | Después de crear/actualizar grupo |
fieldforge/field_group_deleted | Acción | $group_id | Antes de eliminar grupo |
fieldforge/value_updated | Acción | $post_id, $field_name | Después de insertar/actualizar valor |
fieldforge/values_deleted | Acción | $post_id | Después de eliminar todos los valores |
fieldforge/local_json/save_path | Filtro | $path | Al guardar archivos JSON |
fieldforge/local_json/load_paths | Filtro | $paths | Al cargar archivos JSON |
fieldforge/load_value | Filtro | $value, $field_name, $post_id, $row | Al cargar un valor |
fieldforge/match_location_rule | Filtro | $actual, $rule, $post | Al evaluar reglas de ubicación |
—