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 51
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 );