我正在尝试根据帖子内容(包括一些ACF字段)创建PDF。目前,我已经在POST表单上运行它,并且每次都动态创建PDF,但是我想让它在保存帖子时生成PDF,因此我只需单击一个下载按钮即可下载保存时生成的PDF职位,但很难做到。任何帮助都是伟大的!
我已经尝试将其创建为functions.php中的函数,并在prioirty 15时将其挂接到acf / save_post动作中,以便在初始保存之后。
function vehicle_details_pdf( $post_id ) {
require('wp-content/themes/murrayscott-nelson/fpdf/fpdf.php');
class PDF extends FPDF
{
function Header()
{
$vehicleRef = $_POST['ref'];
$this->Image('wp-content/themes/murrayscott-nelson/assets/logo.jpg',10,10,80);
$this->SetFont('Arial','B',15);
$this->Cell(80);
$this->Cell(85,10,'Vehicle Details - Ref:' . $vehicleRef ,0,0,'R');
$this->Ln(20);
}
function Footer()
{
$this->SetY(-15);
$this->SetFont('Arial','I',8);
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
$vehicleName = get_the_title();
$vehicleBodyStyle = get_field('body_type', $post_id);
$vehiclePrice = get_field('price', $post_id);
$vehicleEngCap = get_field('engine_capacity', $post_id);
$vehicleMileage = get_field('mileage', $post_id);
$vehicleSteering = get_field('steering', $post_id);
$vehicleDescription = get_field('description', $post_id);
$vehicleRef = get_field('reg_ref', $post_id);
$images = get_field('vehicle_images', $post_id);
$image = $images[0];
$image = $image['url'];
$vehicleImage = preg_replace("/^https:/i", "http:", $image);
$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','B',17);
$pdf->Image( $vehicleImage, $pdf->GetX(), $pdf->GetY(), 190);
$pdf->Ln(130);
$pdf->Cell(0,10,$vehicleName);
$pdf->Ln(10);
$pdf->SetFont('Arial','',12);
$pdf->Cell(0,7,'Body Style: ' . $vehicleBodyStyle . ' | Steering: ' . $vehicleSteering . ' | Engine Capacity: ' . $vehicleEngineCap . 'cc | Mileage: ' . $vehicleMileage . ' miles' );
$pdf->Ln(7);
$pdf->Write (6, $vehicleDescription);
$pdf->SetFont('Arial','B',17);
$pdf->Ln(0);
$pdf->Cell( 0, 10, iconv("UTF-8", "ISO-8859-1", "£") . $vehiclePrice, 0);
$pdf->Ln(10);
$pdf->setFillColor(230,230,230);
$pdf->SetFont('Arial','B',15);
$pdf->MultiCell(0,7,"If you'd like to arrange a viewing please call 01723 361 227",0,'C',1);
$pdf->MultiCell(0,7,"quoting reference: " . $vehicleRef ,0,'C',1);
$pdf->setFillColor(38,54,29);
$pdf->setTextColor(255,255,255);
$pdf->Ln(5);
$pdf->MultiCell(0,7,"Finance Available - Ask for details" ,0,'C',1);
$pdf->setTextColor(0,0,0);
$filepath= wp_get_upload_dir() . '/vehicledetails/' ;
$pdf->Output('F', $filepath . $vehicleRef . '.pdf');
}
add_action('acf/save_post', 'vehicle_details_pdf', 15);
我希望代码可以在wp-content / uploads / vehicledetails目录中创建pdf文件
错误消息:
[2019年9月1日10:49:10 UTC] PHP警告:为提供了无效的参数 在线上/app/public/wp-includes/class-wp-post-type.php中的foreach() 597 [2019年9月1日10:49:10 UTC] PHP警告:提供了无效的参数 对于/app/public/wp-includes/class-wp-post-type.php中的foreach() 第597行[2019年9月1日10:49:15 UTC] PHP警告:无效的参数 提供给foreach() 597行上的/app/public/wp-includes/class-wp-post-type.php [2019年9月1日10:49:15 UTC] PHP警告:为提供了无效的参数 在线上/app/public/wp-includes/class-wp-post-type.php中的foreach() 597 [2019年9月1日10:49:17 UTC] PHP警告:提供了无效的参数 对于/app/public/wp-includes/class-wp-post-type.php中的foreach() 第597行[2019年9月1日10:49:17 UTC] PHP警告:无效的参数 提供给foreach() 597行上的/app/public/wp-includes/class-wp-post-type.php [2019年9月1日10:49:17 UTC] PHP警告:提供了无效的参数 在线上/app/public/wp-includes/class-wp-post-type.php中的foreach() 597 [2019年9月1日10:49:18 UTC] PHP警告:提供了无效的参数 对于/app/public/wp-includes/class-wp-post-type.php中的foreach() 第597行[2019年9月1日10:49:19 UTC] PHP警告:无效的参数 提供给foreach() 597行上的/app/public/wp-includes/class-wp-post-type.php [01-Sep-2019 10:49:19 UTC] PHP警告:为提供的参数无效 在线上/app/public/wp-includes/class-wp-post-type.php中的foreach() 597 [2019年9月1日10:49:20 UTC] PHP警告:提供了无效的参数 对于/app/public/wp-includes/class-wp-post-type.php中的foreach() 第597行[2019年9月1日10:49:20 UTC] PHP警告:无效的参数 提供给foreach() 597行上的/app/public/wp-includes/class-wp-post-type.php [2019年9月1日10:49:21 UTC] PHP警告: require(wp-content / themes / murrayscott-nelson / fpdf / fpdf.php):未能 开放式流:中没有这样的文件或目录 /app/public/wp-content/themes/murrayscott-nelson/functions.php在线 81 [2019年9月1日10:49:21 UTC] PHP警告: require(wp-content / themes / murrayscott-nelson / fpdf / fpdf.php):未能 开放式流:中没有这样的文件或目录 /app/public/wp-content/themes/murrayscott-nelson/functions.php在线 81 [2019年9月1日10:49:21 UTC] PHP致命错误:require():失败 打开所需的“ wp-content / themes / murrayscott-nelson / fpdf / fpdf.php” (include_path ='。:/ usr / share / php:/ www / wp-content / pear')在 /app/public/wp-content/themes/murrayscott-nelson/functions.php在线 81 [2019年9月1日10:49:21 UTC] PHP致命错误:require():失败 打开所需的“ wp-content / themes / murrayscott-nelson / fpdf / fpdf.php” (include_path ='。:/ usr / share / php:/ www / wp-content / pear')在 /app/public/wp-content/themes/murrayscott-nelson/functions.php在线 81 [2019年9月1日10:50:16 UTC] PHP警告:提供了无效的参数 对于/app/public/wp-includes/class-wp-post-type.php中的foreach() 第597行[2019年9月1日10:52:17 UTC] PHP警告:无效的参数 提供给foreach() 597行上的/app/public/wp-includes/class-wp-post-type.php [01-Sep-2019 10:54:18 UTC] PHP警告:为提供了无效的参数 在线上/app/public/wp-includes/class-wp-post-type.php中的foreach() 597 [2019年9月1日10:56:18 UTC] PHP解析错误:语法错误, 意外的'$ vehicleName'(T_VARIABLE),需要函数 (T_FUNCTION)或const(T_CONST) /app/public/wp-content/themes/murrayscott-nelson/functions.php在线 114 [2019年9月1日10:58:19 UTC] PHP解析错误:语法错误, 意外的'$ vehicleName'(T_VARIABLE),需要函数 (T_FUNCTION)或const(T_CONST) /app/public/wp-content/themes/murrayscott-nelson/functions.php在线 114
答案 0 :(得分:0)
您的上传目录设置不正确。
尝试一下:
$uploads = wp_upload_dir();
$pdf->Output('F', $uploads['basedir'] . '/vehicledetails/' . $vehicleRef . '.pdf');