强制要求登录才能在 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。 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");