I retested this once again, and unless we do populate the CRED Form Fields ShortCodes value attributes with ShortCodes, or update those with PHP hooking into (for example) cred_save_data(), then those Fields will be always empty on creation of a new post and always feature the values of the saved post if you edit a post.
This is how it should be, as well, as if you create a new post you do (primordially) not want it to be populated with other data.
It is the correct behaviour to not populate the fields automatically.
You will need to either pass a value to the Form Fields directly (if available) or update the value with PHP hooking into the cred_save_data():
https://toolset.com/documentation/programmer-reference/cred-api/#cred_save_data
Taxonomies should be updated with the hook, rather than with ShortCode value since those fields do not feature a "value" attribute.
Hence you would use wp_set_post_terms() inside a cred_save_data() hook to update the taxonomies of the new or edited post with taxonomies of the current page (or any other post you choose in your code).
https://codex.wordpress.org/Function_Reference/wp_set_post_terms
An example code snippet that adds the term "my_term" (ID 5) of a hierarchical taxonomy "my_tax" to the post I submit with the current CRED Form.
add_action('cred_save_data', 'my_save_data_action',10,2);
function my_save_data_action($post_id, $form_data)
{
// if a specific form
if ($form_data['id']==12)
{
wp_set_post_terms( $post_id, '5', 'my_tax', true);
}
}
$post_id is the ID of the Post you edit or create with CRED and it's already provided by CRED in the variable.
wp_set_post_terms() as well offers $terms to pass, and $taxonomy + $append.
$terms is a comma-separated list of ID's of hierarchical terms or a comma-separated list of names of flat terms.
If you want to get the current page's terms (container ID of CRED), you can access them with wp_get_post_terms():
https://codex.wordpress.org/Function_Reference/wp_get_post_terms
Since CRED as well offers a Container ID variable, you can easily use that to access the terms of the page where the form is inserted to:
wp_get_post_terms( $form_data['container_id'], 'my_tax');
$form_data['container_id'] in this case will give you the ID of the page where the form is inserted to.
If you require help for customizing the above Code samples for the site, I suggest to consult this with the Contractors:
https://toolset.com/contractors/