Расширенные пользовательские поля: update_sub_field перед сохранением записи

Ожидаемое поведение:

Когда пользователь обновляет ACF на панели инструментов WP и нажимает кнопку UPDATE, код проверяет наличие обновлений. Статус поле и, если значения изменились, также изменит Последнее обновление поле, затем сохраните всю информацию.

реальность:

Общий контент обновляется, но Последнее обновление поле не зависит от update_sub_field код. Однако, если я удалю строку возврата $ post в конце, Последнее обновление поле сохраняется, но общий контент возвращается к исходным значениям (не сохраняется).

Мне нужно, чтобы оба были спасены! У меня есть ощущение, что все происходит не в правильном порядке, и я могу сделать это, если просто найду подходящий фильтр / действие для выполнения, но пока ни один из них не работал с приведенным ниже кодом (пробовал разные приоритеты как аргументы, а)

add_action( 'acf/save_post' , 'update_post');
add_action( 'save_post' , 'update_post');
add_filter( 'wp_insert_post_data' , 'update_post');

Любая помощь с благодарностью. Спасибо!

function update_post( $post ) {

$projectCount = -1;

if( have_rows('project') ):

while( have_rows('project') ): the_row();

$taskCount = -1;
$projectCount++;

if( have_rows('project_issue') ):

while( have_rows('project_issue') ): the_row();

$taskCount++;

$oldValue   = get_sub_field('project_current_status');

$newValue   = $_POST['acf']['field_594afbf65e909'][$projectCount]['field_594afd675e90d'][$taskCount]['field_594c05c666a9f'];

$date = date('Ymd');

$updated = ($oldValue !== $newValue) ? 'true' : 'false';

if ( $updated == 'true' ) {

update_sub_field('project_last_update', $date);

}

endwhile;

endif;

endwhile;

endif;

return $post;
}

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector