Я пытаюсь сгенерировать PDF-файл на экране администратора posts.php в Wordpress с помощью плагина FPDF. Я хочу передать идентификатор страницы из кнопки в функцию, которую я вызываю, поэтому я генерирую только PDF-файл с данными, относящимися к этой странице.
При нажатии на кнопку просто обновляется страница.
Может кто-нибудь помочь, пожалуйста?
JAVASCRIPT
function ajaxAddVehicleMeta() {
var postid = jQuery('button[name="generate_posts_pdf"]').attr('id'); // select id of input change to whatever it actually is
jQuery.ajax({
type: 'POST',
data: {
action: 'saveVeh',
postid: postid
},
success: function(){
},
error: function(){
}
});
}
PHP
$pdf = new PDF_HTML();
function my_enqueue($hook) {
// Only add to the edit.php admin page.
// See WP docs.
if ('post.php' !== $hook) {
return;
}
wp_enqueue_script('my_custom_script', plugin_dir_url(__FILE__) . 'js/main.js');
}
add_action('admin_enqueue_scripts', 'my_enqueue');
add_action( 'wp_ajax_saveVeh', 'saveVeh' );
add_action( 'wp_ajax_nopriv_saveVeh', 'saveVeh' );
function saveVeh() {
$postid = 72;
global $wpdb;
if ( $wpdb->get_var( $wpdb->prepare( 'SELECT lottery_id FROM ' . $wpdb->prefix . 'wc_lottery_log WHERE lottery_id= %d', 72 ) ) ) {
$log = $wpdb->get_results( $wpdb->prepare( 'SELECT * FROM ' . $wpdb->prefix . 'wc_lottery_log WHERE lottery_id=%d', 72 ) );
global $pdf;
$title_line_height = 10;
$content_line_height = 8;
$pdf->AddPage();
$pdf->SetFont( 'Arial', '', 42 );
$pdf->Write(20, 'Atomic Smash FPDF Tutorial');
foreach( $log as $row ) {
$pdf->SetFont( 'Arial', '', 22 );
$pdf->Write($title_line_height, 'Test');
// Add a line break
$pdf->Ln(15);
// Post Content
$pdf->Ln(10);
$pdf->SetFont( 'Arial', '', 12 );
$pdf->WriteHTML($row->ticketid);
}
}
header("Content-type:application/pdf");
$pdf->Output('I','requerimiento_pdf.pdf');
exit;
}
HTML
<button onclick="ajaxAddVehicleMeta()" id="<?php echo $post->ID; ?>" class="button button-primary" type="submit" name="generate_posts_pdf" value="generate">Generate PDF from Competiion Entries</button>