├── screen-1.png ├── screen-2.png ├── screen-mob.png ├── README.md └── yourtempalte ├── css └── invoice.css └── viewinvoice.tpl /screen-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shionphan/whmcs-invoice-tpl/HEAD/screen-1.png -------------------------------------------------------------------------------- /screen-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shionphan/whmcs-invoice-tpl/HEAD/screen-2.png -------------------------------------------------------------------------------- /screen-mob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shionphan/whmcs-invoice-tpl/HEAD/screen-mob.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | WHMCS invoice template 2 | === 3 | 4 | The invoice template in WHMCS is too ugly. 5 | 6 | ## USAGE 7 | 8 | * Replace the file `viewinvoice.tpl` in your template folder; 9 | * To ensure that the CSS file `invoice.css` reference path is correct; 10 | * ** Base on bootstrap style **; 11 | * Compatible with WHMCS6 and WHMCS7, because of Invoice template is relatively simple, if you want to be compatible with WHMCS5, you should only need to modify some main variables; 12 | 13 | Enjoy! 14 | 15 | ## DEMO 16 | 17 |  18 | 19 |  20 | 21 |  22 | 23 | ## License 24 | 25 | The MIT License (MIT) -------------------------------------------------------------------------------- /yourtempalte/css/invoice.css: -------------------------------------------------------------------------------- 1 | /** 2 | @author https://github.com/shionphan 3 | */ 4 | .inv-cont{ 5 | max-width: 928px; 6 | background: #fff; 7 | border-radius: 3px; 8 | border: 1px dotted #ccc; 9 | margin: 1em auto; 10 | padding: 1.5em; 11 | } 12 | .inv-cont h1{ 13 | margin:0 0 20px; 14 | } 15 | .inv-paystatus{ 16 | padding: 5px 10px; 17 | color:#fff; 18 | font-size: 20px; 19 | margin-bottom: 10px; 20 | border-radius: 3px; 21 | } 22 | .inv-payment{ 23 | margin:10px auto; 24 | } 25 | .inv-paymathod{ 26 | border: 1px solid #ddd; 27 | margin-top: 10px; 28 | border-radius: 3px; 29 | padding: 10px; 30 | } 31 | @media(min-width:768px){ 32 | .inv-paymathod{ 33 | min-height: 260px; 34 | } 35 | } 36 | .inv-paymathod p{ 37 | font-size: 16px; 38 | text-align: left; 39 | } 40 | .inv-invnum{ 41 | background-color: #ffffff; 42 | border-bottom: 1px dashed #ddd; 43 | } 44 | .inv-paymon{ 45 | font-size: 28px; 46 | color:#2e962c; 47 | } 48 | h2{ 49 | margin:10px auto; 50 | font-size: 18px; 51 | font-weight: bold; 52 | } 53 | .panel{ 54 | border-radius: 0; 55 | } 56 | .panel h2{ 57 | margin:0; 58 | } 59 | .panel .panel-heading{ 60 | border-radius: 0; 61 | } 62 | .inv-company{ 63 | border-bottom: 1px dashed #ddd; 64 | } 65 | .draft { 66 | background-color: #888; 67 | color:#333; 68 | } 69 | .unpaid { 70 | background-color: #cc0000; 71 | } 72 | .paid { 73 | background-color: #779500; 74 | } 75 | .refunded { 76 | background-color: #224488; 77 | } 78 | .cancelled { 79 | background-color: #888; 80 | color:#333; 81 | } 82 | .collections { 83 | background-color: #8a6d03; 84 | } -------------------------------------------------------------------------------- /yourtempalte/viewinvoice.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 |{$total}
29 |{$LANG.invoicesdatecreated}: {$datecreated}
{$LANG.invoicesdatedue}: {$datedue}
{$payto}
39 |
43 | {if $clientsdetails.companyname}{$clientsdetails.companyname}
{/if}
44 | {$clientsdetails.firstname} {$clientsdetails.lastname}
45 | {$clientsdetails.address1}, {$clientsdetails.address2}
46 | {$clientsdetails.country} {$clientsdetails.state} {$clientsdetails.city} {$clientsdetails.postcode}
47 | {if $customfields}
48 | {foreach from=$customfields item=customfield}
49 | {$customfield.fieldname}: {$customfield.value}
50 | {/foreach}
51 | {/if}
52 |
({$datepaid})
69 | {elseif $status eq "Refunded"} 70 || {$LANG.invoicesdescription} | 108 |{$LANG.invoicesamount} | 109 |
| {$item.description}{if $item.taxed eq "true"} *{/if} | 115 |{$item.amount} | 116 |
| {$LANG.invoicessubtotal}: | 120 |{$subtotal} | 121 |
| {$taxrate}% {$taxname}: | 125 |{$tax} | 126 |
| {$taxrate2}% {$taxname2}: | 131 |{$tax2} | 132 |
| {$LANG.invoicescredit}: | 136 |{$credit} | 137 |
| {$LANG.invoicestotal}: | 140 |{$total} | 141 |
| {$LANG.invoicestransdate} | 158 |{$LANG.invoicestransgateway} | 159 |{$LANG.invoicestransid} | 160 |{$LANG.invoicestransamount} | 161 |
| {$transaction.date} | 167 |{$transaction.gateway} | 168 |{$transaction.transid} | 169 |{$transaction.amount} | 170 |
| {$LANG.invoicestransnonefound} | 174 ||||
| {$LANG.invoicesbalance}: | 178 |{$balance} | 179 |||