[Share] Hook Unpaid Invoices Sidebar Tool


IDreg.Net

Expert 2.0
Hanya mau berbagi sedikit hasil oprek2 hook, barangkali ada yang perlu :36:

hook ini berfungsi untuk menampilkan jumlah total invoice yang belum di bayar di sidebar, dan mengarahkan link ke bayar semua tangihan dlm 1 invoice ( Masspay))
  • sidebar ini hanya akan muncul ketika client memiliki Unpaid Invoices
  • sidebar ini tidak akan muncul jika client tidak memiliki tagihan Invoices
  • hanya muncul saat client login, dan tampil di setiap halaman yg berhubungan dgn clientarea
  • sudah mendukung fitur auto translate di semua bahasa, termasuk bhs indonesia
  • Tested WHMCS V7.6.2 dan V7.7.1
  • Untuk V6 blm di coba yah, klo ada error di v6 kabarin di thered ini biar kita perbaiki sama2
4460
PHP:
<?php
use WHMCS\View\Menu\Item as MenuItem;
# Unpaid Invoices Sidebar Tool
# Written by IDreg Team
add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar){
if (App::getCurrentFilename() == 'clientarea') {
    GLOBAL $smarty;
    $dueinvoices = $smarty->getTemplateVars()['clientsstats']['numdueinvoices'];
    $duebalance = $smarty->getTemplateVars()['clientsstats']['dueinvoicesbalance'];
    $client = Menu::context("client");
    if (!is_null($client) && $dueinvoices > 0) {
    $primarySidebar->addChild('My Invoices Summary', array('label' => Lang::trans("invoicesdue"),'order' => 1,'icon' => 'fa-money-bill-wave'));
    $primarySidebar->getChild('My Invoices Summary')
    ->setBodyHtml('<div class="text-center">'.sprintf(Lang::trans("invoicesduemsg"),$dueinvoices,$duebalance).'</div>')
    ->setFooterHtml('<div style="text-align:center;"><a href="clientarea.php?action=masspay&all=true" data-toggle="tooltip" title="'.Lang::trans('masspayintro').'" class="btn btn-danger">'.$duebalance.'</a></div>');
    }
}
});
cara penggunaan atau penerapan
  • buat unpaid_invoices.php di /includes/hooks/
  • paste code di atas
  • atau download dan upload file di attachement Ektrak ke /includes/hooks/
Semoga berguna buat semua, indah nya berbagi bersama, biar jadi berkah.. :36:

Salam
 

Attachments

Last edited:
Hanya mau berbagi sedikit hasil oprek2 hook, barangkali ada yang perlu :36:

hook ini berfungsi untuk menampilkan jumlah total invoice yang belum di bayar di sidebar, dan mengarahkan link ke bayar semua tangihan dlm 1 invoice ( Masspay))
  • sidebar ini hanya akan muncul ketika client memiliki Unpaid Invoices
  • sidebar ini tidak akan muncul jika client tidak memiliki tagihan Invoices
  • hanya muncul saat client login, dan tampil di setiap halaman yg berhubungan dgn clientarea
  • sudah mendukung fitur auto translate di semua bahasa, termasuk bhs indonesia
  • Tested WHMCS V7.6.2 dan V7.7.1
  • Untuk V6 blm di coba yah, klo ada error di v6 kabarin di thered ini biar kita perbaiki sama2
View attachment 4460
PHP:
<?php
use WHMCS\View\Menu\Item as MenuItem;
# Unpaid Invoices Sidebar Tool
# Written by IDreg Team
add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar){
if (App::getCurrentFilename() == 'clientarea') {
    GLOBAL $smarty;
    $dueinvoices = $smarty->getTemplateVars()['clientsstats']['numdueinvoices'];
    $duebalance = $smarty->getTemplateVars()['clientsstats']['dueinvoicesbalance'];
    $client = Menu::context("client");
    if (!is_null($client) && $dueinvoices > 0) {
    $primarySidebar->addChild('My Invoices Summary', array('label' => Lang::trans("invoicesdue"),'order' => 1,'icon' => 'fa-money-bill-wave'));
    $primarySidebar->getChild('My Invoices Summary')
    ->setBodyHtml('<div class="text-center">'.sprintf(Lang::trans("invoicesduemsg"),$dueinvoices,$duebalance).'</div>')
    ->setFooterHtml('<div style="text-align:center;"><a href="clientarea.php?action=masspay&all=true" data-toggle="tooltip" title="'.Lang::trans('masspayintro').'" class="btn btn-danger">'.$duebalance.'</a></div>');
    }
}
});
cara penggunaan atau penerapan
  • buat unpaid_invoices.php di /includes/hooks/
  • paste code di atas
  • atau download dan upload file di attachement Ektrak ke /includes/hooks/
Semoga berguna buat semua, indah nya berbagi bersama, biar jadi berkah.. :36:

Salam
mantab tuan, save dulu, mau coba nanti :D
 
tes di Version: 7.7.1 stuck, client area jadi ga bsa dibuka
 
buat yg msh stuck di clientarea bs kita terapkan di template, di sesuaikan dengan template yg di pakai
Update Modifikasi dr template :
  1. buat file baru alert-invoice.tpl di ==> /templates/nama_template_yg dipakai/includes/
  2. pastekan file berikut pada alert-invoice.tpl yg kita buat td
PHP:
{if $loggedin && $clientsstats.numdueinvoices > 0}
<div class="panel panel-sidebar">
        <div class="panel-heading">
            <h3 class="panel-title">
                <i class="fas fa-money-bill-wave"></i>&nbsp; {$clientsstats.numdueinvoices} {$LANG.invoicesdue}
                <i class="fas fa-chevron-up panel-minimise pull-right"></i>
            </h3>
        </div>
        <div class="panel-body text-center">
            {$LANG.invoicesduemsg|sprintf2:$clientsstats.numdueinvoices} {$clientsstats.dueinvoicesbalance}
        </div>
        <div class="panel-footer clearfix">
            <div class='col-xs-12 text-center'>
            <a class="btn btn-danger" href="clientarea.php?action=masspay&all=true" data-toggle="tooltip" title="{$LANG.masspayintro}">{$clientsstats.dueinvoicesbalance}</a>
            </div>
        </div>
</div>
{/if}
  1. edit di /templates/nama_template_yg dipakai/header.tpl
  2. scroll ke paling bawah sampai ketemu tulisan == > <div class="col-md-3 pull-md-left sidebar">
  3. pastekan kode berikut di bawah nya
PHP:
                {if $templatefile !== 'clientareadomainregisterns' && $templatefile !== 'clientareadomaindns'}
                {include file="$template/includes/alert-invoice.tpl"}
                {/if}
lebih tepat nya begini
PHP:
            <div class="col-md-3 pull-md-left sidebar">
                {if $templatefile !== 'clientareadomainregisterns' && $templatefile !== 'clientareadomaindns'}
                {include file="$template/includes/alert-invoice.tpl"}
                {/if}
                {include file="$template/includes/sidebar.tpl" sidebar=$primarySidebar}
            </div>
6. save & berhasil tp msh ada kendala di /clientarea.php?action=invoices dan clientarea.php?action=masspay&all=true <== jd ada 2
4773
  1. untuk membuat nya jd satu perlu kita tambakan hook pada /includes/hooks/ , contoh hook_invoice.php
  2. pastekan kode ini
PHP:
<?php
use WHMCS\View\Menu\Item as MenuItem;
add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar){
    if (!is_null($primarySidebar->getChild('My Invoices Summary'))) {
        $primarySidebar->removeChild('My Invoices Summary');
    }
});
9. save, sekarang semua sdh berhasil
4774
silahkan di coba implementasikan pada template yang di gunakan
semoga bisa berguna buat semua
* screenshot diatas di ambil dr v7.9 (beta1)
 
Back
Top