强制要求登录才能在 whmcs 8.1 中显示购物车和商店页面

force require login to show cart & store pages in whmcs 8.1

我想限制两个页面,如果用户想看到这个页面,重定向到登录页面。

我用这段代码创建挂钩文件 (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。 注意:想要限制页面:购物车和商店

钩子的 $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");