<?php
if (!defined("WHMCS")) {
die("This file cannot be accessed directly");
}
use WHMCS\Database\Capsule;
add_hook('ClientAreaPage', 1, function($vars) {
// Verifique se o usuário está logado
if (isset($_SESSION['uid'])) {
// Obtenha o ID do usuário
$userId = (int) $_SESSION['uid'];
// Verifique se já redirecionou após o login
if (!isset($_SESSION['redirected_after_login'])) {
// Consulta para obter a fatura mais vencida do usuário logado
$invoice = Capsule::table('tblinvoices')
->where('userid', $userId)
->where('status', 'Unpaid')
->where('duedate', '<', date('Y-m-d'))
->orderBy('duedate', 'asc')
->first();
// Verifique se há uma fatura vencida
if ($invoice) {
$invoiceId = $invoice->id;
$urlContainsInvoiceId = strpos($_SERVER['REQUEST_URI'], ''.$invoiceId) !== false;
// Verifique se a página atual não contém o ID da fatura
if (!$urlContainsInvoiceId) {
$url = 'viewinvoice.php?id=' . $invoiceId;
$_SESSION['redirected_after_login'] = true;
header('Location: ' . $url);
exit;
}
}
}
}
});
?>
Segue uma outra versão do hook desenvolvido pelo @DBPixel, onde nessa versão ele redireciona o usuário apenas uma vez (por sessão) para a fatura vencida, e não "prende" o usuário nessa fatura até pagá-la.