Respuesta a: Como mostrar el saldo a favor en el panel del cliente

  • Alexis

    Administrador
    04/05/2022 a las 1:59 PM
    439 centavos

    Hola Max, existen dos formas:

    Opción 1: Puedes “quemar” el código directo en tu plantilla donde desees mostrar el saldo. Para eso puedes usar algún código como este de aquí:

    {if $clientsstats.incredit}{$clientsstats.creditbalance}{/if}

    Con este pequeño fragmento lograras mostrar el saldo a favor del cliente. A su alrededor puedes decorarlo como gustes.


    Opcion 2: Otra opción es usar un hook, para eso puedes crear un archivo que se llame por ejemplo saldoafavor.php y lo ubicas en el directorio whmcs/includes/hooks



    Aquí te comparto el código de dicho hook:

    <?php
    use WHMCS\View\Menu\Item as MenuItem;
    use Illuminate\Database\Capsule\Manager as Capsule;
    # Agrega el saldo al sidebar
    add_hook('ClientAreaSecondarySidebar', 1, function(MenuItem $primarySidebar){
    $filename = APP::getCurrentFileName();
    $client = Menu::context("client");
    $clientid = (int) $client->id;
    $action = $_GET['action'];
    $allowed = array('invoices', 'quotes', 'masspay', 'addfunds','');
    if ($filename!=='clientarea' || $clientid===0 || !in_array($action,$allowed)){
    return;
    }
    if ($client->credit <= 0.00) { return; }
    $primarySidebar->addChild('Client-Balance', array(
    'label' => "Monedero Electronico",
    'uri' => '#',
    'order' => '1',
    'icon' => 'fa-money'
    ));
    # Obtiene la moneda
    $getCurrency = Capsule::table('tblcurrencies')->where('id', $client->currency)->get();
    # Obtiene el panel creado.
    $balancePanel = $primarySidebar->getChild('Client-Balance');
    // Mueve el panel al final
    $balancePanel->moveToBack();
    $balancePanel->setOrder(0);
    # Mostramos el saldo
    $balancePanel->addChild('balance-amount', array(
    'uri' => 'clientarea.php?action=addfunds',
    'label' => '<h4 style="text-align:center;">'.$getCurrency['0']->prefix.$client->credit.' '. $getCurrency['0']->suffix.'</h4>',
    'order' => 1
    ));
    $balancePanel->setFooterHtml(
    '
    <i class="fa fa-plus"> Recargar Cuenta
    '
    );
    });

    Espero que te sirva, si tienes dudas dejanos saber