Is it possible to automatically set the publication time to 8am on new posts?

you can automate this hour selection with the following code. take into account that this code also affect the date of a post created trough the API.

add_filter("wp_insert_post_data", function ($data, $postarr, $unsanitized_postarr, $update) {
    
    
    if (    !$update
        &&  ("post" === $data["post_type"])
        &&  ("auto-draft" === $data["post_status"])
    ) {
        
        $date = current_datetime()
            ->modify("tomorrow 08:00:00")
            ->format("Y-m-d H:i:s")
        ;
        
        $data["post_date"] = $date;
        
    }
    
    
    return $data;
    
}, 10, 4);

what is also possible to do is to retrieve the last draft that you saved and then set the next draft date to the next day instead of tomorrow.

tech