Автоматическое создание и отправка PDF счетов в WordPress при оформлении заказа

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

Почему важно автоматизировать создание PDF счетов в WordPress

Ручное создание счетов занимает много времени и увеличивает риск ошибок. Автоматизация позволяет:

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

Для сайтов на WordPress с WooCommerce это особенно актуально, так как платформа широко используется для интернет-магазинов различного масштаба.

Готовые плагины для создания PDF счетов и их преимущества

Существует множество плагинов, которые делают процесс генерации и отправки счетов простым. Рассмотрим несколько популярных решений:

WooCommerce PDF Invoices & Packing Slips

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

Преимущества:

  • Автоматическое добавление счетов к email;
  • Поддержка шаблонов и кастомизации;
  • Простая установка и настройка.

WPShop: интеграция с WPGPT и Clearfy Pro

Если вы используете плагины из экосистемы WPSHOP, например, Clearfy Pro, вы можете дополнительно оптимизировать процесс отправки счетов и управление email-рассылками, используя их функционал для автоматизации и улучшения производительности.

Создание PDF счета программно: пример кода

Если вы хотите реализовать кастомное решение без плагинов, можно использовать библиотеку TCPDF или Dompdf. Рассмотрим пример с Dompdf для генерации счета и отправки его по email при смене статуса заказа на "завершен".

add_action('woocommerce_order_status_completed', 'wporder_generate_and_send_pdf_invoice');
function wporder_generate_and_send_pdf_invoice($order_id) {
    if (!$order_id) return;
    
    $order = wc_get_order($order_id);
    
    if (!$order) return;

    // Подключаем Dompdf
    require_once 'path-to/dompdf/autoload.inc.php';
    
    $dompdf = new Dompdf\Dompdf();

    // Формируем HTML для счета
    $html = '<h1>Счет №' . $order->get_order_number() . '</h1>';
    $html .= '<p>Дата: ' . $order->get_date_created()->date('d.m.Y') . '</p>';
    $html .= '<p>Клиент: ' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name() . '</p>';
    $html .= '<table border="1" cellspacing="0" cellpadding="5">';
    $html .= '<tr><th>Товар</th><th>Количество</th><th>Цена</th></tr>';

    foreach ($order->get_items() as $item) {
        $product_name = $item->get_name();
        $qty = $item->get_quantity();
        $total = wc_price($item->get_total());
        $html .= "<tr><td>" . $product_name . "</td><td>" . $qty . "</td><td>" . $total . "</td></tr>";
    }

    $html .= '</table>';
    $html .= '<p>Итого: ' . $order->get_formatted_order_total() . '</p>';

    $dompdf->loadHtml($html);
    $dompdf->setPaper('A4', 'portrait');
    $dompdf->render();

    $pdf_output = $dompdf->output();

    $upload_dir = wp_upload_dir();
    $pdf_path = $upload_dir['basedir'] . '/invoices/invoice-' . $order_id . '.pdf';
    if (!file_exists(dirname($pdf_path))) {
        wp_mkdir_p(dirname($pdf_path));
    }
    file_put_contents($pdf_path, $pdf_output);

    // Отправка письма с вложением
    $to = $order->get_billing_email();
    $subject = 'Ваш счет №' . $order->get_order_number();
    $message = 'Здравствуйте, во вложении ваш счет по заказу.';
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers, array($pdf_path));
}

Этот код привязывается к событию изменения статуса заказа на "завершен", генерирует PDF счет и отправляет его клиенту на email.

Рекомендации по безопасности и производительности

При реализации генерации PDF самостоятельно важно учитывать:

  • Безопасность хранения файлов — создавайте папки с правильными правами доступа и не размещайте счета в публичных папках без защиты;
  • Оптимизируйте код, чтобы не создавать нагрузку на сервер при массовой генерации;
  • Используйте очередь заданий (cron, WP-Cron) для обработки большого количества заказов;
  • Проверяйте корректность email адресов перед отправкой.

Как интегрировать автоматическую отправку PDF счетов с плагинами WPSHOP

Если вы используете WPShop и его расширения, можно упростить задачу, комбинируя функционал:

  • Clearfy Pro для оптимизации email и кэширования, чтобы письма отправлялись без задержек;
  • Expert Review для сбора отзывов вместе с счетами;
  • WPRemark для автоматизации комментариев и уведомлений.

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

Подведение итогов и дополнительные советы

Автоматическое создание и отправка PDF счетов — это не только удобство, но и залог прозрачности для клиентов и надежности для бизнеса. Для реализации можно использовать как готовые плагины, так и собственные решения на PHP с библиотеками Dompdf или TCPDF.

Важно тестировать систему на разных этапах, чтобы счета корректно формировались, отправлялись и сохранялись. Рекомендуется также создавать резервные копии документов и использовать инструменты аналитики для контроля эффективности.

Для дополнительной автоматизации обратите внимание на плагины из WPSHOP, которые помогут упростить интеграцию и расширить функционал вашего интернет-магазина на WordPress.

Автоматическое создание отчёта по просмотрам и активности пользователей в WordPress
03.01.2026
Как создать автоматическую отправку email при изменении статьи в WordPress
19.12.2025
Автоматизация сохранения черновиков WordPress: лучшие практики и примеры кода
18.11.2025
WooCommerce: как отключить автообновление платежных методов по времени
03.05.2026
Как отключить автообновление плагинов WordPress
12.03.2026