Как создать динамический PDF-файл в WordPress с помощью PHP

В этой статье разберём, как создать динамический PDF-файл на сайте WordPress, используя PHP. Это полезно для генерации счетов, отчетов, договоров и других документов, которые зависят от данных пользователей или содержимого сайта.

Почему стоит генерировать PDF динамически?

Статичные PDF-файлы редко подходят для современных сайтов, где данные постоянно меняются. Автоматическое создание PDF позволяет:

  • Подставлять актуальную информацию из базы данных;
  • Генерировать документы по запросу пользователя;
  • Автоматизировать документооборот;
  • Экономить время и ресурсы на ручном формировании файлов.

В WordPress есть несколько способов реализации динамической генерации PDF, как с помощью плагинов, так и с использованием собственных PHP-скриптов.

Основные плагины для генерации PDF в WordPress

Рассмотрим популярные плагины, которые помогут быстро начать работать с PDF:

1. Clearfy Pro

Хотя Clearfy Pro в первую очередь — плагин для оптимизации сайта, он обладает модулем для создания PDF-версий страниц и постов. Поддерживает кастомизацию шаблонов, добавление водяных знаков и автоматическую генерацию.

2. PDF Generator for WordPress

Простой плагин, который позволяет преобразовывать содержимое постов и страниц в PDF. Имеет интуитивный интерфейс и шаблоны для настройки внешнего вида документов.

3. WP PDF Generator

Плагин с расширенной функциональностью: создание PDF по кастомным шаблонам, интеграция с WooCommerce для генерации счетов и накладных, поддержка пользовательских полей.

Как создать PDF с помощью PHP: библиотека TCPDF

Для полного контроля и кастомизации часто лучше использовать PHP-библиотеки. Одна из самых популярных — TCPDF. Она бесплатна, поддерживает много функций и не требует внешних зависимостей.

Далее пример создания PDF с TCPDF в WordPress:

function wpdirect_generate_pdf() {
    require_once(ABSPATH . 'wp-content/plugins/tcpdf/tcpdf.php'); // Путь к библиотеке TCPDF

    $pdf = new TCPDF();
    $pdf->AddPage();
    $pdf->SetFont('helvetica', '', 12);

    $content = 'Привет, это динамический PDF, сгенерированный в WordPress!';
    $pdf->Write(0, $content);

    // Вывод PDF в браузер
    $pdf->Output('wpdirect_sample.pdf', 'I');
    exit;
}

add_action('wp_ajax_wpdirect_generate_pdf', 'wpdirect_generate_pdf');
add_action('wp_ajax_nopriv_wpdirect_generate_pdf', 'wpdirect_generate_pdf');

Этот код создаёт простую PDF-страницу и отдаёт её пользователю. Подключение к WordPress происходит через AJAX, что позволяет запускать генерацию без перезагрузки страницы.

Как подключить TCPDF в WordPress

1. Скачайте TCPDF с официального сайта и положите папку в директорию wp-content/plugins/tcpdf.
2. Подключите библиотеку в вашем плагине или теме, как показано в примере.
3. Используйте функции TCPDF для создания контента, стилей, таблиц и изображений в PDF.

Динамическое создание PDF с данными пользователя

Частая задача — сгенерировать PDF с персонализированной информацией. Например, данные о заказе или заполненной форме.

Пример кода для вставки пользовательских данных в PDF:

function wpdirect_generate_user_pdf() {
    if (!is_user_logged_in()) {
        wp_die('Доступ запрещён');
    }

    require_once(ABSPATH . 'wp-content/plugins/tcpdf/tcpdf.php');
    $user = wp_get_current_user();

    $pdf = new TCPDF();
    $pdf->AddPage();
    $pdf->SetFont('helvetica', '', 12);

    $content = "PDF для пользователя: " . $user->display_name . "\n";
    $content .= "Email: " . $user->user_email . "\n";
    $content .= "Дата регистрации: " . $user->user_registered;

    $pdf->Write(0, $content);
    $pdf->Output('user_info.pdf', 'I');
    exit;
}
add_action('wp_ajax_wpdirect_generate_user_pdf', 'wpdirect_generate_user_pdf');

Такой подход позволяет создавать уникальные документы для каждого пользователя по запросу.

Интеграция с WooCommerce: автоматическая генерация счетов в PDF

Для интернет-магазинов на WooCommerce актуальна задача генерации счетов и накладных прямо из заказа.

Рассмотрим базовый пример, как привязать генерацию PDF к событию оформления заказа:

add_action('woocommerce_order_status_completed', 'wpdirect_generate_invoice_pdf');
function wpdirect_generate_invoice_pdf($order_id) {
    require_once(ABSPATH . 'wp-content/plugins/tcpdf/tcpdf.php');
    $order = wc_get_order($order_id);

    $pdf = new TCPDF();
    $pdf->AddPage();
    $pdf->SetFont('helvetica', '', 12);

    $content = "Счет по заказу №" . $order->get_order_number() . "\n";
    $content .= "Клиент: " . $order->get_billing_first_name() . " " . $order->get_billing_last_name() . "\n";
    $content .= "Дата: " . $order->get_date_created()->date('d.m.Y') . "\n\n";

    foreach ($order->get_items() as $item) {
        $content .= $item->get_name() . ' — ' . $item->get_quantity() . ' шт.\n';
    }

    $pdf->Write(0, $content);

    $upload_dir = wp_upload_dir();
    $filepath = $upload_dir['basedir'] . '/invoices/invoice_' . $order_id . '.pdf';
    $pdf->Output($filepath, 'F');

    // Можно прикрепить PDF к письму с подтверждением заказа или сохранить в мета
}

Этот код создаёт PDF-файл счета и сохраняет его в папку загрузок. Далее вы можете отправить файл клиенту по почте или предоставить для скачивания.

Советы по работе с PDF в WordPress

  • Обязательно проверяйте права доступа при генерации PDF с персональными данными.
  • Кэшируйте сгенерированные PDF, если они не меняются часто, чтобы снизить нагрузку на сервер.
  • При больших объёмах данных используйте асинхронную генерацию через WP Cron или внешние сервисы.
  • Следите за обновлениями библиотек и совместимостью с вашей версией PHP и WordPress.

Заключение

Создание динамических PDF-файлов в WordPress — мощный инструмент для расширения функционала сайта. Используйте готовые плагины для простых задач и библиотеки вроде TCPDF для гибких и комплексных решений. Это позволит автоматизировать документооборот и повысить удобство для пользователей.

Для удобной работы с плагином Clearfy Pro и другими решениями посетите официальный сайт WPSHOP.

Как создать автоматические заголовки для постов в WordPress
22.12.2025
Как использовать WPCommunity для создания социальной сети на WordPress
29.01.2026
WooCommerce: автоматическое удаление отменённых заказов по расписанию
09.06.2026
Как добавить собственные типы постов в WordPress
07.11.2025
Как автоматически отключать обновления тем в WordPress
25.03.2026