[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
Обратите внимание, что после использования памяти нет журнала «Обработка PDF» или «Отправленное письмо», что означает, что процесс молча останавливается где-то во время или после Dompdf::render().
Я проверил:
- memory_limit: 512M (подтверждено с помощью phpinfo())
- max_execution_time:165
- Версия PHP: 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("
}
} catch (Throwable $e) {
vg_log("Error in Dompdf: " . $e->getMessage());
}
}
Редактировать 1: я обнаружил, что на сервере есть журналы, связанные со временем моей проблемы:
[Sat Nov 15 19:31:30 2025] [X-OVHRequest-Id: x] [error] [client x:0] [host moonlightspa.pl] x: FastCGI: comm with server "/homez.789/moonlighok/www/index.php" aborted: read failed
[Sat Nov 15 19:31:30 2025] [X-OVHRequest-Id: x] [error] [client x:0] [host moonlightspa.pl] AH10149: FastCGI: incomplete headers (0 bytes) received from server "/homez.789/moonlighok/www/index.php"
[Sat Nov 15 19:31:30 2025] [X-OVHRequest-Id: x] [error] [client x:0] [host x.pl] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
Подробнее здесь: https://stackoverflow.com/questions/798 ... ess-silent
Мобильная версия