• رفع مشکل عدم نمایش آمار سیستم در مدیریت whmcs نسخه ۸

  • تاریخ انتشار : ۱۳۹۹/۱۱/۰۹
  • تعداد بازدید : 362 بازدید
  • تعداد نظرات : بدون دیدگاه
  • شما چه امتیازی میدهید؟
    1 امتیاز2 امتیاز3 امتیاز4 امتیاز5 امتیاز
    میانگین 5,00 امتیاز، بر اساس 1 رای
    Loading...

رفع مشکل عدم نمایش آمار سیستم در مدیریت whmcs نسخه ۸

در این مقاله قصد داریم با نحوه رفع مشکل عدم نمایش آمار سیستم در مدیریت whmcs نسخه ۸ درخدمت شما باشیم.

همانگونه که اطلاع دارید در whmcs نسخه ۸ برخلاف نسخه های پیشین امکان مشاهده آمار کلی سیستم وجود ندارد، منظور از آمار کلی سیستم موارد زیر میباشد :

  1. تیکت های در انتظار پاسخ
  2. سفارشات معلق
  3. فاکتور های سررسید

برای رفع این مشکل میتوانید از هوک زیر در سیستم خود استفاده کنید.

 

tarh state whmcs8 2   رفع مشکل عدم نمایش آمار سیستم در مدیریت whmcs نسخه 8

 

ابتدا در مسیر زیر یک فایل با نام دلخواه (tarh-state.php) بسازید :

includes > hooks

سپس کد های زیر را در فایل ایجاد شده کپی کنید.

<?php

use WHMCS\Database\Capsule;

add_hook('AdminAreaHeaderOutput', 1, function($vars)
{
    $tarhkar = Capsule::select(Capsule::raw('SELECT value FROM tblconfiguration WHERE setting = "Version" LIMIT 1'))[0]->value;
    if (explode('.', $tarhkar)[0] != '8'): return; endif;
    $showZero = true;

    $ordersTotal = Capsule::select(Capsule::raw('SELECT COUNT(t1.id) AS total FROM tblorders AS t1 LEFT JOIN tblorderstatuses AS t2 ON t1.status = t2.title WHERE t2.showpending = "1"'))[0]->total;
    $invoicesTotal = Capsule::select(Capsule::raw('SELECT COUNT(id) AS total FROM tblinvoices WHERE status = "Unpaid" AND duedate <= CURDATE()'))[0]->total;
    $ticketsTotal = Capsule::select(Capsule::raw('SELECT COUNT(t1.id) AS total FROM tbltickets AS t1 LEFT JOIN tblticketstatuses AS t2 ON t1.status = t2.title WHERE t2.showawaiting = "1" AND merged_ticket_id = "0"'))[0]->total;
    if (!$ordersTotal AND !$invoicesTotal AND !$ticketsTotal): return; endif;
    $notificationsLabel = AdminLang::trans('setup.notifications');
    $orderText = AdminLang::trans('stats.pendingorders');
    $invoiceText = AdminLang::trans('stats.overdueinvoices');
    $ticketText = AdminLang::trans('stats.ticketsawaitingreply');

    if ($ordersTotal OR $showZero)
    {
        $pendingOrdersJS = <<<HTML
        $('#tarhkarfallback').next('ul').append('<li><a href="orders.php?status=Pending" data-toggle="tooltip" data-placement="bottom" title="{$orderText}" data-original-title="{$orderText}" style="word-wrap:break-word"><small><span class="ico-container"><i class="fad fa-shopping-cart"></i></span><span class="tarhkarfallback">{$ordersTotal}</span> {$orderText}</small></a></li>');
HTML;
    }

    if ($invoicesTotal OR $showZero)
    {
        $overdueInvoicesJS = <<<HTML
        $('#tarhkarfallback').next('ul').append('<li><a href="invoices.php?status=Overdue" data-toggle="tooltip" data-placement="bottom" title="{$invoiceText}" data-original-title="{$invoiceText}" style="word-wrap:break-word"><small><span class="ico-container"><i class="fad fa-sack-dollar"></i></span><span class="tarhkarfallback">{$invoicesTotal}</span> {$invoiceText}</small></a></li>');
HTML;
    }

    if ($ticketsTotal OR $showZero)
    {
        $awaitingTicketsJS = <<<HTML
        $('#tarhkarfallback').next('ul').append('<li><a href="supporttickets.php" data-toggle="tooltip" data-placement="bottom" title="{$ticketText}" data-original-title="{$ticketText}" style="word-wrap:break-word"><small><span class="ico-container"><i class="fad fa-question-circle"></i></span><span class="tarhkarfallback">{$ticketsTotal}</span> {$ticketText}</small></a></li>');
HTML;
    }

    return <<<HTML
<script type="text/javascript">
$(document).on('ready', function() {
    $('ul.right-nav').first('li').prepend('<li class="bt has-dropdown"><a id="tarhkarfallback" href="#"><div class="badge-container"><i class="fas fa-exclamation-triangle always"></i><span class="badge"><span class="fas fa-times"></span></span></div><span class="visible-sidebar">&nbsp;{$notificationsLabel}</span></a><ul class="drop-icons"></ul></li>');
    $("*[id=\'tarhkarfallback\']").on("click", function(e) {
        e.preventDefault();
        $(e.currentTarget).parent("li").toggleClass("expanded");
    });
    {$pendingOrdersJS}
    {$overdueInvoicesJS}
    {$awaitingTicketsJS}
    $('#tarhkarfallback').next('ul').css({"width": "350px", "left": "-134px"});
    $('span.tarhkarfallback').css({"font-weight": "700"});
});
</script>
HTML;
});

کدنویسی هوک بگونه ای میباشد که نسخه whmcs را تشخیص داده و باکس اطلاعیه درصورتی نمایش داده میشود که حداقل یک تیکت در انتظار پاسخ و یا یک فاکتور سررسید و یا یک سفارش معلق در سیستم وجود داشته باشد، درغیر این صورت باکس اطلاعیه نمایش داده نمیشود.

امیدواریم مقاله “رفع مشکل عدم نمایش آمار سیستم در مدیریت whmcs نسخه ۸” مورد رضایت شما قرار گرفته باشد.

 

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

متن :
نام :
ایمیل :
وبسایت :

دوازده + 6 =