¡Bienvenido a Foros Hosting ...!

Aquí encontraras una experiencia comunitaria para aprender todo lo relacionado con hosting.

Encuentra soporte en español para: Web Hosting, Servidores Dedicados, Servidores VPS, Clouds, Seguridad, Programación y muchos más.

Obtén más experiencia como Administrador de Sistemas, Crea tu propia empresa de hosting. Comparte tus conocimientos de forma libre.

¡Regístrate ahora y forma parte de nuestra comunidad!

Hook para actualizar moneda VES desde DolarToday.com para WHMCS

JesusSuarez

Jesus Suarez
Miembro del equipo
Administradores
9/22/19
198
96
28
Bogotá - CO
cangurohosting.com
Seguidores
1
Hace un tiempo publiqué el módulo "
Por favor, Acceder o Registro para ver las URLs y el contenido!
" el cual tiene la capacidad de recalcular los precios de WHMCS basándose en el precio de DolarToday.com, el módulo tiene también la capacidad de agregar un porcentaje sobre el valor de dólar por transferencia que publica dolartoday.com.

Ahora he escrito un hook que básicamente haciendo la misma función pero en 1 solo código, el hook se ejecuta diariamente si tienes configurado el trabajo cron de WHMCS.

Solo debes agregar un archivo llamado update_vef.php en /includes/hook/

Y agregar el siguiente codigo:

Código:
		<?php
if (!defined("WHMCS"))
die("This file cannot be accessed directly");
/*
* -------------------------------------------------------------
* File:        update_vef.php
* Description: Update Currency VES/VEF - Venezuela.
* Autor: Jesus Suarez - ForosHosting.com
* -------------------------------------------------------------
*
*/
use Illuminate\Database\Capsule\Manager as Capsule;
add_hook('DailyCronJob', 1, function($vars) {
    // Configure su moneda personalizada aquí
    $currency   = 'VES';
    // Configure el porcentaje a sumar
    $porcentaje = 20;
    // Obtenga la moneda principal utilizada por WHMCS
    $mainCurrency = Capsule::table('tblcurrencies')
                            ->where('default', '=', 1)
                            ->first()
                            ->code;
    $prefix = Capsule::table('tblcurrencies')
                            ->where('code', '=', $mainCurrency)
                            ->first()
                            ->prefix;
    // Llamada desde dolartoday.com
    $url = 'https://s3.amazonaws.com/dolartoday/data.json';
    $dolar = file_get_contents($url);
    $dolar = utf8_encode($dolar);
    $dolar = json_decode($dolar);
    $precio_dolar = $dolar->USD->transferencia;
    $dolar_fecha = $dolar->_timestamp->fecha;
    $rate = floatval($precio_dolar);
    $rate = $rate * (($porcentaje / 100 ) + 1);
    if (empty($rate) or $rate == '' or $rate == 0){
   logActivity("Existe un error, no se pudo actualizar la moneda ($currency). Es posible que el valor sea NULL o vacío desde DolarToday.com", 0);
}
else {
        Capsule::table('tblcurrencies')
                ->where('code', '=', $currency)
                ->update(['rate' => $rate]);
        logActivity("La moneda se actualizo correctamente $prefix$rate $currency / $dolar_fecha", 0);
}
});
?>
		

Para agregar un porcentaje sobre el valor que obtiene de dolartoday.com simplemente cambie el valor de la variable: $porcentaje = 0;

el 0 (cero) por el valor en porcentaje que quieras, 10,20,30, etc... (solo valores enteros)

De esta manera simplifiqué el código para el módulo que anteriormente había escrito publicado tambien en el
Por favor, Acceder o Registro para ver las URLs y el contenido!


Espero que les sirva.
 
Última edición:

PePex

Usuario Nuevo
12/20/20
1
0
1
36
Seguidores
0
Hola
Hace un tiempo publiqué el módulo "
Por favor, Acceder o Registro para ver las URLs y el contenido!
" el cual tiene la capacidad de recalcular los precios de WHMCS basándose en el precio de DolarToday.com, el módulo tiene también la capacidad de agregar un porcentaje sobre el valor de dólar por transferencia que publica dolartoday.com.

Ahora he escrito un hook que básicamente haciendo la misma función pero en 1 solo código, el hook se ejecuta diariamente si tienes configurado el trabajo cron de WHMCS.

Solo debes agregar un archivo llamado update_vef.php en /includes/hook/

Y agregar el siguiente codigo:

Código:
		<?php
if (!defined("WHMCS"))
die("This file cannot be accessed directly");
/*
* -------------------------------------------------------------
* File:        update_vef.php
* Description: Update Currency VES/VEF - Venezuela.
* Autor: Jesus Suarez - ForosHosting.com
* -------------------------------------------------------------
*
*/
use Illuminate\Database\Capsule\Manager as Capsule;
add_hook('DailyCronJob', 1, function($vars) {
    // Configure su moneda personalizada aquí
    $currency   = 'VES';
    // Configure el porcentaje a sumar
    $porcentaje = 20;
    // Obtenga la moneda principal utilizada por WHMCS
    $mainCurrency = Capsule::table('tblcurrencies')
                            ->where('default', '=', 1)
                            ->first()
                            ->code;
    $prefix = Capsule::table('tblcurrencies')
                            ->where('code', '=', $mainCurrency)
                            ->first()
                            ->prefix;
    // Llamada desde dolartoday.com
    $url = 'https://s3.amazonaws.com/dolartoday/data.json';
    $dolar = file_get_contents($url);
    $dolar = utf8_encode($dolar);
    $dolar = json_decode($dolar);
    $precio_dolar = $dolar->USD->transferencia;
    $dolar_fecha = $dolar->_timestamp->fecha;
    $rate = floatval($precio_dolar);
    $rate = $rate * (($porcentaje / 100 ) + 1);
    if (empty($rate) or $rate == '' or $rate == 0){
   logActivity("Existe un error, no se pudo actualizar la moneda ($currency). Es posible que el valor sea NULL o vacío desde DolarToday.com", 0);
}
else {
        Capsule::table('tblcurrencies')
                ->where('code', '=', $currency)
                ->update(['rate' => $rate]);
        logActivity("La moneda se actualizo correctamente $prefix$rate $currency / $dolar_fecha", 0);
}
});
?>
		

Para agregar un porcentaje sobre el valor que obtiene de dolartoday.com simplemente cambie el valor de la variable: $porcentaje = 0;

el 0 (cero) por el valor en porcentaje que quieras, 10,20,30, etc... (solo valores enteros)

De esta manera simplifiqué el código para el módulo que anteriormente había escrito publicado tambien en el
Por favor, Acceder o Registro para ver las URLs y el contenido!


Espero que les sirva.
Hola Jesus
Podrías ayudarme con la configuración de CLP = Pesos Chileno

Gracias
 

JesusSuarez

Jesus Suarez
Miembro del equipo
Administradores
9/22/19
198
96
28
Bogotá - CO
cangurohosting.com
Seguidores
1
Hola

Hola Jesus
Podrías ayudarme con la configuración de CLP = Pesos Chileno

Gracias
en ese caso usa este:
Por favor, Acceder o Registro para ver las URLs y el contenido!
y solo cambia la moneda COP por tu moneda. y generas un nuevo apikey en
Por favor, Acceder o Registro para ver las URLs y el contenido!
y lo aplicas a la variable: $apiKey y listo.
 

JesusSuarez

Jesus Suarez
Miembro del equipo
Administradores
9/22/19
198
96
28
Bogotá - CO
cangurohosting.com
Seguidores
1
Hola

Hola Jesus
Podrías ayudarme con la configuración de CLP = Pesos Chileno

Gracias
aqui lo tienes,

cambia el valor del apikey nada mas.

PHP:
		<?php
if (!defined("WHMCS")) {
    die("This file cannot be accessed directly");
}
/*
* -------------------------------------------------------------
* File:        update_clp.php
* Description: Update Currency CLP - CHILE.
* Autor: Jesus Suarez - ForosHosting.com
* -------------------------------------------------------------
*
*/
use Illuminate\Database\Capsule\Manager as Capsule;
add_hook('PreCronJob', 1, function($vars) {
    // Configure su moneda personalizada aquí
    $currency   = 'CLP';
    // Configure el porcentaje a sumar
    $porcentaje = 1;
    // Complete con su clave de currencyconverterapi.com
    $apiKey     = 'TU_API_KEY';
    // Version Gratis
    $free       = true;
    // Nada para editar después de esto
    // Obtenga la moneda principal utilizada por WHMCS
    $mainCurrency = Capsule::table('tblcurrencies')
                            ->where('default', '=', 1)
                            ->first()
                            ->code;
    // Obtener el prefix de la moneda.
    $prefix = Capsule::table('tblcurrencies')
                            ->where('code', '=', $mainCurrency)
                            ->first()
                            ->prefix;
    // Crear query USD_COP
    $query =  "{$mainCurrency}_{$currency}";
    // Llamada desde currencyconverterapi.com
    $json = file_get_contents("https://" . ($free ? "free" : "api") . ".currconv.com/api/v7/convert?q={$query}&compact=ultra&apiKey={$apiKey}");
    $obj = json_decode($json, true);
    // Se obtiene el numero entero
    $floatval = floatval($obj["$query"]);
    // Se Agrega el numero del porcentaje definido arriba
    $rate = $floatval * (($porcentaje / 100 ) + 1);
    if (empty($rate) or $rate == '' or $rate == 0){
        // si hay algun problema se arroja un log de error en whmcs.
        logActivity("Existe un error, no se pudo actualizar la moneda ($currency). Es posible que el valor sea NULL o vacío desde currencyconverterapi.com", 0);
     }
     else {
             Capsule::table('tblcurrencies')
                     ->where('code', '=', $currency)
                     ->update(['rate' => $rate]);
        // si todo va bien, entonces se agrega un log correcto.
             logActivity("La moneda se actualizo correctamente $prefix$rate $currency", 0);
     }
});
?>
		
 

Hosting por ...
Arriba Pie