/* ESTO PONE UN BOTON EN EL POST TYPE: registropromo */
add_filter( 'views_edit-registropromo', 'fetch_promos_fb_status_button' );
function fetch_promos_fb_status_button( $views ) {
$url = admin_url( 'edit.php?post_type=registropromo');
$forms = "";
$views['my-button'] = '<form method="post" action="' . $url . '">' . $forms . '<input type="submit" class="button button-primary" name="fetch_promos_fb_status" value="Descargar Excel"> </form>';
return $views;
}
add_action( 'admin_head-edit.php', 'fetch_participa_fb_status' );
function fetch_participa_fb_status() {
global $current_screen;
if( 'registropromo' != $current_screen->post_type ) :
return;
endif;
// FORM PROMOS
if( isset($_POST['fetch_promos_fb_status']) ) :
error_reporting(E_ALL);
ini_set("display_errors", "1");
set_time_limit(0);
require_once (TEMPLATEPATH . "/libs/PHPExcel.php");
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Fecha');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Nombre');
$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Apellidos');
$objPHPExcel->getActiveSheet()->setCellValue('D1', 'E-mail');
$objPHPExcel->getActiveSheet()->setCellValue('E1', 'DNI');
$objPHPExcel->getActiveSheet()->setCellValue('F1', 'Teléfono');
$objPHPExcel->getActiveSheet()->setCellValue('G1', 'Voto');
$objPHPExcel->getActiveSheet()->getStyle('A1:I1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('A:F')->setAutoSize(true);
$args = array( 'posts_per_page' => 0, 'numberposts'=>50000, 'post_type'=> $current_screen->post_type);
global $wpdb;
$sql = "SELECT p.ID, p.post_title, p.post_date,
pm0.meta_value as nombre,
pm1.meta_value as apellidos,
pm2.meta_value as email,
pm3.meta_value as dni,
pm4.meta_value as telefono,
pm5.meta_value as voto
FROM $wpdb->posts p
LEFT JOIN $wpdb->postmeta pm0 ON pm0.post_id = p.ID and pm0.meta_key = 'nombre'
LEFT JOIN $wpdb->postmeta pm1 ON pm1.post_id = p.ID and pm1.meta_key = 'apellidos'
LEFT JOIN $wpdb->postmeta pm2 ON pm2.post_id = p.ID and pm2.meta_key = 'email'
LEFT JOIN $wpdb->postmeta pm3 ON pm3.post_id = p.ID and pm3.meta_key = 'dni'
LEFT JOIN $wpdb->postmeta pm4 ON pm4.post_id = p.ID and pm4.meta_key = 'telefono'
LEFT JOIN $wpdb->postmeta pm5 ON pm5.post_id = p.ID and pm5.meta_key = 'voto'
WHERE p.post_status = 'publish' and p.post_type = '$current_screen->post_type' ";
$sql .= " ORDER BY p.ID DESC";
$posts = $wpdb->get_results( $sql, OBJECT );
if ( $posts ) {
foreach ( $posts as $i=>$post ) {
$post_id = $post->ID;
$fecha = mysql2date( 'd/m/Y H:i:s', $post->post_date );
$nombre = $post->nombre;
$apellidos = $post->apellidos;
$email = $post->email;
$dni = $post->dni;
$telefono = $post->telefono;
$voto = $post->voto;
$objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2), $fecha);
$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2), $nombre);
$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2), $apellidos);
$objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2), $email);
$objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2), $dni);
$objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2), $telefono);
$objPHPExcel->getActiveSheet()->setCellValue('G'.($i+2), $voto);
}
}
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(TEMPLATEPATH."/temp/registro-promocion.xlsx");
?>
<script>window.onload = function () { window.location = "<?php echo get_template_directory_uri()."/temp/registro-promocion.xlsx"; ?>"; }</script>
<?php
endif;
}