acf/save_postхук-событиеACF 1.0

Срабатывает при сохранении отправленных $_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 изменяемого поста.

Примеры

0

#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...
	}
}
0

#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/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 );
alexlead 71codepen.io/alexlead
Редакторы: Kama 9789
3 комментария
    Войти