Получать обновленные метаданные после save_post hook

Я пытаюсь получить обновленное значение части мета, когда сообщение сохраняется (пользовательский тип сообщения), но когда я пытаюсь захватить обновленные данные в hook_post, вместо этого получаю предыдущие данные. Я попробовал отдельную функцию с более высоким приоритетом, но не повезло так (ниже)

Как получить обновленное значение мета сразу после сохранения сообщения?

Код:

add_action('save_post_space', 'tps_save_space_slots', 20, 3); function tps_save_space_slots($post_id, $post, $updated) { //Don't fire on auto-drafts if (isset($post->post_status) && 'auto-draft' == $post->post_status) { return; } //The new slots being saved $allSlots = tps_generate_space_slots($post_id); //Update the meta $updateSlots = update_post_meta($post_id, 'allSlots', $allSlots); } add_action( 'save_post_space', 'tps_initiate_resend', 30, 3 ); function tps_initiate_resend($post_id, $post, $updated) { tps_resend_code_after_change($post_id);//<----this sends the new meta value in an email, but it's the OLD value } 

Очевидно, чтобы получить мета значение сразу после сохранения сообщения, вам нужно либо получить $ _REQUEST ['my_meta_value'] напрямую, либо, если вам нужно немедленно обновить базу данных, вы должны использовать update_post_meta () в своем save_post.

Вот так:

 add_action('save_post_space', 'tps_save_space_slots', 20, 3); function tps_save_space_slots($post_id, $post, $updated) { //Don't fire on auto-drafts if (isset($post->post_status) && 'auto-draft' == $post->post_status) { return; } //The new slots being saved $allSlots = tps_generate_space_slots($post_id); //Update the meta $updateSlots = update_post_meta($post_id, 'allSlots', $allSlots); //**Update the meta we need early** update_post_meta($post_id, 'my_custom_meta', $_REQUEST['my_custom_meta']; //Now we can get the updated value using get_post_meta here, or later } add_action( 'save_post_space', 'tps_initiate_resend', 30, 3 ); function tps_initiate_resend($post_id, $post, $updated) { tps_resend_code_after_change($post_id);//<----this sends the new meta value in an email, but it's the OLD value }