acf/save_post
Срабатывает при сохранении отправленных $_POST данных формы.
Это событие позволяет сделать что-либо до или после сохранения $_POST данных формы, созданной функцией acf_form(). Используя этот хук можно добавить функциональность форме.
В отличие от события WordPress save_post, это событие не содержит параметра $updated. Если нужен этот параметр, ищите другой хук.
Использование
add_action( 'acf/save_post', 'wp_kama_acf_save_post_action' );
/**
* Function for `acf/save_post` action-hook.
*
* @param $post_id
*
* @return void
*/
function wp_kama_acf_save_post_action( $post_id ){
// action...
}
- $post_id(число/строка)
- ID изменяемого поста.
Примеры
#1 Делаем что нужно после сохранения данных формы
Пример демонстрирует как добавить функции после того как ACF сохранил $_POST данные формы.
add_action( 'acf/save_post', 'my_acf_save_post' );
function my_acf_save_post( $post_id ) {
// Получить новые сохранные значения.
$values = get_fields( $post_id );
// Проверить новое значение специального поля.
$hero_image = get_field( 'hero_image', $post_id );
if( $hero_image ) {
// Do something...
}
} #2 Делаем что нужно до сохранения данных формы
Пример демонстрирует как добавить функции после того как ACF сохранил $_POST данные формы. Для этого укажем приоритет меньше 10.
add_action( 'acf/save_post', 'my_acf_save_post', 5 );
function my_acf_save_post( $post_id ) {
// Получить предыдущеи значения.
$prev_values = get_fields( $post_id );
// Получить отправленные значения.
$values = $_POST['acf'];
// Проверить были ли изменены специальные значения.
if( isset($_POST['acf']['field_abc123']) ) {
// Do something.
}
}
Где вызывается хук
acf/save_post
acf/includes/acf-form-functions.php 143
do_action( 'acf/save_post', $post_id );
Где используется хук в Advanced Custom Fields PRO
acf/includes/acf-form-functions.php 171
add_action( 'acf/save_post', '_acf_do_save_post' );
acf/includes/fields/class-acf-field-taxonomy.php 48
add_action( 'acf/save_post', array( $this, 'save_post' ), 15, 1 );
acf/includes/media.php 26
add_action( 'acf/save_post', array( $this, 'save_files' ), 5, 1 );