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/includes/acf-form-functions.php 141

do_action( 'acf/save_post', $post_id );

Де використовується хук в Advanced Custom Fields

acf/includes/acf-form-functions.php 168

add_action( 'acf/save_post', '_acf_do_save_post' );

acf/includes/media.php 26

add_action( 'acf/save_post', array( $this, 'save_files' ), ​​5, 1 );

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *