El problema: Resulta que uno de nuestros clientes en la empresa indicaba hace unos días que no podía salía ninguna opción para agregar saldo en la página. por lo tanto hice este plugin basado en uno viejo que había en internet.
el siguiente código debes pegarlo con el nombre: agregar_fondos.php en includes/hooks de tu whmcs.
<?php
/**
* Mostrar saldo en el area de clientes
* @Autor sentq de WHMCS
* @ Modificado por JesusSuarz de Foros Hosting!
* @link www.cangurohosting.com
* @Para versión WHMCS v7.10.2+
*/
use WHMCS\View\Menu\Item as MenuItem;
use Illuminate\Database\Capsule\Manager as Capsule;
# Funcion para agregar nuevo bloque dentro del área de clientes
add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar){
$filename = basename($_SERVER['REQUEST_URI'], ".php");
$parseFile = explode('.', $filename);
$client = Menu::context("client");
$clientid = intval($client->id);
if ($parseFile['0']!=='clientarea' || $clientid===0){
return;
}
$primarySidebar->addChild('Client-Balance', array(
'label' => "Tu saldo",
'order' => '1',
'icon' => 'fas fa-sack'
));
# Obtener divisa/moneda
$getCurrency = Capsule::table('tblcurrencies')->where('id', $client->currency)->get();
# Recupera el panel que acabamos de crear.
$balancePanel = $primarySidebar->getChild('Client-Balance');
// Mueve el panel al final del orden de clasificación para que siempre se muestre
// como último panel de la barra lateral.
$balancePanel->moveToBack();
$balancePanel->setOrder(0);
$fundsenabled = Capsule::table('tblconfiguration')->where('setting','AddFundsEnabled')->value('value');
//si agregar fondos esta encendido entonces se muestra de lo contrario no
if ($fundsenabled == "on") {
//si el cliente tiene saldo de 0 entonces se coloca en rojo
if ($client->credit == '0.00') {
$text_color = 'text-danger';
$no_hay_fondos = '<p class="text-center text-muted">No tienes saldo en tu cuenta. <i class="fas fa-question-circle float-non" data-html="true" data-toggle="tooltip" title="" data-placement="bottom" data-original-title="No tiene fondos agregados en su cuenta, si desea que sus facturas se paguen automáticamente, por favor añada saldo y este mensaje se eliminara de inmediato."></i></p>';
}//de lo contrario se coloca en azul
else {
$text_color = 'text-primary';
}
# Agregar Bloque
$balancePanel->addChild('balance-amount', array(
'label' => '<h3 class="text-center text-none m-1 '.$text_color.'">'.$getCurrency['0']->prefix.$client->credit.' '. $getCurrency['0']->suffix.'</h3> '.$no_hay_fondos.'',
'order' => 1
));
$balancePanel->setFooterHtml(
'<a href="clientarea.php?action=addfunds" class="block-btn btn btn-success btn-sm ">
<i class="fa fa-plus"></i> Agregar Fondos</a>
<style>
.block-btn {width: 100%;}
div#Primary_Sidebar-Client-Balance-balance-amount:hover {color: initial !important;}
.float-non {float: none !important;}</style>'
);
}
});
Que hace? algunas características agregadas son:
- agrega un bloque de tipo "panel" en la barra lateral izquierda.
- el hook se oculta si está desactivado el agregar fondos en tu whmcs.
- agrega un mensaje para notificar que no tiene saldo o está en 0 la cuenta.
- sale un mensajito en rojo notificando que debería agregar saldo.
- agrega un botón con el width 100%.
- si el cliente tiene saldo el mensaje se quita y lo coloca en color azulito.
- agrega un icono con un tooltip botom donde agrega información adicional cuando el cliente no tiene saldo.