Como el titulo lo dice, les comparto un script que programe para para cerrar completamente WHMCS y usarlo como DASHBOARD.
En otras palabras, siempre fui participe de usar WHMCS como pagina principal, en mi empresa vamos a cambiar esto, puesto a que usaremos un sitio propio que estamos programando basados en el API de WHMCS. La idea era usar el whmcs solo como dashboard o panel de usuario, moverlo a una carpeta por separado, pero los clientes deben realizar los pedidos mediante el sitio web principal y no directamente desde el carro de compras.
Entonces mi script ¿que hace?
- Redirecciona atrás, todas las páginas que no sean: login.php, dologin (pagina de salir), clientarea.php, pwreset.php, register.php, contact.php
- Redirecciona atrás, la página de inicio o homepage (index.php) puesto a que no se necesita, ya que cuando se logean va hacia clientarea.php
- Redirecciona atrás, si no hay ninguna variable get o post añadida para cart.php, en otras palabras debe ser cart.php?var (por ejemplo), de lo contrario redirecciona.
- Redirecciona atrás, si no hay ningún producto o dominio agregado al carrito
- Redirecciona atrás, si no esta logeado, pero si esta logeado entonces si le muestra el carrito. (esto como forma de que los pedidos vengan desde el sitio principal)
Cuando me refiero "redirecciona atrás", quiero decir que si por ejemplo tenemos un dominio llamado empresa-host.com y hemos movido el whmcs a empresa-host.com/whmcs, entonces el script cuando cumpla con alguna de esas funciones redirecciona de empresa-host.com/whmcs/cart.php hacia empresa-host.com/ de esta forma se le daria mayor uso al sitio principal y se usaría el whmcs solo como panel para los clientes.
Ahora para instalar el script, simplemente deben ir a la carpeta de su whmcs/includes/hooks/ y crear un archivo llamado: forceeveryonetologin.php
Luego pegar el siguiente script:
<?php
if (!defined("WHMCS"))
die("This file cannot be accessed directly");
function hook_ForceEveryoneToLogin($vars)
{
$clientID = intval($_SESSION['uid']);
$adminID = intval($_SESSION['adminid']);
// redirect si no es ninguna de las paginas declaradas
if ($adminID === 0) {
if (!in_array($vars['filename'], array(
"login",
"dologin",
"clientarea",
"pwreset",
"register",
"contact"
)) && $clientID === 0 && $pagetemplate == 'knowledgebase') {
header("Location: ../");
exit;
}
}
// redirect si es la home page
if ($vars['templatefile'] == "homepage") {
header("Location: clientarea.php");
exit;
}
// redirect si es el carrito y esta vacio y/o no tiene productos/ servicios añadidos y/o no hay ninguna variable get
global $CONFIG;
if ($vars['filename'] == 'cart') {
// redireccionar si no hay variable get o post
if (count($_GET) == '0' && count($_POST) == '0' && count($_SESSION['cart']['domains']) == '0' && count($_SESSION['cart']['products']) == '0' && empty($vars['client']) ) {
header("Location: ../");
exit;
}
// final
}
}