I have a meta-box for a cpt and can't get the values from the form to update_post_meta
cpt declaration:
function hgod_fichas()
{
$labels = array( … );
$args = array(
'label' => __('Fichas', 'hgodinho'),
'description' => __('Fichamento', 'hgodinho'),
'labels' => $labels,
'supports' => array('title', 'editor', 'thumbnail', 'revisions'),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => 'fichas',
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
'show_in_rest' => true,
);
register_post_type('hgod_fichas', $args);
}
meta-box declaration:
function hgod_add_metabox($post_type)
{
$post_type = get_post_type();
add_meta_box(
$post_type . '_metabox',
__('Ficha', 'hgod'),
$post_type . '_render',
$post_type,
);
}
meta-box callback:
function hgod_fichas_render( $post )
{
$mb = get_post_meta($post->ID);
wp_nonce_field( basename( __FILE__ ), '_hgod_fichas_mb_nonce');
?>
<p>
<label for="ficha_tipo">Tipo:
</label>
<select name="ficha_tipo" id="ficha_tipo">
<option value="none" selected disable hidden>Selecione o…</option>
<option value="livro">livro</option>
<option value="texto">texto</option>
<option value="webpage">webpage</option>
<option value="imagem">imagem</option>
<option value="video">video</option>
<option value="audio">audio</option>
<option value="codigo">codigo</option>
</select>
</p>
…
}
Save function
the problem relies here, I cant get the values from nounce neither the select field, or any other input value on my hgod_fichas_render()
function, so I get returned on the very first conditional of this function:
function hgod_save_ficha($post_id){
if ( ! isset( $_POST['_hgod_fichas_mb_nonce'] ) ) {
return; // RETURN HERE
}
if ( ! wp_verify_nonce( $_POST['_hgod_fichas_mb_nonce'], '_hgod_fichas_mb_nonce' ) ) {
return;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( ! current_user_can( 'edit_hgod_fichas', $post_id ) ) {
return;
}
$tipo_ficha = $_POST['ficha_tipo'];
$update_ficha = update_post_meta($post_id, '_hgod_ficha_livro_autor', $tipo_ficha);
if ( !$update_ficha ){
wp_die('nao salvou' );
}
}
Can anyone throw a light on this?