使用 whmcs 6.x 的新钩子实现客户余额显示

2016年5月13日 分类: PHP, whmcs (288 个脚步)

自从 whmcs 推出 6.0 版本之后,新加入了很多的功能,其中有一项就是加入了菜单/边栏的钩子。

这样的话,我们修改起边栏变得简单很多,再也不用动用到 javascript 或者修改模板就能实现某些功能了

我们可以使用这个  ClientAreaSecondarySidebar 钩子做到很多事情。

然后因为 whmcs 6.0 最新自带的 Six 主题的客户余额提醒非常不好找,而且还要点击一下才能看到具体数值。

我们就可以先那这个来开刀。

首先我们要到 include/hooks 这个文件夹创建一个新的 php 文件。名字随意,然后输入以下内容

<?php

use WHMCS\View\Menu\Item as MenuItem;
if (App::getCurrentFilename() == 'clientarea' && $_SESSION['uid']) {
	add_hook('ClientAreaPrimarySidebar', 10, function(MenuItem $primarySidebar) {
		$client = getClientsDetails();
		if($client) {
			$newMenu = $primarySidebar->addChild(
				'account-info',
				array(
					'name' => 'Home',
					'label' => '账户详情',
					'order' => 10,
					'icon' => 'fa-balance-scale',
				)
			);
			$newMenu->addChild(
				'account_balance',
				array(
					'name' => 'account_balance',
					'label' => "当前余额: ".formatCurrency($client['credit']),
					'order' => 0,
				)
			);
		}
	});
}

系统内部的执行顺序大概为:

  • 当执行到菜单/边栏初始化时,执行我们所加入的钩子。
  • 判断当前用户是不是登录
  • 在主边栏后加入一个<账户详情>模块 
  • <账户详情>在模块内加入<当前余额>子菜单
  • 待全部初始化完毕后,模板系统输出,显示界面

最后的结果,如下图

这样就不用大费周章的到处找余额在哪里啦~~

最后一点,必须要加上判断用户是否已经登录,否则你就会发现几分钟后整个系统都会慢起来。

使用 whmcs 6.x 的新钩子实现客户余额显示 【声明】本文 使用 whmcs 6.x 的新钩子实现客户余额显示 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2016/05/show-banlance-in-whmcs-6-x-new-hooks/ , 转载请保留本声明!

标签: , , ,
2 条评论
  • 为什么账户信息和余额显示乱码 不支持中文

    • 你先要确认的文件编码是什么 有可能是你用的跟网站编码不一样

你必须要启用 Javascript