Problema con el guardado de datos en metabox personalizado

  • Autor Autor OneBlack
  • Fecha de inicio Fecha de inicio
O

OneBlack

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Estoy realizando un plugin para mi sitio web y he logrado crear el custom post y que muestra el meta box en el editor pero al ejecutar el proceso de publicar no ejecuta la función que cree para guardar los datos.

PHP:
function registrar_nuevo_post(){
        register_post_type( 'programacion', array(            'public' => true,            'supports' => array('title'),            'publicly_queryable' => true,            'show_ui' => true,            'query_var' => true,            'rewrite' => true,            'capability_type' => 'post',            'hierarchical' => false,            'labels' => array(                'name' => 'Programacion',                'singular_name' => 'Programacion',                'add_new' => 'Agregar nuevo programa',                'add_new_item' => 'Agregar nuevo programa',                'edit_item' => 'Editar programa',                'new_item' => 'Nueva programa',                'view_item' => 'Ver programa',                'search_items' => 'Buscar programa',                'not_found' => 'No se han encontrado programas',                'not_found_in_trash' => 'No se han encontrado programas en la papelera',                )            ));}add_action('init','registrar_nuevo_post');function agregar_shows_box(){    add_meta_box('meta_box_id','Programacion','render_shows_box', 'programacion','normal','high');}add_action('add_meta_boxes','agregar_shows_box');function render_shows_box($post){    wp_nonce_field(plugin_basename( __FILE__ ),'render_shows_box_nonce');    $valor = get_post_custom($post->ID);    $nombre = isset($valor['add_shows_nombre']) ? esc_attr($valor['add_shows_nombre'][0]) : '';    $descripcion = isset($valor['add_shows_descripcion']) ? esc_attr($valor['add_shows_descripcion']) : '';    $dias = isset($valor['add_shows_dias']) ? esc_attr($valor['add_shows_dias']) : '';    $horario_inicio = isset($_POST['add_shows_hora_inicio']) ? esc_attr($valor['add_shows_hora_inicio']) : '';    $horario_final = isset($_POST['add_shows_hora_final']) ? esc_attr($valor['add_shows_hora_final']) : '';?>    <table>        <tr>            <td>Nombre del programa:</td>            <td><input type="text" name="add_shows_nombre" value="<?php echo $nombre; ?>"></td>        </tr>        <tr>            <td>Descripcion del programa:</td>            <td><textarea name="add_shows_descripcion" rows="5"><?php echo $descripcion;?></textarea></td>        </tr>        <tr>            <td>Dias</td>            <td><select name="add_shows_dias"><option value="0" <?php selected($dias,'luneas a viernes');?>>Lunes a viernes</option><option value="1" <?php selected($dias,'fin de semana');?>>Fin de semana</option></select></td>        </tr>        <tr>            <td>Horario:</td>            <td><input type="time" name="add_shows_hora_inicio" placeholder="hrs:mins" value="<?php echo $horario_inicio;?>"> - <input type="time" name="add_shows_hora_final" placeholder="hrs:mins" value="<?php echo $horario_final;?>"></td>        </tr>        <tr>            <td>Imagen del programa:</td>            <td><input type="file" id="wp_custom_attachment" name="add_shows_img_upload" value="" size="25" accept="image/png" /></td>        </tr>    </table><?php}function save_add_shows($post_id){    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;    if(isset($_POST['render_shows_box_nonce']) || !wp_verify_nonce($_POST['render_shows_box_nonce'],plugin_basename(__FILE__ ))) return;    if(!current_user_can('edit_post')) return;    if(!empty($_FILES['wp_custom_attachment']) || isset($_FILES['wp_custom_attachment']))    {        $upload_type_support = 'image/png';        $upload_type = wp_chech_filetype(basename($_FILES['wp_custom_attachment']['name']));        $uploaded_type = $upload_type['type'];        if($uploaded_type == $upload_type_support)        {            $upload = wp_upload_bits($_FILES['wp_custom_attachment']['name'],null,file_get_contents($_FILES['wp_custom_attachment']['name']));            if(isset($upload['error']) && $upload['error'] != 0)            {                wp_die('Lo sentimos ocurrio un error en el proceso de carga de la imagen del programa'.$upload['error']);            }            else            {                if(!empty($_POST['add_shows_nombre']) and isset($_POST['add_shows_nombre']))                {                    if(!empty($_POST['add_shows_descripcion']) and isset($_POST['add_shows_descripcion']))                    {                        if(!empty($_POST['add_shows_dias']) and isset($_POST['add_shows_dias']))                        {                            if(!empty($_POST['add_shows_hora_inicio']) and isset($_POST['add_shows_hora_inicio']))                            {                                if(!empty($_POST['add_shows_hora_final']) and isset($_POST['add_shows_hora_final']))                                {                                    if(is_numeric($_POST['add_shows_dias']) and $_POST['add_shows_dias'] >= 0 and $_POST['add_shows_dias'] <= 1)                                    {                                        update_post_meta($post_id,'programa_nombre', esc_attr($_POST['add_shows_nombre']));                                        update_post_meta($post_id,'programa_descripcion',esc_attr($_POST['add_shows_descripcion']));                                        update_post_meta($post_id,'programa_dias',esc_attr($_POST['add_shows_dias']));                                        update_post_meta($post_id,'programa_hora_inicio',esc_attr($_POST['add_shows_hora_inicio']));                                        update_post_meta($post_id,'programa_hora_final',esc_attr($_POST['add_shows_hora_final']));                                        update_post_meta($post_id,'programa_img',$upload);                                    }                                    else{wp_die('Lo sentimos pero el cronograma de programación es incorrecto.');}                                }else {wp_die('Lo sentimos pero la hora de conclusión del programa se encuentra vacia.');}                            }else{wp_die('Lo sentimos pero la hora de inicio del programa se encuentra vacia.');}                        }else {wp_die('Lo sentimos pero el cronograma de programación se encuentra vacio.');}                    }else{wp_die('Lo sentimos pero la descripción del programa se encuentra vacia.');}                }else{wp_die('Lo sentimos pero el nombre del programa se encuentra vacio.');}            }        }        else{wp_die('Lo sentimos pero el tipo de imagen para la portada del programa es incorrecto.' );}
    }else{wp_die('Lo sentimos pero el campo de imagen para la portada del programa se encuentra vacio.');}}add_action('save_post','save_add_shows');

Espero me puedan ayudar, muchas gracias!
 
Atrás
Arriba