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.
Espero me puedan ayudar, muchas gracias!
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!