Jamesinvoicing for WHMCS - v2.0.5

1. cPanel > File Manager > open your WHMCS folder (where viewinvoice.php is).
2. Upload this ZIP and Extract it there. Allow it to overwrite files.
   (Settings, keys and invoices are kept - they live in the WHMCS database.)
3. WHMCS Admin > System Settings > Payment Gateways > Jamesinvoicing:
   paste API Key, API Secret and Merchant ID from Jamesinvoicing
   (Settings > API Keys). Save.
4. Open an unpaid invoice. Customers see "Pay with Bitcoin & Crypto",
   get the invoice by email, and are taken to the payment page with QR code.

Older "paycryptohost" installs: this package replaces paycryptohost.php with
a bridge to the new module, so invoices on the old gateway work too.
Paid status: the invoice is marked Paid automatically when the customer
(or you) opens it after the blockchain confirms. For instant updates, put
https://YOUR-WHMCS/modules/gateways/callback/jamesinvoicing.php
as the Webhook URL of this API key in your Jamesinvoicing dashboard.
If anything fails, the red box shows the exact reason and
WHMCS > System Logs > Gateway Log has details.

What's new in v2.0.5
- Auto-sync: invoices are marked Paid automatically after blockchain
  confirmation - on every WHMCS cron run, when an admin opens an invoice,
  order or the dashboard, and when the client opens the invoice. This works
  even if Cloudflare blocks the payment notification.
- WHMCS then sends its normal admin "payment received" email and paid PDF.
- Each invoice now tells Jamesinvoicing the exact WHMCS callback address, so
  notifications are never sent to your WordPress site by mistake.
- New file: includes/hooks/jamesinvoicing.php (extract the ZIP into the
  WHMCS root folder, e.g. public_html/billing, and choose overwrite).
- Optional: in Cloudflare, add a WAF custom rule "URI Path contains
  modules/gateways/callback/jamesinvoicing.php" -> Skip.
