Код: Выделить всё
[2025-11-10 08:57:34] -----------------
[2025-11-10 08:57:34] ✔ Function vg_generate_voucher_pdf called. Order ID: 12747
[2025-11-10 08:57:34] Number of order items: 1
[2025-11-10 08:57:34] Voucher number (order ID): 12747
[2025-11-10 08:57:34] New item in loop...
[2025-11-10 08:57:34] Checking product category ID: 10971
[2025-11-10 08:57:34] Product categories: kup-online-dabska-spa
[2025-11-10 08:57:34] Voucher for: John-Doe
[2025-11-10 08:57:34] Recipient email: johndoe@example.com
[2025-11-10 08:57:35] Dompdf object created
[2025-11-10 08:57:35] Paper set
[2025-11-10 08:57:35] Memory usage before render: 39,845,888
Я проверил:
Код: Выделить всё
memory_limit: 512M (confirmed with phpinfo())
max_execution_time:165
PHP version: 8.1.33
Обернут рендеринг и почту в try/catch, никаких исключений не происходит.
Вот упрощенная версия моей функции создания PDF-файлов:
Код: Выделить всё
function generate_and_send_pdf($html, $voucher_for, $order_id, $recipient_email, $location_email, $item)
{
try {
$dompdf = new Dompdf();
$dompdf->set_option('isRemoteEnabled', true);
$dompdf->set_option('defaultFont', 'DejaVu Sans');
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
vg_log("Memory usage before render: " . memory_get_usage(true));
$dompdf->render();
vg_log("Memory usage after render: " . memory_get_usage(true));
vg_log("PDF rendered");
$output = $dompdf->output();
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['basedir'] . '/VOUCHERS/Voucher_' . $voucher_for . '-' . $order_id . '.pdf';
file_put_contents($file_path, $output);
vg_log("PDF saved to: " . $file_path);
$headers = [
'Content-Type: text/html; charset=UTF-8',
'Reply-To: ' . $location_email
];
$sent = wp_mail(
$recipient_email,
'Your Voucher',
'Voucher PDF attached',
$headers,
[$file_path]
);
if ($sent) {
vg_log("✔ Mail sent.");
} else {
vg_log("🛑 Mail NOT sent!");
}
} catch (Throwable $e) {
vg_log("Error in Dompdf: " . $e->getMessage());
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ess-silent
Мобильная версия