Field Forge proporciona acciones que se activan después de que los datos cambian, permitiéndote extender el comportamiento, sincronizar datos e invalidar cachés.
fieldforge/field_group_saved
Se activa después de que se crea o actualiza un grupo de campos.
php
/**
* @param int $group_id The field group ID.
* @param object $group The full group object.
*/
add_action( 'fieldforge/field_group_saved', function( $group_id, $group ) {
wp_cache_flush_group( 'my_theme_cache' );
error_log( sprintf( 'Field group "%s" (#%d) saved.', $group->title, $group_id ) );
}, 10, 2 );fieldforge/field_group_deleted
Se activa antes de que se elimine un grupo de campos.
php
/**
* @param int $group_id The field group ID being deleted.
*/
add_action( 'fieldforge/field_group_deleted', function( $group_id ) {
delete_transient( 'my_theme_fields_' . $group_id );
}, 10, 1 );fieldforge/value_updated
Se activa después de que se inserta o actualiza un valor de campo.
php
/**
* @param int $post_id The post ID.
* @param string $field_name The field name that was updated.
*/
add_action( 'fieldforge/value_updated', function( $post_id, $field_name ) {
// Sync a specific field to postmeta for third-party compatibility
if ( $field_name === 'price' ) {
$value = FIELDFORGE_Field_Values::instance()->get_value( 'price', $post_id );
update_post_meta( $post_id, '_price', $value );
}
// Invalidate page cache
if ( function_exists( 'wp_cache_delete' ) ) {
wp_cache_delete( 'page_html_' . $post_id, 'my_cache' );
}
}, 10, 2 );fieldforge/values_deleted
Se activa después de que se eliminan todos los valores para una publicación.
php
/**
* @param int $post_id The post ID whose values were deleted.
*/
add_action( 'fieldforge/values_deleted', function( $post_id ) {
delete_post_meta( $post_id, '_price' );
delete_post_meta( $post_id, '_sku' );
}, 10, 1 );—