Nach this page, das ist, wie Sie die Rechnung ohne die Notwendigkeit anmelden herunterladen.
Erstellen Sie eine PHP-Datei, sagen wir, gen_invoice_pdf.php, und legen Sie sie in das Root-WHMCs-Verzeichnis.
Fügen Sie diesen Code in die Datei:
<?php
include __DIR__ . '/init.php';
include __DIR__ . '/includes/invoicefunctions.php';
use WHMCS\Auth;
$user = filter_var($_GET['us'], FILTER_SANITIZE_STRING);
$pass = filter_var($_GET['pw'], FILTER_SANITIZE_STRING);
$id = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
$authAdmin = new Auth;
if ($authAdmin->getInfobyUsername($user) && $authAdmin->comparePassword($pass)) {
$isValid = true;
} else {
$isValid = false;
}
if (!$isValid) {
die('Access Denied');
}
if ($id > 0) {
$pdfdata = pdfInvoice($id);
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=invoice_$id.pdf");
echo $pdfdata;
}
Rechnung id herunter: 5, besuchen Sie die URL:
http://whmcs-example.com/gen_invoice_pdf.php?id=5&us=myuser&pw=mypass
Hinweis: Dies wird zu einem zugänglich kennt die URL können Sie die Seite akzeptieren Verbindungen von bestimmten IP-Adresse, zum Beispiel.
Update:
Added WHMCS Admin-Authentifizierung funktioniert nur für WHMCS> = 5.3.9, überprüfen: Admin Password Hashing.
Es scheint gut zu funktionieren. Aber ich möchte einige Schutzmaßnahmen in diesen Code einfügen, da er für jeden zugänglich sein kann. Es ist möglich, meinen Admin-Benutzer zu authentifizieren und mit Authentifizierungserfolg erhalten Sie die pdfdata? Also die URL wird so etwas wie http://whmcs-example.com/gen_invoice_pdf.php?us=[username];pw=[md5password];id=[idinvoice] – Bruno
Sie meinen WHMCS admin user? oder ein anderer Systembenutzer? – wesamly
Exacly, WHMCS Admin Benutzer. Ähnlich der API von WHMCS, wenn Sie einen externen Anruf erstellen. – Bruno