web-dev-qa-db-ja.com

Save_postフックの後に更新されたメタデータを取得する

投稿が保存されたとき(カスタム投稿タイプ)にメタデータの更新値を取得しようとしていますが、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);
}

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
}
1
Eckstein

明らかに、投稿を保存した直後にメタ値を取得するには、直接$ _REQUEST ['my_meta_value']を取得するか、データベースをすぐに更新する必要がある場合は、update_post_meta()を使用する必要があります。 save_postアクション.

0
Eckstein