PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.23
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.23
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / helpers / FrmCurrencyHelper.php

FrmCurrencyHelper.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.23, at classes/helpers/FrmCurrencyHelper.php

347 lines 10.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 die( 'You are not allowed to call this page directly.' );
5 }
6
7 /**
8 * @since 6.5 Added with Stripe Lite.
9 */
10 class FrmCurrencyHelper {
11
12 /**
13 * @param string $currency
14 * @return array
15 */
16 public static function get_currency( $currency ) {
17 $currency = strtoupper( $currency );
18 $currencies = self::get_currencies();
19 if ( isset( $currencies[ $currency ] ) ) {
20 $currency = $currencies[ $currency ];
21 } elseif ( isset( $currencies[ strtolower( $currency ) ] ) ) {
22 $currency = $currencies[ strtolower( $currency ) ];
23 } else {
24 $currency = $currencies['USD'];
25 }
26 return $currency;
27 }
28
29 /**
30 * Checks if the given format is a valid currency format.
31 *
32 * @since 6.18
33 *
34 * @param string $format_value The format value to check.
35 * @return bool
36 */
37 public static function is_currency_format( $format_value ) {
38 return in_array( $format_value, array( 'currency', 'number' ), true );
39 }
40
41 /**
42 * Get a list of all supported currencies.
43 *
44 * @since 6.5.
45 *
46 * @return array
47 */
48 public static function get_currencies() {
49 $currencies = array(
50 'AUD' => array(
51 'name' => __( 'Australian Dollar', 'formidable' ),
52 'symbol_left' => '$',
53 'symbol_right' => '',
54 'symbol_padding' => ' ',
55 'thousand_separator' => ',',
56 'decimal_separator' => '.',
57 'decimals' => 2,
58 ),
59 'BDT' => array(
60 'name' => __( 'Bangladeshi Taka', 'formidable' ),
61 'symbol_left' => '',
62 'symbol_right' => '',
63 'symbol_padding' => ' ',
64 'thousand_separator' => ',',
65 'decimal_separator' => '.',
66 'decimals' => 2,
67 ),
68 'BRL' => array(
69 'name' => __( 'Brazilian Real', 'formidable' ),
70 'symbol_left' => 'R$',
71 'symbol_right' => '',
72 'symbol_padding' => ' ',
73 'thousand_separator' => '.',
74 'decimal_separator' => ',',
75 'decimals' => 2,
76 ),
77 'CAD' => array(
78 'name' => __( 'Canadian Dollar', 'formidable' ),
79 'symbol_left' => '$',
80 'symbol_right' => 'CAD',
81 'symbol_padding' => ' ',
82 'thousand_separator' => ',',
83 'decimal_separator' => '.',
84 'decimals' => 2,
85 ),
86 'CNY' => array(
87 'name' => __( 'Chinese Renminbi Yuan', 'formidable' ),
88 'symbol_left' => '¥',
89 'symbol_right' => '',
90 'symbol_padding' => ' ',
91 'thousand_separator' => ',',
92 'decimal_separator' => '.',
93 'decimals' => 2,
94 ),
95 'CZK' => array(
96 'name' => __( 'Czech Koruna', 'formidable' ),
97 'symbol_left' => '',
98 'symbol_right' => '&#75;&#269;',
99 'symbol_padding' => ' ',
100 'thousand_separator' => ' ',
101 'decimal_separator' => ',',
102 'decimals' => 2,
103 ),
104 'DKK' => array(
105 'name' => __( 'Danish Krone', 'formidable' ),
106 'symbol_left' => 'Kr',
107 'symbol_right' => '',
108 'symbol_padding' => ' ',
109 'thousand_separator' => '.',
110 'decimal_separator' => ',',
111 'decimals' => 2,
112 ),
113 'EUR' => array(
114 'name' => __( 'Euro', 'formidable' ),
115 'symbol_left' => '',
116 'symbol_right' => '&#8364;',
117 'symbol_padding' => ' ',
118 'thousand_separator' => '.',
119 'decimal_separator' => ',',
120 'decimals' => 2,
121 ),
122 'HKD' => array(
123 'name' => __( 'Hong Kong Dollar', 'formidable' ),
124 'symbol_left' => 'HK$',
125 'symbol_right' => '',
126 'symbol_padding' => '',
127 'thousand_separator' => ',',
128 'decimal_separator' => '.',
129 'decimals' => 2,
130 ),
131 'HUF' => array(
132 'name' => __( 'Hungarian Forint', 'formidable' ),
133 'symbol_left' => '',
134 'symbol_right' => 'Ft',
135 'symbol_padding' => ' ',
136 'thousand_separator' => '.',
137 'decimal_separator' => ',',
138 'decimals' => 2,
139 ),
140 'INR' => array(
141 'name' => __( 'Indian Rupee', 'formidable' ),
142 'symbol_left' => '&#8377;',
143 'symbol_right' => '',
144 'symbol_padding' => ' ',
145 'thousand_separator' => ',',
146 'decimal_separator' => '.',
147 'decimals' => 2,
148 ),
149 'ILS' => array(
150 'name' => __( 'Israeli New Sheqel', 'formidable' ),
151 'symbol_left' => '&#8362;',
152 'symbol_right' => '',
153 'symbol_padding' => ' ',
154 'thousand_separator' => ',',
155 'decimal_separator' => '.',
156 'decimals' => 2,
157 ),
158 'JPY' => array(
159 'name' => __( 'Japanese Yen', 'formidable' ),
160 'symbol_left' => '&#165;',
161 'symbol_right' => '',
162 'symbol_padding' => ' ',
163 'thousand_separator' => ',',
164 'decimal_separator' => '',
165 'decimals' => 0,
166 ),
167 'MYR' => array(
168 'name' => __( 'Malaysian Ringgit', 'formidable' ),
169 'symbol_left' => '&#82;&#77;',
170 'symbol_right' => '',
171 'symbol_padding' => ' ',
172 'thousand_separator' => ',',
173 'decimal_separator' => '.',
174 'decimals' => 2,
175 ),
176 'MXN' => array(
177 'name' => __( 'Mexican Peso', 'formidable' ),
178 'symbol_left' => '$',
179 'symbol_right' => '',
180 'symbol_padding' => ' ',
181 'thousand_separator' => ',',
182 'decimal_separator' => '.',
183 'decimals' => 2,
184 ),
185 'NOK' => array(
186 'name' => __( 'Norwegian Krone', 'formidable' ),
187 'symbol_left' => 'Kr',
188 'symbol_right' => '',
189 'symbol_padding' => ' ',
190 'thousand_separator' => '.',
191 'decimal_separator' => ',',
192 'decimals' => 2,
193 ),
194 'NZD' => array(
195 'name' => __( 'New Zealand Dollar', 'formidable' ),
196 'symbol_left' => '$',
197 'symbol_right' => '',
198 'symbol_padding' => ' ',
199 'thousand_separator' => ',',
200 'decimal_separator' => '.',
201 'decimals' => 2,
202 ),
203 'PKR' => array(
204 'name' => __( 'Pakistani Rupee', 'formidable' ),
205 'symbol_left' => '',
206 'symbol_right' => '',
207 'symbol_padding' => ' ',
208 'thousand_separator' => '',
209 'decimal_separator' => '.',
210 'decimals' => 2,
211 ),
212 'PHP' => array(
213 'name' => __( 'Philippine Peso', 'formidable' ),
214 'symbol_left' => 'Php',
215 'symbol_right' => '',
216 'symbol_padding' => ' ',
217 'thousand_separator' => ',',
218 'decimal_separator' => '.',
219 'decimals' => 2,
220 ),
221 'PLN' => array(
222 'name' => __( 'Polish Zloty', 'formidable' ),
223 'symbol_left' => '&#122;&#322;',
224 'symbol_right' => '',
225 'symbol_padding' => ' ',
226 'thousand_separator' => '.',
227 'decimal_separator' => ',',
228 'decimals' => 2,
229 ),
230 'GBP' => array(
231 'name' => __( 'Pound Sterling', 'formidable' ),
232 'symbol_left' => '&#163;',
233 'symbol_right' => '',
234 'symbol_padding' => ' ',
235 'thousand_separator' => ',',
236 'decimal_separator' => '.',
237 'decimals' => 2,
238 ),
239 'SGD' => array(
240 'name' => __( 'Singapore Dollar', 'formidable' ),
241 'symbol_left' => '$',
242 'symbol_right' => '',
243 'symbol_padding' => ' ',
244 'thousand_separator' => ',',
245 'decimal_separator' => '.',
246 'decimals' => 2,
247 ),
248 'ZAR' => array(
249 'name' => __( 'South African Rand', 'formidable' ),
250 'symbol_left' => 'R',
251 'symbol_right' => '',
252 'symbol_padding' => ' ',
253 'thousand_separator' => ' ',
254 'decimal_separator' => '.',
255 'decimals' => 2,
256 ),
257 'LKR' => array(
258 'name' => __( 'Sri Lankan Rupee', 'formidable' ),
259 'symbol_left' => '',
260 'symbol_right' => '',
261 'symbol_padding' => ' ',
262 'thousand_separator' => '',
263 'decimal_separator' => '.',
264 'decimals' => 2,
265 ),
266 'SEK' => array(
267 'name' => __( 'Swedish Krona', 'formidable' ),
268 'symbol_left' => '',
269 'symbol_right' => 'Kr',
270 'symbol_padding' => ' ',
271 'thousand_separator' => ' ',
272 'decimal_separator' => ',',
273 'decimals' => 2,
274 ),
275 'CHF' => array(
276 'name' => __( 'Swiss Franc', 'formidable' ),
277 'symbol_left' => 'Fr.',
278 'symbol_right' => '',
279 'symbol_padding' => ' ',
280 'thousand_separator' => "'",
281 'decimal_separator' => '.',
282 'decimals' => 2,
283 ),
284 'TWD' => array(
285 'name' => __( 'Taiwan New Dollar', 'formidable' ),
286 'symbol_left' => '$',
287 'symbol_right' => '',
288 'symbol_padding' => ' ',
289 'thousand_separator' => ',',
290 'decimal_separator' => '.',
291 'decimals' => 2,
292 ),
293 'THB' => array(
294 'name' => __( 'Thai Baht', 'formidable' ),
295 'symbol_left' => '&#3647;',
296 'symbol_right' => '',
297 'symbol_padding' => ' ',
298 'thousand_separator' => ',',
299 'decimal_separator' => '.',
300 'decimals' => 2,
301 ),
302 'TRY' => array(
303 'name' => __( 'Turkish Liras', 'formidable' ),
304 'symbol_left' => '',
305 'symbol_right' => '&#8378;',
306 'symbol_padding' => ' ',
307 'thousand_separator' => '.',
308 'decimal_separator' => ',',
309 'decimals' => 2,
310 ),
311 'USD' => array(
312 'name' => __( 'U.S. Dollar', 'formidable' ),
313 'symbol_left' => '$',
314 'symbol_right' => '',
315 'symbol_padding' => '',
316 'thousand_separator' => ',',
317 'decimal_separator' => '.',
318 'decimals' => 2,
319 ),
320 'UYU' => array(
321 'name' => __( 'Uruguayan Peso', 'formidable' ),
322 'symbol_left' => '$U',
323 'symbol_right' => '',
324 'symbol_padding' => '',
325 'thousand_separator' => '.',
326 'decimal_separator' => ',',
327 'decimals' => 0,
328 ),
329 );
330
331 /**
332 * @since 6.5
333 *
334 * @param array $currencies
335 */
336 $filtered_currencies = apply_filters( 'frm_currencies', $currencies );
337
338 if ( is_array( $filtered_currencies ) ) {
339 $currencies = $filtered_currencies;
340 } else {
341 _doing_it_wrong( __METHOD__, 'Only arrays should be returned when using the frm_currencies filter.', '6.5' );
342 }
343
344 return $currencies;
345 }
346 }
347