WooCommerce: автоматическая отправка счетов-фактур по email покупателям

Проблема: отсутствие автоматической отправки счетов-фактур в WooCommerce

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

Диагностика проблемы

Чтобы убедиться, что счета-фактуры не отправляются автоматически, выполните следующие шаги:

  • Оформите тестовый заказ в магазине.
  • Проверьте почту покупателя — отсутствует письмо с вложенным счетом-фактурой.
  • Проверьте настройки WooCommerce и установленных плагинов: нет встроенной функции отправки PDF-счетов.

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

1. Установка плагина для генерации счетов-фактур

Рекомендуется использовать WooCommerce PDF Invoices & Packing Slips. Он позволяет автоматически создавать PDF-счета и прикреплять их к письмам WooCommerce.

2. Настройка плагина для автоматической отправки

  1. Установите и активируйте плагин.
  2. Перейдите в WooCommerce > PDF Invoices.
  3. Включите опцию Attach to emails и выберите, к каким письмам прикреплять счет (обычно – «Новый заказ» и «Завершенный заказ»).
  4. Настройте шаблон счета, если необходимо.

3. Добавление пользовательского кода для кастомизации отправки

Если нужно отправлять счет только после определенного статуса заказа, добавьте следующий код в functions.php вашей темы или в плагин-сниппет:

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

    // Получаем объект плагина PDF Invoices
    if (!class_exists('WooCommerce_PDF_Invoices')) return;
    $pdf_invoice = WooCommerce_PDF_Invoices::instance();

    // Генерируем PDF счет
    $pdf_path = $pdf_invoice->get_invoice_pdf($order);
    if (!$pdf_path) return;

    // Отправляем письмо с вложением
    $mailer = WC()->mailer();
    $email = $mailer->emails['WC_Email_Customer_Completed_Order'];
    if ($email) {
        $email->attachments[] = $pdf_path;
        $email->trigger($order_id);
        // Удаляем вложение из массива, чтобы не повлиять на другие письма
        array_pop($email->attachments);
    }
}

Проверка результата после внедрения

  1. Оформите новый тестовый заказ и переведите его статус в «Завершен».
  2. Проверьте почтовый ящик покупателя — должно прийти письмо с вложенным PDF-счетом.
  3. Откройте PDF, убедитесь, что данные заказа корректны.

Частые ошибки и их исправление

  • Счет не прикрепляется к письму: проверьте, активирован ли плагин WooCommerce PDF Invoices & Packing Slips и включена ли опция прикрепления к нужным письмам.
  • Функция get_invoice_pdf не работает: возможно, в плагине изменилась реализация. Обратитесь к документации плагина или обновите его.
  • Письмо не отправляется после смены статуса: убедитесь, что хук woocommerce_order_status_completed срабатывает, и нет конфликтов с другими плагинами.
  • Проблемы с кодировкой или отображением PDF: настройте шаблон счета в плагине, проверьте наличие шрифтов и правильность данных.

Практические советы по безопасности и производительности

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

Сравнение подходов к автоматической отправке счетов-фактур в WooCommerce

МетодПлюсыМинусыРекомендуется для
Плагин WooCommerce PDF Invoices & Packing SlipsБыстрая установка, готовый функционал, шаблоныМожет перегружать сервер при большом объеме заказовМалые и средние магазины
Кастомный код с использованием сторонних библиотек PDFГибкая кастомизация, оптимизация под задачиТребует навыков разработки и поддержкиКрупные проекты с уникальными требованиями
Комбинированный подход (плагин + кастомизация)Баланс простоты и гибкостиНеобходима техническая поддержкаБольшинство магазинов с нестандартными потребностями
Автоматизация создания Sitemap в WordPress: практические решения и примеры
09.11.2025
Как решить проблему перезагрузки и зависания блоков Gutenberg в WordPress
08.12.2025
WooCommerce: автоматическое удаление неактивных корзин по срокам через код
24.06.2026
Как создать свой плагин для WordPress с использованием AI
30.11.2025
Как создать автоматический генератор описаний для товаров WordPress с помощью AI
28.01.2026