PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.7.3
Jetpack – WP Security, Backup, Speed, & Growth v12.7.3
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / _inc / lib / class-jetpack-currencies.php
jetpack / _inc / lib Last commit date
admin-pages 2 years ago core-api 2 years ago debugger 2 years ago markdown 2 years ago class-jetpack-ai-helper.php 2 years ago class-jetpack-currencies.php 5 years ago class-jetpack-google-drive-helper.php 3 years ago class-jetpack-instagram-gallery-helper.php 3 years ago class-jetpack-mapbox-helper.php 3 years ago class-jetpack-podcast-feed-locator.php 2 years ago class-jetpack-podcast-helper.php 3 years ago class-jetpack-recommendations.php 3 years ago class-jetpack-tweetstorm-helper.php 2 years ago class-jetpack-wizard.php 5 years ago class.color.php 2 years ago class.core-rest-api-endpoints.php 2 years ago class.jetpack-automatic-install-skin.php 2 years ago class.jetpack-iframe-embed.php 3 years ago class.jetpack-keyring-service-helper.php 3 years ago class.jetpack-password-checker.php 3 years ago class.jetpack-search-performance-logger.php 4 years ago class.media-extractor.php 3 years ago class.media-summary.php 3 years ago class.media.php 2 years ago components.php 3 years ago debugger.php 4 years ago functions.wp-notify.php 3 years ago icalendar-reader.php 3 years ago markdown.php 3 years ago plans.php 4 years ago plugins.php 4 years ago tonesque.php 2 years ago widgets.php 4 years ago
class-jetpack-currencies.php
177 lines
1 <?php
2 /**
3 * Jetpack_Currencies: Utils for displaying and managing currencies.
4 *
5 * @package Jetpack
6 * @since 9.1.0
7 */
8
9 /**
10 * General currencies specific functionality
11 */
12 class Jetpack_Currencies {
13 /**
14 * Currencies definition
15 */
16 const CURRENCIES = array(
17 'USD' => array(
18 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
19 'symbol' => '$',
20 'decimal' => 2,
21 ),
22 'GBP' => array(
23 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
24 'symbol' => '&#163;',
25 'decimal' => 2,
26 ),
27 'JPY' => array(
28 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
29 'symbol' => '&#165;',
30 'decimal' => 0,
31 ),
32 'BRL' => array(
33 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
34 'symbol' => 'R$',
35 'decimal' => 2,
36 ),
37 'EUR' => array(
38 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
39 'symbol' => '&#8364;',
40 'decimal' => 2,
41 ),
42 'NZD' => array(
43 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
44 'symbol' => 'NZ$',
45 'decimal' => 2,
46 ),
47 'AUD' => array(
48 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
49 'symbol' => 'A$',
50 'decimal' => 2,
51 ),
52 'CAD' => array(
53 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
54 'symbol' => 'C$',
55 'decimal' => 2,
56 ),
57 'ILS' => array(
58 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
59 'symbol' => '',
60 'decimal' => 2,
61 ),
62 'RUB' => array(
63 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
64 'symbol' => '',
65 'decimal' => 2,
66 ),
67 'MXN' => array(
68 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
69 'symbol' => 'MX$',
70 'decimal' => 2,
71 ),
72 'MYR' => array(
73 'format' => '%2$s%1$s', // 1: Symbol 2: currency value
74 'symbol' => 'RM',
75 'decimal' => 2,
76 ),
77 'SEK' => array(
78 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
79 'symbol' => 'Skr',
80 'decimal' => 2,
81 ),
82 'HUF' => array(
83 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
84 'symbol' => 'Ft',
85 'decimal' => 0, // Decimals are supported by Stripe but not by PayPal.
86 ),
87 'CHF' => array(
88 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
89 'symbol' => 'CHF',
90 'decimal' => 2,
91 ),
92 'CZK' => array(
93 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
94 'symbol' => '',
95 'decimal' => 2,
96 ),
97 'DKK' => array(
98 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
99 'symbol' => 'Dkr',
100 'decimal' => 2,
101 ),
102 'HKD' => array(
103 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
104 'symbol' => 'HK$',
105 'decimal' => 2,
106 ),
107 'NOK' => array(
108 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
109 'symbol' => 'Kr',
110 'decimal' => 2,
111 ),
112 'PHP' => array(
113 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
114 'symbol' => '',
115 'decimal' => 2,
116 ),
117 'PLN' => array(
118 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
119 'symbol' => 'PLN',
120 'decimal' => 2,
121 ),
122 'SGD' => array(
123 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
124 'symbol' => 'S$',
125 'decimal' => 2,
126 ),
127 'TWD' => array(
128 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
129 'symbol' => 'NT$',
130 'decimal' => 0, // Decimals are supported by Stripe but not by PayPal.
131 ),
132 'THB' => array(
133 'format' => '%2$s%1$s', // 1: Symbol 2: currency value
134 'symbol' => '฿',
135 'decimal' => 2,
136 ),
137 'INR' => array(
138 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
139 'symbol' => '',
140 'decimal' => 0,
141 ),
142 );
143
144 /**
145 * Format a price with currency.
146 *
147 * Uses currency-aware formatting to output a formatted price with a simple fallback.
148 *
149 * Largely inspired by WordPress.com's Store_Price::display_currency
150 *
151 * @param string $price Price.
152 * @param string $currency Currency.
153 * @param bool $symbol Whether to display the currency symbol.
154 * @return string Formatted price.
155 */
156 public static function format_price( $price, $currency, $symbol = true ) {
157 // Fall back to unspecified currency symbol like `¤1,234.05`.
158 // @link https://en.wikipedia.org/wiki/Currency_sign_(typography).
159 if ( ! array_key_exists( $currency, self::CURRENCIES ) ) {
160 return '¤' . number_format_i18n( $price, 2 );
161 }
162
163 $currency_details = self::CURRENCIES[ $currency ];
164
165 // Ensure USD displays as 1234.56 even in non-US locales.
166 $amount = 'USD' === $currency
167 ? number_format( $price, $currency_details['decimal'], '.', ',' )
168 : number_format_i18n( $price, $currency_details['decimal'] );
169
170 return sprintf(
171 $currency_details['format'],
172 $symbol ? $currency_details['symbol'] : '',
173 $amount
174 );
175 }
176 }
177