HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/drakkar_site/wp-content/plugins/woocommerce-mercadopago/src/Helpers/Numbers.php
<?php

namespace MercadoPago\Woocommerce\Helpers;

if (!defined('ABSPATH')) {
    exit;
}

class Numbers
{
    /**
     * Format value
     *
     * @param float $value
     * @param int $decimals
     * @param string $separator
     *
     * @return float
     */
    public static function format(float $value, int $decimals = 2, string $separator = '.'): float
    {
        return (float) number_format($value, $decimals, $separator, '');
    }

    /**
     * makes the variable a safe float
     *
     * @param mixed $value
     *
     * @return float
     */
    public static function makesValueSafe($value): float
    {
        if (is_string($value) && strlen($value) > 0 && !is_numeric($value[0])) {
            $fixedValue = self::removeNonNumericPrefix($value);
            return floatval($fixedValue);
        }
        return floatval($value);
    }

    public static function removeNonNumericPrefix($str)
    {
        return preg_replace("/[^0-9,.]/", "", $str);
    }



    /**
     * Format value with currency symbol
     *
     * @param string $currencySymbol
     * @param float $value
     * @param int $decimals
     *
     * @return string
     */
    public static function formatWithCurrencySymbol(string $currencySymbol, float $value, int $decimals = 2): string
    {
        return $currencySymbol . ' ' . number_format($value, $decimals, ',', '');
    }

    /**
     * Number format value
     *
     * @param string $currency
     * @param float $value
     * @param float $ratio
     *
     * @return float
     */
    public static function calculateByCurrency(string $currency, float $value, float $ratio): float
    {
        if ($currency === 'COP' || $currency === 'CLP') {
            return self::format($value * $ratio, 0);
        }

        return self::format($value * $ratio * 100) / 100;
    }

    /**
     * Returns the percentage of parcialValue on the sum with the paid value
     *
     * @param float $parcialValue
     * @param float $paidValue
     *
     * @return float
     */
    public static function getPercentageFromParcialValue(float $parcialValue, float $paidValue): float
    {
        $total = $paidValue + $parcialValue;
        $percentage = ($parcialValue / $total) * 100;

        return self::format($percentage);
    }
}