PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.12.2
Independent Analytics – WordPress Analytics Plugin v2.12.2
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Utils / Currency.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 1 year ago Calculations.php 2 years ago Currency.php 1 year ago Device.php 1 year ago Device_Cache.php 2 years ago Dir.php 2 years ago Link_Validator.php 1 year ago Number_Formatter.php 2 years ago Request.php 11 months ago Salt.php 1 year ago Security.php 1 year ago Server.php 2 years ago Singleton.php 2 years ago String_Util.php 2 years ago Timezone.php 1 year ago URL.php 1 year ago WP_Async_Request.php 1 year ago WordPress_Site_Date_Format_Pattern.php 2 years ago
Currency.php
65 lines
1 <?php
2
3 namespace IAWP\Utils;
4
5 use IAWP\Ecommerce\SureCart_Store;
6 use IAWPSCOPED\Illuminate\Support\Str;
7 /** @internal */
8 class Currency
9 {
10 /**
11 * The value for $amount_in_cents is just that, an amount in cents. It's possible that is a float, which is why
12 * there's no type defined for $amount_in_cents on the function definition. This supports "500.0" for $5.
13 *
14 * @param int|float $amount_in_cents
15 * @param bool $round_to_whole_dollars
16 *
17 * @return string
18 */
19 public static function format($amount_in_cents, bool $round_to_whole_dollars = \true) : string
20 {
21 $amount_in_cents = \intval($amount_in_cents);
22 if ($round_to_whole_dollars) {
23 $amount_in_cents = \round($amount_in_cents, -2);
24 }
25 if (\function_exists('wc_price')) {
26 if ($round_to_whole_dollars) {
27 $options = ['decimals' => 0];
28 } else {
29 $options = null;
30 }
31 // The format function accepts amounts in cents, but wc_price requires them to be floats
32 // representing an amount in dollars. This is why the amount is divided by 100 below.
33 $formatted_value = \strip_tags(\wc_price($amount_in_cents / 100, $options));
34 // wc_price returns HTML. Since there's no function that returns a string, the encoded
35 // entities need to be decoded.
36 $decoded_value = \html_entity_decode($formatted_value, \ENT_NOQUOTES, 'UTF-8');
37 return $decoded_value;
38 }
39 if (\class_exists('\\SureCart\\Support\\Currency')) {
40 $currency_code = SureCart_Store::get_currency_code();
41 $formatted_value = \SureCart\Support\Currency::format($amount_in_cents, $currency_code);
42 return $round_to_whole_dollars ? Str::before($formatted_value, ".") : $formatted_value;
43 }
44 if (\function_exists('edd_currency_filter') && \function_exists('edd_format_amount')) {
45 // The format function accepts amounts in cents, but edd_format_amount requires them to be floats
46 // representing an amount in dollars. This is why the amount is divided by 100 below.
47 $formatted_value = \edd_currency_filter(\edd_format_amount($amount_in_cents / 100));
48 $rounded_value = $round_to_whole_dollars ? Str::before($formatted_value, ".") : $formatted_value;
49 // edd_currency_filter returns HTML. Since there's no function that returns a string, the encoded
50 // entities need to be decoded.
51 $decoded_value = \html_entity_decode($rounded_value, \ENT_NOQUOTES, 'UTF-8');
52 return $decoded_value;
53 }
54 if (\function_exists('pmpro_formatPrice')) {
55 // The format function accepts amounts in cents, but edd_format_amount requires them to be floats
56 // representing an amount in dollars. This is why the amount is divided by 100 below.
57 $formatted_value = \pmpro_formatPrice($amount_in_cents / 100);
58 $decoded_value = \html_entity_decode($formatted_value, \ENT_NOQUOTES, 'UTF-8');
59 return $round_to_whole_dollars ? Str::before($decoded_value, ".") : $decoded_value;
60 }
61 // Fallback
62 return \strval(\intval($amount_in_cents / 100));
63 }
64 }
65