PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.0
Independent Analytics – WordPress Analytics Plugin v2.15.0
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 9 months ago Calculations.php 4 days ago Currency.php 8 months ago Device.php 1 year ago Device_Cache.php 2 years ago Dir.php 6 months ago Format.php 5 months ago Link_Validator.php 6 months ago Number_Formatter.php 5 months ago Obj.php 6 months ago Request.php 4 days ago Salt.php 1 year ago Security.php 1 year ago Server.php 2 years ago Singleton.php 2 years ago Timezone.php 5 months ago URL.php 2 months ago WP_Async_Request.php 1 year ago
Currency.php
71 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 if (\IAWPSCOPED\iawp()->is_fluent_cart_support_enabled()) {
62 $show_decimals = !$round_to_whole_dollars;
63 $formatted_value = \FluentCart\App\Helpers\Helper::toDecimal($amount_in_cents, \true, null, $show_decimals);
64 $decoded_value = \html_entity_decode($formatted_value, \ENT_NOQUOTES, 'UTF-8');
65 return $decoded_value;
66 }
67 // Fallback
68 return \strval(\intval($amount_in_cents / 100));
69 }
70 }
71