使用 WooCommerce PDF 发票和装箱单通过 PHP 生成并获取发票 PDF

Generate and get invoice PDF via PHP with WooCommerce PDF Invoices & Packing Slips

我想要的

我想通过 PHP 脚本生成 PDF 发票并将其存储到特定位置(可能是 .php 文件旁边的文件夹:"invoices/2020-12-29_invoices.pdf") .我有一组订单 ID,我想从中获取 PDF(例如:array('123132','12321',...))。

如何通过 Wp-Admin 完成

在管理面板中,有人可以使用 WooCommerce->PDF 发票中的下拉菜单“PDF 发票”创建发票 PDF,然后单击按钮,为所选订单生成以下示例 link:

https://www.example.com/wp-admin/admin-ajax.php?action=generate_wpo_wcpdf&document_type=invoice&order_ids=123132x12321&_wpnonce=3fnonce29

link 包含应生成 PDF 的订单 ID 和一个 _wpnonce。 link 本身是一个 PDF 文件。

我为什么挣扎

大部分是通过 jQuery、ajax 和人工操作完成的,但我想通过 php 自动完成订单 ID 列表.

我的发现

大概wp_create_nonce('generate_wpo_wcpdf')有用

我使用的插件

如果你想在代码中创建 PDF,你可以这样做:

$invoice = wcpdf_get_document( 'invoice', $order, true );
$pdf_data = $invoice->get_pdf();

然后您可以使用 PDF 数据保存到文件(file_put_contents 等)

如果你想使用admin-ajax link,你可以这样创建随机数:

wp_nonce_url( admin_url( 'admin-ajax.php?action=generate_wpo_wcpdf&template_type=invoice&order_ids=' . $list_of_order_ids ), 'generate_wpo_wcpdf' )