如何在Prestashop中复制生成发票PDF流程?我想使用不同的tpl文件,但其余的应该保持不变。
让我解释一下,我已经做了什么:
已添加到AdminPdfController.php:
public function processGenerateMahnungPdf() {
if (Tools::isSubmit('id_order')) {
$this->generateMahnungPDFByIdOrder(Tools::getValue('id_order'));
} elseif (Tools::isSubmit('id_order_invoice')) {
$this->generateInvoicePDFByIdOrderInvoice(Tools::getValue('id_order_invoice'));
} else {
die(Tools::displayError('The order ID -- or the invoice order ID -- is missing.'));
}}
和
public function generateMahnungPDFByIdOrder($id_order)
{
$order = new Order((int)$id_order);
if (!Validate::isLoadedObject($order)) {
die(Tools::displayError('The order cannot be found within your database.'));
}
$order_invoice_list = $order->getInvoicesCollection();
Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list));
$this->generatePDF($order_invoice_list, PDF::TEMPLATE_MAHNUNG);
}
但它不起作用。它只是不生成PDF。
任何帮助?
更新
我必须包括类:require_once _PS_ROOT_DIR_。 '/classes/pdf/HTMLTemplateMahnung.php';
现在它的工作。谁知道为什么我要这个?我没有看到任何包含Core Files:S
答案 0 :(得分:0)
Pretashop使用文件缓存/ class_index.php来跟踪所需的类。
每次添加新覆盖,甚至是类或控制器时,都需要删除(或重命名)此文件。如果找不到它,Prestashop将重新创建索引集文件夹(类,控制器,覆盖等)中的所有文件。