问题描述
我想限制两个页面,如果用户想看到这个页面,重定向到登录页面。
我用这段代码创建了钩子文件(includes/hooks/disao.PHP)
<?PHP
if (!defined("WHMCS"))
die("This file cannot be accessed directly");
function hook_ForceEveryonetoLogin($vars) {
$client = Menu::context('client');
$validpages = array("login","dologin","clientarea","pwreset","contact","index");
if (!$client && !in_array($vars['filename'],$validpages)) {
header("Location: login.PHP");
exit;
}
}
add_hook("ClientAreaPage",1,"hook_ForceEveryonetoLogin");
但此代码不适用于 whmcs 8.1,仅适用于 whmcs 7.10。 Noice : 想要限制页面 : Cart and Store
解决方法
钩子的 $vars
数组参数有 loggedin
键来检查当前用户是否登录,代码更新:
<?php
if (!defined("WHMCS")) {
die("This file cannot be accessed directly");
}
function hook_ForceEveryoneToLogin($vars) {
$validPages = ["login","dologin","clientarea","pwreset","contact","index"];
if (!$vars['loggedin'] && !in_array($vars['filename'],$validPages)) {
header("Location: login.php");
exit();
}
}
add_hook("ClientAreaPage",1,"hook_ForceEveryoneToLogin");