Jeremy,
Excelente trabalho não apenas deixando-o em "Auto Draft". É complicado quando esses tipos de CPTs não têm títulos. Aqui está algum código que usei para realizar uma tarefa semelhante.
Você precisará ajustar isso para sua situação, mas isso mostra uma maneira de fazer isso. Em particular, você pode usar o filtro wp_insert_post_data
para alterar o título antes de adicioná-lo ao banco de dados. Agora, um dos maiores erros que você pode cometer aqui é filtrar TODOS os títulos dos posts. Se você não tiver o cuidado de testar o contexto correto (por exemplo, quando estiver salvando e / ou editando o CPT de "revisão do produto", descobrirá que TODOS os títulos do seu site são destroçados. Minha recomendação é fazer uso de campos nonce em suas caixas meta para detectar quando o formulário correto é enviado.
Aqui está o meu código:
add_filter('wp_insert_post_data', 'change_title', 99, 2);
function change_title($data, $postarr)
{
// If it is our form has not been submitted, so we dont want to do anything
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
// Verify this came from the our screen and with proper authorization because save_post can be triggered at other times
if(!isset($_POST['my_nonce_field'])) return;
// If nonce is set, verify it
if(isset($_POST['my_nonce_field']) && !wp_verify_nonce($_POST['my_nonce_field'], plugins_url(__FILE__))) return;
// Get the associated term name
foreach($_POST['tax_input']['complaint-type'] as $term) {$term_id = $term;}
// Get name of term
$term = get_term_by('id', $term_id, 'complaint-type');
// Combine address with term
$title = $_POST['address']['address1'].' ('.$term->name.')';
$data['post_title'] = $title;
return $data;
}
Não seja pego em minhas manipulações do título. Basta perceber que você precisa definir $data['post_title']
e retornar $data
.