[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

  • unpaid_invoices.zip
    729 bytes · Views: 8
Last edited:

Najamudin

Apprentice 2.0
Verified Provider
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
 

dhyhost

Web Hosting Service
The Warrior
Verified Provider
tes di Version: 7.7.1 stuck, client area jadi ga bsa dibuka
 

IDreg.Net

Expert 2.0
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)
 

Top