Showing posts with label WHMCS. Show all posts
Showing posts with label WHMCS. Show all posts

Saturday, April 9, 2022

Print Product Group in WHMCS Invoice Item Description

PRODUCTNAME - Domain (Start Date - End Date)

e.g. Standard - abc.com (04/10/2010 - 03/10/2012)

Need to change it to the following:

PRODUCTNAME - Domain (Start Date - End Date)

PRODUCT DESCRIPTION

e.g. Shared Hosting - Standard - abc.com (04/10/2010 - 03/10/2012)

Method -1: 

Place the following script at the top of your /templates/<templatename>/viewinvoice.tpl:


{php}

foreach ($this->_tpl_vars['invoiceitems'] as $key => $value)

{

$result = mysql_query("SELECT (SELECT name FROM tblproductgroups WHERE gid = tblproducts.id) AS groupname FROM tblproducts WHERE name = '".sanitize(substr($value['description'], 0, strpos($value['description']." - ", " - ")))."'");

$data = mysql_fetch_array($result);

if(mysql_num_rows($result) == 1)

$this->_tpl_vars['invoiceitems'][$key]['description'] = $data['groupname']." - ".$value['description'];

}

{/php}

Now place the following script at the top of your /templates/<templatename>/invoicepdf.tpl:
foreach ($invoiceitems as $key => $value)
{
   $result    = mysql_query("SELECT (SELECT name FROM tblproductgroups WHERE gid = tblproducts.id) AS groupname FROM tblproducts WHERE name = '".sanitize(substr($value['description'], 0, strpos($value['description']." - ", " - ")))."'");
   $data     = mysql_fetch_array($result);

   if(mysql_num_rows($result) == 1)
       $invoiceitems[$key]['description'] = $data['groupname']." - ".$value['description'];
}

Method -2: 
Create a new .php file called invoices_productgroup.php in your action hooks directory (/includes/hooks/), and place the following code in it:

<?php
add_hook("InvoiceCreationPreEmail", 1, "invoice_productgroup");

function invoice_productgroup($vars)
{
   $result = select_query("tblinvoiceitems","id,description",array("invoiceid" => $vars['invoiceid']));

   while($data = mysql_fetch_array ($result))
   {
       $result2 = full_query("SELECT (SELECT name FROM tblproductgroups WHERE gid = tblproducts.id) AS groupname FROM tblproducts WHERE name = '".sanitize(substr($data['description'], 0, strpos($data['description']." - ", " - ")))."'");
       $data2   = mysql_fetch_array($result2);

       if(mysql_num_rows($result2) == 1)
           update_query("tblinvoiceitems", array("description" => $data2['groupname']." - ".$data['description']), array("id" => $data['id']));
   }
}
?>
This will add the product group (if applicable) in front of the description from a new invoice.

Tuesday, June 1, 2021

Bkash Merchant QR Code on WHMCS invoice

At the line number 104 of invoicepdf.tpl

 # QR Payment Code

$qrFilename = 'QR_INVOICE.png';

if (file_exists(ROOTDIR . '/assets/img/QR_INVOICE.png')) {

    $qrFilename = 'QR_INVOICE.png';

} elseif (file_exists(ROOTDIR . '/assets/img/logo.jpg')) {

    $qrFilename = 'logo.jpg';

}

$pdf->Image(ROOTDIR . '/assets/img/' . $qrFilename, 120, 110, 75);


$pdf->Ln(10);

Extract Domain from email in Excel or Google sheet

  =TEXTAFTER( A2 , "@") or, =MID(A1, FIND("@", A1) + 1, LEN(A1) - FIND("@", A1))