Passed
Push — master ( 0bf96e...3fac73 )
by Warwick
12:22 queued 15s
created
classes/class-currencies.php 2 patches
Indentation   +556 added lines, -556 removed lines patch added patch discarded remove patch
@@ -16,560 +16,560 @@
 block discarded – undo
16 16
  */
17 17
 class Currencies {
18 18
 
19
-	/**
20
-	 * Holds instance of the class
21
-	 *
22
-	 * @var object \lsx\currencies\classes\Currencies()
23
-	 */
24
-	private static $instance;
25
-
26
-	/**
27
-	 * Holds the admin instance
28
-	 *
29
-	 * @var object \lsx\currencies\classes\Admin()
30
-	 */
31
-	public $admin;
32
-
33
-	/**
34
-	 * Holds the frontend instance
35
-	 *
36
-	 * @var object \lsx\currencies\classes\Frontedn()
37
-	 */
38
-	public $frontend;
39
-
40
-	/**
41
-	 * Holds the woocommerce instance
42
-	 *
43
-	 * @var object \lsx\currencies\classes\WooCommerce()
44
-	 */
45
-	public $woocommerce;
46
-
47
-	/**
48
-	 * Holds the FacetWP instance
49
-	 *
50
-	 * @var object \lsx\currencies\classes\FacetWP()
51
-	 */
52
-	public $facetwp;
53
-
54
-	/**
55
-	 * This hold the URL, it defaults to the free exchange rates.
56
-	 *
57
-	 * @var string
58
-	 */
59
-	public $api_url = 'https://api.exchangeratesapi.io/latest?base=USD';
60
-
61
-	/**
62
-	 * General Parameters
63
-	 */
64
-	/** @var string */
65
-	public $plugin_slug = 'lsx-currencies';
66
-
67
-	/** @var array */
68
-	public $options = false;
69
-
70
-	/** @var string */
71
-	public $base_currency = 'USD';
72
-
73
-	/** @var array */
74
-	public $additional_currencies = array();
75
-
76
-	/** @var array */
77
-	public $available_currencies = array();
78
-
79
-	/** @var array */
80
-	public $flag_relations = array();
81
-
82
-	/** @var array */
83
-	public $currency_symbols = array();
84
-
85
-	/** @var boolean */
86
-	public $multi_prices = false;
87
-
88
-	/** @var boolean */
89
-	public $convert_to_single = false;
90
-
91
-	/** @var boolean */
92
-	public $app_id = false;
93
-
94
-	/*  Currency Switcher Options */
95
-	/** @var array */
96
-	public $menus = false;
97
-
98
-	/** @var boolean */
99
-	public $display_flags = false;
100
-
101
-	/** @var string */
102
-	public $flag_position = 'left';
103
-
104
-	/** @var string */
105
-	public $switcher_symbol_position = 'right';
106
-
107
-	/** @var boolean */
108
-	public $remove_decimals = false;
109
-
110
-	/**
111
-	 * Constructor
112
-	 */
113
-	public function __construct() {
114
-		add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
115
-		add_action( 'plugins_loaded', array( $this, 'set_defaults' ) );
116
-	}
117
-
118
-	/**
119
-	 * Return an instance of this class.
120
-	 *
121
-	 * @return  object
122
-	 */
123
-	public static function init() {
124
-		// If the single instance hasn't been set, set it now.
125
-		if ( ! isset( self::$instance ) ) {
126
-			self::$instance = new self();
127
-		}
128
-		return self::$instance;
129
-	}
130
-
131
-	/**
132
-	 * After active plugins and pluggable functions are loaded
133
-	 */
134
-	public function plugins_loaded() {
135
-		require_once LSX_CURRENCIES_PATH . 'classes/class-admin.php';
136
-		$this->admin = \lsx\currencies\classes\Admin::init();
137
-
138
-		require_once LSX_CURRENCIES_PATH . 'classes/class-frontend.php';
139
-		$this->frontend = \lsx\currencies\classes\Frontend::init();
140
-
141
-		if ( class_exists( 'WooCommerce' ) ) {
142
-			require_once LSX_CURRENCIES_PATH . 'classes/class-woocommerce.php';
143
-			$this->woocommerce = \lsx\currencies\classes\WooCommerce::init();
144
-		}
145
-
146
-		if ( class_exists( 'FacetWP' ) ) {
147
-			require_once LSX_CURRENCIES_PATH . 'classes/class-facetwp.php';
148
-			$this->facetwp = \lsx\currencies\classes\FacetWP::init();
149
-		}
150
-
151
-		require_once LSX_CURRENCIES_PATH . '/includes/template-tags.php';
152
-	}
153
-
154
-	/**
155
-	 * Get the options
156
-	 */
157
-	public function set_defaults() {
158
-		$settings_tab = 'display';
159
-		if ( function_exists( 'tour_operator' ) ) {
160
-			$options = get_option( '_lsx-to_settings', false );
161
-			$settings_tab = 'general';
162
-		} else {
163
-			$options = get_option( '_lsx_settings', false );
164
-
165
-			if ( false === $options ) {
166
-				$options = get_option( '_lsx_lsx-settings', false );
167
-			}
168
-		}
169
-
170
-		if ( false !== $options ) {
171
-			$this->options = $options;
172
-			$this->migration_uix_to_customize();
173
-
174
-			if ( isset( $this->options[ $settings_tab ] ) && isset( $this->options[ $settings_tab ]['currency'] ) ) {
175
-				$this->base_currency = apply_filters( 'lsx_currencies_base_currency', $this->options[ $settings_tab ]['currency'], $this );
176
-			}
177
-
178
-			if ( isset( $this->options[ $settings_tab ]['additional_currencies'] ) && is_array( $this->options[ $settings_tab ]['additional_currencies'] ) && ! empty( $this->options[ $settings_tab ]['additional_currencies'] ) ) {
179
-				$this->additional_currencies = $this->options[ $settings_tab ]['additional_currencies'];
180
-			}
181
-
182
-			if ( isset( $this->options[ $settings_tab ]['multi_price'] ) && 'on' === $this->options[ $settings_tab ]['multi_price'] ) {
183
-				$this->multi_prices = true;
184
-			}
185
-
186
-			if ( isset( $this->options[ $settings_tab ]['convert_to_single_currency'] ) && 'on' === $this->options[ $settings_tab ]['convert_to_single_currency'] ) {
187
-				$this->convert_to_single = true;
188
-			}
189
-
190
-			if ( isset( $this->options[ $settings_tab ]['remove_decimals'] ) && 'on' === $this->options[ $settings_tab ]['remove_decimals'] ) {
191
-				$this->remove_decimals = true;
192
-			}
193
-
194
-			if ( isset( $this->options['api']['openexchange_api'] ) && '' !== $this->options['api']['openexchange_api'] ) {
195
-				$this->app_id = $this->options['api']['openexchange_api'];
196
-				$this->api_url = 'https://openexchangerates.org/api/latest.json?app_id=' . $this->app_id;
197
-			}
198
-
199
-			// Currency Switcher Options.
200
-			$this->menus = get_theme_mod( 'lsx_currencies_currency_menu_position', false );
201
-
202
-			if ( get_theme_mod( 'lsx_currencies_display_flags', false ) ) {
203
-				$this->display_flags = true;
204
-			}
205
-
206
-			if ( get_theme_mod( 'lsx_currencies_flag_position', false ) ) {
207
-				$this->flag_position = 'right';
208
-			}
209
-
210
-			if ( get_theme_mod( 'lsx_currencies_currency_switcher_position', false ) ) {
211
-				$this->switcher_symbol_position = 'left';
212
-			}
213
-		}
214
-		$this->available_currencies = $this->get_available_currencies();
215
-		$this->flag_relations = $this->get_flag_relations();
216
-		$this->currency_symbols = $this->get_currency_symbols();
217
-	}
218
-
219
-	/**
220
-	 * Returns Currency Flag for currency code provided
221
-	 *
222
-	 * @param $key string
223
-	 * @return string
224
-	 */
225
-	public function get_currency_flag( $key = 'USD' ) {
226
-		$key = strtoupper( $key );
227
-		return '<span class="flag-icon flag-icon-' . $this->flag_relations[ $key ] . '"></span> ';
228
-	}
229
-
230
-	/**
231
-	 * Get Currency symbol.
232
-	 *
233
-	 * @param string $currency
234
-	 * @return string
235
-	 */
236
-	public function get_currency_symbol( $currency = '' ) {
237
-		if ( ! $currency ) {
238
-			$currency = $this->base_currency;
239
-		}
240
-		$currency_symbol = isset( $this->currency_symbols[ $currency ] ) ? $this->currency_symbols[ $currency ] : '';
241
-		return $currency_symbol;
242
-	}
243
-
244
-	/**
245
-	 * Returns an array of the available currencies
246
-	 *
247
-	 * @return array
248
-	 */
249
-	public function get_available_currencies() {
250
-
251
-		$paid_currencies = array(
252
-			'BWP' => esc_html__( 'Botswana Pula', 'lsx-currencies' ),
253
-			'KES' => esc_html__( 'Kenyan Shilling', 'lsx-currencies' ),
254
-			'LAK' => esc_html__( 'Laos Kip', 'lsx-currencies' ),
255
-			'MWK' => esc_html__( 'Malawian Kwacha', 'lsx-currencies' ),
256
-			'MZN' => esc_html__( 'Mozambique Metical', 'lsx-currencies' ),
257
-			'NAD' => esc_html__( 'Namibian Dollar', 'lsx-currencies' ),
258
-			'TZS' => esc_html__( 'Tanzania Shilling', 'lsx-currencies' ),
259
-			'AED' => esc_html__( 'United Arab Emirates Dirham', 'lsx-currencies' ),
260
-			'ZMW' => esc_html__( 'Zambian Kwacha', 'lsx-currencies' ),
261
-			'ZWL' => esc_html__( 'Zimbabwean Dollar', 'lsx-currencies' ),
262
-		);
263
-		$free_currencies = array(
264
-			'AUD' => esc_html__( 'Australian Dollar', 'lsx-currencies' ),
265
-			'BRL' => esc_html__( 'Brazilian Real', 'lsx-currencies' ),
266
-			'GBP' => esc_html__( 'British Pound Sterling', 'lsx-currencies' ),
267
-			'CAD' => esc_html__( 'Canadian Dollar', 'lsx-currencies' ),
268
-			'CNY' => esc_html__( 'Chinese Yuan', 'lsx-currencies' ),
269
-			'EUR' => esc_html__( 'Euro', 'lsx-currencies' ),
270
-			'HKD' => esc_html__( 'Hong Kong Dollar', 'lsx-currencies' ),
271
-			'INR' => esc_html__( 'Indian Rupee', 'lsx-currencies' ),
272
-			'IDR' => esc_html__( 'Indonesia Rupiah', 'lsx-currencies' ),
273
-			'ILS' => esc_html__( 'Israeli Shekel', 'lsx-currencies' ),
274
-			'JPY' => esc_html__( 'Japanese Yen', 'lsx-currencies' ),
275
-			'MYR' => esc_html__( 'Malaysia Ringgit', 'lsx-currencies' ),
276
-			'NOK' => esc_html__( 'Norwegian Krone', 'lsx-currencies' ),
277
-			'NZD' => esc_html__( 'New Zealand Dollar', 'lsx-currencies' ),
278
-			'RUB' => esc_html__( 'Russian Ruble', 'lsx-currencies' ),
279
-			'SGD' => esc_html__( 'Singapore Dollar', 'lsx-currencies' ),
280
-			'ZAR' => esc_html__( 'South African Rand', 'lsx-currencies' ),
281
-			'SEK' => esc_html__( 'Swedish Krona', 'lsx-currencies' ),
282
-			'CHF' => esc_html__( 'Swiss Franc', 'lsx-currencies' ),
283
-			'USD' => esc_html__( 'United States Dollar', 'lsx-currencies' ),
284
-		);
285
-
286
-		if ( false !== $this->app_id ) {
287
-			$free_currencies = array_merge( $free_currencies, $paid_currencies );
288
-			asort( $free_currencies );
289
-		}
290
-
291
-		return $free_currencies;
292
-	}
293
-
294
-	/**
295
-	 * Returns the ISO 3 code in relation to its 2 code values.
296
-	 *
297
-	 * @return array
298
-	 */
299
-	public function get_flag_relations() {
300
-		return array(
301
-			'AUD' => 'au',
302
-			'BRL' => 'br',
303
-			'GBP' => 'gb',
304
-			'BWP' => 'bw',
305
-			'CAD' => 'ca',
306
-			'CNY' => 'cn',
307
-			'EUR' => 'eu',
308
-			'HKD' => 'hk',
309
-			'INR' => 'in',
310
-			'IDR' => 'id',
311
-			'ILS' => 'il',
312
-			'JPY' => 'jp',
313
-			'KES' => 'ke',
314
-			'LAK' => 'la',
315
-			'MWK' => 'mw',
316
-			'MYR' => 'my',
317
-			'MZN' => 'mz',
318
-			'NAD' => 'na',
319
-			'NZD' => 'nz',
320
-			'NOK' => 'no',
321
-			'RUB' => 'ru',
322
-			'SGD' => 'sg',
323
-			'ZAR' => 'za',
324
-			'SEK' => 'se',
325
-			'CHF' => 'ch',
326
-			'TZS' => 'tz',
327
-			'USD' => 'us',
328
-			'AED' => 'ae',
329
-			'ZMW' => 'zm',
330
-			'ZWL' => 'zw',
331
-		);
332
-	}
333
-
334
-	/**
335
-	 * Returns all of the currency symbols.
336
-	 *
337
-	 * @return array
338
-	 */
339
-	public function get_currency_symbols() {
340
-		return apply_filters( 'lsx_currencies_symbols', array(
341
-			'AED' => '&#x62f;.&#x625;',
342
-			'AFN' => '&#x60b;',
343
-			'ALL' => 'L',
344
-			'AMD' => 'AMD',
345
-			'ANG' => '&fnof;',
346
-			'AOA' => 'Kz',
347
-			'ARS' => '&#36;',
348
-			'AUD' => '&#36;',
349
-			'AWG' => 'Afl.',
350
-			'AZN' => 'AZN',
351
-			'BAM' => 'KM',
352
-			'BBD' => '&#36;',
353
-			'BDT' => '&#2547;&nbsp;',
354
-			'BGN' => '&#1083;&#1074;.',
355
-			'BHD' => '.&#x62f;.&#x628;',
356
-			'BIF' => 'Fr',
357
-			'BMD' => '&#36;',
358
-			'BND' => '&#36;',
359
-			'BOB' => 'Bs.',
360
-			'BRL' => '&#82;&#36;',
361
-			'BSD' => '&#36;',
362
-			'BTC' => '&#3647;',
363
-			'BTN' => 'Nu.',
364
-			'BWP' => 'P',
365
-			'BYR' => 'Br',
366
-			'BZD' => '&#36;',
367
-			'CAD' => '&#36;',
368
-			'CDF' => 'Fr',
369
-			'CHF' => '&#67;&#72;&#70;',
370
-			'CLP' => '&#36;',
371
-			'CNY' => '&yen;',
372
-			'COP' => '&#36;',
373
-			'CRC' => '&#x20a1;',
374
-			'CUC' => '&#36;',
375
-			'CUP' => '&#36;',
376
-			'CVE' => '&#36;',
377
-			'CZK' => '&#75;&#269;',
378
-			'DJF' => 'Fr',
379
-			'DKK' => 'DKK',
380
-			'DOP' => 'RD&#36;',
381
-			'DZD' => '&#x62f;.&#x62c;',
382
-			'EGP' => 'EGP',
383
-			'ERN' => 'Nfk',
384
-			'ETB' => 'Br',
385
-			'EUR' => '&euro;',
386
-			'FJD' => '&#36;',
387
-			'FKP' => '&pound;',
388
-			'GBP' => '&pound;',
389
-			'GEL' => '&#x10da;',
390
-			'GGP' => '&pound;',
391
-			'GHS' => '&#x20b5;',
392
-			'GIP' => '&pound;',
393
-			'GMD' => 'D',
394
-			'GNF' => 'Fr',
395
-			'GTQ' => 'Q',
396
-			'GYD' => '&#36;',
397
-			'HKD' => '&#36;',
398
-			'HNL' => 'L',
399
-			'HRK' => 'Kn',
400
-			'HTG' => 'G',
401
-			'HUF' => '&#70;&#116;',
402
-			'IDR' => 'Rp',
403
-			'ILS' => '&#8362;',
404
-			'IMP' => '&pound;',
405
-			'INR' => '&#8377;',
406
-			'IQD' => '&#x639;.&#x62f;',
407
-			'IRR' => '&#xfdfc;',
408
-			'IRT' => '&#x062A;&#x0648;&#x0645;&#x0627;&#x0646;',
409
-			'ISK' => 'kr.',
410
-			'JEP' => '&pound;',
411
-			'JMD' => '&#36;',
412
-			'JOD' => '&#x62f;.&#x627;',
413
-			'JPY' => '&yen;',
414
-			'KES' => 'KSh',
415
-			'KGS' => '&#x441;&#x43e;&#x43c;',
416
-			'KHR' => '&#x17db;',
417
-			'KMF' => 'Fr',
418
-			'KPW' => '&#x20a9;',
419
-			'KRW' => '&#8361;',
420
-			'KWD' => '&#x62f;.&#x643;',
421
-			'KYD' => '&#36;',
422
-			'KZT' => 'KZT',
423
-			'LAK' => '&#8365;',
424
-			'LBP' => '&#x644;.&#x644;',
425
-			'LKR' => '&#xdbb;&#xdd4;',
426
-			'LRD' => '&#36;',
427
-			'LSL' => 'L',
428
-			'LYD' => '&#x644;.&#x62f;',
429
-			'MAD' => '&#x62f;.&#x645;.',
430
-			'MDL' => 'MDL',
431
-			'MGA' => 'Ar',
432
-			'MKD' => '&#x434;&#x435;&#x43d;',
433
-			'MMK' => 'Ks',
434
-			'MNT' => '&#x20ae;',
435
-			'MOP' => 'P',
436
-			'MRO' => 'UM',
437
-			'MUR' => '&#x20a8;',
438
-			'MVR' => '.&#x783;',
439
-			'MWK' => 'MK',
440
-			'MXN' => '&#36;',
441
-			'MYR' => '&#82;&#77;',
442
-			'MZN' => 'MT',
443
-			'NAD' => '&#36;',
444
-			'NGN' => '&#8358;',
445
-			'NIO' => 'C&#36;',
446
-			'NOK' => '&#107;&#114;',
447
-			'NPR' => '&#8360;',
448
-			'NZD' => '&#36;',
449
-			'OMR' => '&#x631;.&#x639;.',
450
-			'PAB' => 'B/.',
451
-			'PEN' => 'S/.',
452
-			'PGK' => 'K',
453
-			'PHP' => '&#8369;',
454
-			'PKR' => '&#8360;',
455
-			'PLN' => '&#122;&#322;',
456
-			'PRB' => '&#x440;.',
457
-			'PYG' => '&#8370;',
458
-			'QAR' => '&#x631;.&#x642;',
459
-			'RMB' => '&yen;',
460
-			'RON' => 'lei',
461
-			'RSD' => '&#x434;&#x438;&#x43d;.',
462
-			'RUB' => '&#8381;',
463
-			'RWF' => 'Fr',
464
-			'SAR' => '&#x631;.&#x633;',
465
-			'SBD' => '&#36;',
466
-			'SCR' => '&#x20a8;',
467
-			'SDG' => '&#x62c;.&#x633;.',
468
-			'SEK' => '&#107;&#114;',
469
-			'SGD' => '&#36;',
470
-			'SHP' => '&pound;',
471
-			'SLL' => 'Le',
472
-			'SOS' => 'Sh',
473
-			'SRD' => '&#36;',
474
-			'SSP' => '&pound;',
475
-			'STD' => 'Db',
476
-			'SYP' => '&#x644;.&#x633;',
477
-			'SZL' => 'L',
478
-			'THB' => '&#3647;',
479
-			'TJS' => '&#x405;&#x41c;',
480
-			'TMT' => 'm',
481
-			'TND' => '&#x62f;.&#x62a;',
482
-			'TOP' => 'T&#36;',
483
-			'TRY' => '&#8378;',
484
-			'TTD' => '&#36;',
485
-			'TWD' => '&#78;&#84;&#36;',
486
-			'TZS' => 'Sh',
487
-			'UAH' => '&#8372;',
488
-			'UGX' => 'UGX',
489
-			'USD' => '&#36;',
490
-			'UYU' => '&#36;',
491
-			'UZS' => 'UZS',
492
-			'VEF' => 'Bs F',
493
-			'VND' => '&#8363;',
494
-			'VUV' => 'Vt',
495
-			'WST' => 'T',
496
-			'XAF' => 'Fr',
497
-			'XCD' => '&#36;',
498
-			'XOF' => 'Fr',
499
-			'XPF' => 'Fr',
500
-			'YER' => '&#xfdfc;',
501
-			'ZAR' => '&#82;',
502
-			'ZMW' => 'ZK',
503
-		) );
504
-	}
505
-
506
-	/**
507
-	 * Sanitize checkbox.
508
-	 *
509
-	 * @param $input html
510
-	 * @return mixed
511
-	 */
512
-	public function sanitize_checkbox( $input ) {
513
-		return ( 1 === absint( $input ) ) ? 1 : 0;
514
-	}
515
-
516
-	/**
517
-	 * Sanitize select.
518
-	 *
519
-	 * @param $input html
520
-	 * @return mixed
521
-	 */
522
-	public function sanitize_select( $input ) {
523
-		if ( is_string( $input ) || is_integer( $input ) || is_bool( $input ) ) {
524
-			return $input;
525
-		} else {
526
-			return '';
527
-		}
528
-	}
529
-
530
-	/**
531
-	 * Sanitize textarea.
532
-	 *
533
-	 * @param $input html
534
-	 * @return mixed
535
-	 */
536
-	public function sanitize_textarea( $input ) {
537
-		return wp_kses_post( $input );
538
-	}
539
-
540
-	/**
541
-	 * Migrate the old data (from UIX) to WP Customizer settings.
542
-	 *
543
-	 * @since 1.1.1
544
-	 */
545
-	public function migration_uix_to_customize() {
546
-		$visual_tab_migration = get_theme_mod( 'lsx_currencies_visual_tab_migration', false );
547
-
548
-		if ( empty( $visual_tab_migration ) ) {
549
-			if ( isset( $this->options['display'] ) ) {
550
-				if ( isset( $this->options['display']['currency_menu_switcher'] ) && is_array( $this->options['display']['currency_menu_switcher'] ) && ! empty( $this->options['display']['currency_menu_switcher'] ) ) {
551
-					$currency_menu_position = $this->options['display']['currency_menu_switcher'];
552
-
553
-					foreach ( $currency_menu_position as $key => $value ) {
554
-						set_theme_mod( 'lsx_currencies_currency_menu_position', $key );
555
-						break;
556
-					}
557
-				}
558
-
559
-				if ( isset( $this->options['display']['display_flags'] ) && 'on' === $this->options['display']['display_flags'] ) {
560
-					set_theme_mod( 'lsx_currencies_display_flags', true );
561
-				}
562
-
563
-				if ( isset( $this->options['display']['flag_position'] ) && 'on' === $this->options['display']['flag_position'] ) {
564
-					set_theme_mod( 'lsx_currencies_flag_position', 'right' );
565
-				}
566
-
567
-				if ( isset( $this->options['display']['currency_switcher_position'] ) && 'on' === $this->options['display']['currency_switcher_position'] ) {
568
-					set_theme_mod( 'lsx_currencies_currency_switcher_position', 'left' );
569
-				}
570
-			}
571
-
572
-			set_theme_mod( 'lsx_currencies_visual_tab_migration', true );
573
-		}
574
-	}
19
+     /**
20
+      * Holds instance of the class
21
+      *
22
+      * @var object \lsx\currencies\classes\Currencies()
23
+      */
24
+     private static $instance;
25
+
26
+     /**
27
+      * Holds the admin instance
28
+      *
29
+      * @var object \lsx\currencies\classes\Admin()
30
+      */
31
+     public $admin;
32
+
33
+     /**
34
+      * Holds the frontend instance
35
+      *
36
+      * @var object \lsx\currencies\classes\Frontedn()
37
+      */
38
+     public $frontend;
39
+
40
+     /**
41
+      * Holds the woocommerce instance
42
+      *
43
+      * @var object \lsx\currencies\classes\WooCommerce()
44
+      */
45
+     public $woocommerce;
46
+
47
+     /**
48
+      * Holds the FacetWP instance
49
+      *
50
+      * @var object \lsx\currencies\classes\FacetWP()
51
+      */
52
+     public $facetwp;
53
+
54
+     /**
55
+      * This hold the URL, it defaults to the free exchange rates.
56
+      *
57
+      * @var string
58
+      */
59
+     public $api_url = 'https://api.exchangeratesapi.io/latest?base=USD';
60
+
61
+     /**
62
+      * General Parameters
63
+      */
64
+     /** @var string */
65
+     public $plugin_slug = 'lsx-currencies';
66
+
67
+     /** @var array */
68
+     public $options = false;
69
+
70
+     /** @var string */
71
+     public $base_currency = 'USD';
72
+
73
+     /** @var array */
74
+     public $additional_currencies = array();
75
+
76
+     /** @var array */
77
+     public $available_currencies = array();
78
+
79
+     /** @var array */
80
+     public $flag_relations = array();
81
+
82
+     /** @var array */
83
+     public $currency_symbols = array();
84
+
85
+     /** @var boolean */
86
+     public $multi_prices = false;
87
+
88
+     /** @var boolean */
89
+     public $convert_to_single = false;
90
+
91
+     /** @var boolean */
92
+     public $app_id = false;
93
+
94
+     /*  Currency Switcher Options */
95
+     /** @var array */
96
+     public $menus = false;
97
+
98
+     /** @var boolean */
99
+     public $display_flags = false;
100
+
101
+     /** @var string */
102
+     public $flag_position = 'left';
103
+
104
+     /** @var string */
105
+     public $switcher_symbol_position = 'right';
106
+
107
+     /** @var boolean */
108
+     public $remove_decimals = false;
109
+
110
+     /**
111
+      * Constructor
112
+      */
113
+     public function __construct() {
114
+          add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
115
+          add_action( 'plugins_loaded', array( $this, 'set_defaults' ) );
116
+     }
117
+
118
+     /**
119
+      * Return an instance of this class.
120
+      *
121
+      * @return  object
122
+      */
123
+     public static function init() {
124
+          // If the single instance hasn't been set, set it now.
125
+          if ( ! isset( self::$instance ) ) {
126
+               self::$instance = new self();
127
+          }
128
+          return self::$instance;
129
+     }
130
+
131
+     /**
132
+      * After active plugins and pluggable functions are loaded
133
+      */
134
+     public function plugins_loaded() {
135
+          require_once LSX_CURRENCIES_PATH . 'classes/class-admin.php';
136
+          $this->admin = \lsx\currencies\classes\Admin::init();
137
+
138
+          require_once LSX_CURRENCIES_PATH . 'classes/class-frontend.php';
139
+          $this->frontend = \lsx\currencies\classes\Frontend::init();
140
+
141
+          if ( class_exists( 'WooCommerce' ) ) {
142
+               require_once LSX_CURRENCIES_PATH . 'classes/class-woocommerce.php';
143
+               $this->woocommerce = \lsx\currencies\classes\WooCommerce::init();
144
+          }
145
+
146
+          if ( class_exists( 'FacetWP' ) ) {
147
+               require_once LSX_CURRENCIES_PATH . 'classes/class-facetwp.php';
148
+               $this->facetwp = \lsx\currencies\classes\FacetWP::init();
149
+          }
150
+
151
+          require_once LSX_CURRENCIES_PATH . '/includes/template-tags.php';
152
+     }
153
+
154
+     /**
155
+      * Get the options
156
+      */
157
+     public function set_defaults() {
158
+          $settings_tab = 'display';
159
+          if ( function_exists( 'tour_operator' ) ) {
160
+               $options = get_option( '_lsx-to_settings', false );
161
+               $settings_tab = 'general';
162
+          } else {
163
+               $options = get_option( '_lsx_settings', false );
164
+
165
+               if ( false === $options ) {
166
+                    $options = get_option( '_lsx_lsx-settings', false );
167
+               }
168
+          }
169
+
170
+          if ( false !== $options ) {
171
+               $this->options = $options;
172
+               $this->migration_uix_to_customize();
173
+
174
+               if ( isset( $this->options[ $settings_tab ] ) && isset( $this->options[ $settings_tab ]['currency'] ) ) {
175
+                    $this->base_currency = apply_filters( 'lsx_currencies_base_currency', $this->options[ $settings_tab ]['currency'], $this );
176
+               }
177
+
178
+               if ( isset( $this->options[ $settings_tab ]['additional_currencies'] ) && is_array( $this->options[ $settings_tab ]['additional_currencies'] ) && ! empty( $this->options[ $settings_tab ]['additional_currencies'] ) ) {
179
+                    $this->additional_currencies = $this->options[ $settings_tab ]['additional_currencies'];
180
+               }
181
+
182
+               if ( isset( $this->options[ $settings_tab ]['multi_price'] ) && 'on' === $this->options[ $settings_tab ]['multi_price'] ) {
183
+                    $this->multi_prices = true;
184
+               }
185
+
186
+               if ( isset( $this->options[ $settings_tab ]['convert_to_single_currency'] ) && 'on' === $this->options[ $settings_tab ]['convert_to_single_currency'] ) {
187
+                    $this->convert_to_single = true;
188
+               }
189
+
190
+               if ( isset( $this->options[ $settings_tab ]['remove_decimals'] ) && 'on' === $this->options[ $settings_tab ]['remove_decimals'] ) {
191
+                    $this->remove_decimals = true;
192
+               }
193
+
194
+               if ( isset( $this->options['api']['openexchange_api'] ) && '' !== $this->options['api']['openexchange_api'] ) {
195
+                    $this->app_id = $this->options['api']['openexchange_api'];
196
+                    $this->api_url = 'https://openexchangerates.org/api/latest.json?app_id=' . $this->app_id;
197
+               }
198
+
199
+               // Currency Switcher Options.
200
+               $this->menus = get_theme_mod( 'lsx_currencies_currency_menu_position', false );
201
+
202
+               if ( get_theme_mod( 'lsx_currencies_display_flags', false ) ) {
203
+                    $this->display_flags = true;
204
+               }
205
+
206
+               if ( get_theme_mod( 'lsx_currencies_flag_position', false ) ) {
207
+                    $this->flag_position = 'right';
208
+               }
209
+
210
+               if ( get_theme_mod( 'lsx_currencies_currency_switcher_position', false ) ) {
211
+                    $this->switcher_symbol_position = 'left';
212
+               }
213
+          }
214
+          $this->available_currencies = $this->get_available_currencies();
215
+          $this->flag_relations = $this->get_flag_relations();
216
+          $this->currency_symbols = $this->get_currency_symbols();
217
+     }
218
+
219
+     /**
220
+      * Returns Currency Flag for currency code provided
221
+      *
222
+      * @param $key string
223
+      * @return string
224
+      */
225
+     public function get_currency_flag( $key = 'USD' ) {
226
+          $key = strtoupper( $key );
227
+          return '<span class="flag-icon flag-icon-' . $this->flag_relations[ $key ] . '"></span> ';
228
+     }
229
+
230
+     /**
231
+      * Get Currency symbol.
232
+      *
233
+      * @param string $currency
234
+      * @return string
235
+      */
236
+     public function get_currency_symbol( $currency = '' ) {
237
+          if ( ! $currency ) {
238
+               $currency = $this->base_currency;
239
+          }
240
+          $currency_symbol = isset( $this->currency_symbols[ $currency ] ) ? $this->currency_symbols[ $currency ] : '';
241
+          return $currency_symbol;
242
+     }
243
+
244
+     /**
245
+      * Returns an array of the available currencies
246
+      *
247
+      * @return array
248
+      */
249
+     public function get_available_currencies() {
250
+
251
+          $paid_currencies = array(
252
+               'BWP' => esc_html__( 'Botswana Pula', 'lsx-currencies' ),
253
+               'KES' => esc_html__( 'Kenyan Shilling', 'lsx-currencies' ),
254
+               'LAK' => esc_html__( 'Laos Kip', 'lsx-currencies' ),
255
+               'MWK' => esc_html__( 'Malawian Kwacha', 'lsx-currencies' ),
256
+               'MZN' => esc_html__( 'Mozambique Metical', 'lsx-currencies' ),
257
+               'NAD' => esc_html__( 'Namibian Dollar', 'lsx-currencies' ),
258
+               'TZS' => esc_html__( 'Tanzania Shilling', 'lsx-currencies' ),
259
+               'AED' => esc_html__( 'United Arab Emirates Dirham', 'lsx-currencies' ),
260
+               'ZMW' => esc_html__( 'Zambian Kwacha', 'lsx-currencies' ),
261
+               'ZWL' => esc_html__( 'Zimbabwean Dollar', 'lsx-currencies' ),
262
+          );
263
+          $free_currencies = array(
264
+               'AUD' => esc_html__( 'Australian Dollar', 'lsx-currencies' ),
265
+               'BRL' => esc_html__( 'Brazilian Real', 'lsx-currencies' ),
266
+               'GBP' => esc_html__( 'British Pound Sterling', 'lsx-currencies' ),
267
+               'CAD' => esc_html__( 'Canadian Dollar', 'lsx-currencies' ),
268
+               'CNY' => esc_html__( 'Chinese Yuan', 'lsx-currencies' ),
269
+               'EUR' => esc_html__( 'Euro', 'lsx-currencies' ),
270
+               'HKD' => esc_html__( 'Hong Kong Dollar', 'lsx-currencies' ),
271
+               'INR' => esc_html__( 'Indian Rupee', 'lsx-currencies' ),
272
+               'IDR' => esc_html__( 'Indonesia Rupiah', 'lsx-currencies' ),
273
+               'ILS' => esc_html__( 'Israeli Shekel', 'lsx-currencies' ),
274
+               'JPY' => esc_html__( 'Japanese Yen', 'lsx-currencies' ),
275
+               'MYR' => esc_html__( 'Malaysia Ringgit', 'lsx-currencies' ),
276
+               'NOK' => esc_html__( 'Norwegian Krone', 'lsx-currencies' ),
277
+               'NZD' => esc_html__( 'New Zealand Dollar', 'lsx-currencies' ),
278
+               'RUB' => esc_html__( 'Russian Ruble', 'lsx-currencies' ),
279
+               'SGD' => esc_html__( 'Singapore Dollar', 'lsx-currencies' ),
280
+               'ZAR' => esc_html__( 'South African Rand', 'lsx-currencies' ),
281
+               'SEK' => esc_html__( 'Swedish Krona', 'lsx-currencies' ),
282
+               'CHF' => esc_html__( 'Swiss Franc', 'lsx-currencies' ),
283
+               'USD' => esc_html__( 'United States Dollar', 'lsx-currencies' ),
284
+          );
285
+
286
+          if ( false !== $this->app_id ) {
287
+               $free_currencies = array_merge( $free_currencies, $paid_currencies );
288
+               asort( $free_currencies );
289
+          }
290
+
291
+          return $free_currencies;
292
+     }
293
+
294
+     /**
295
+      * Returns the ISO 3 code in relation to its 2 code values.
296
+      *
297
+      * @return array
298
+      */
299
+     public function get_flag_relations() {
300
+          return array(
301
+               'AUD' => 'au',
302
+               'BRL' => 'br',
303
+               'GBP' => 'gb',
304
+               'BWP' => 'bw',
305
+               'CAD' => 'ca',
306
+               'CNY' => 'cn',
307
+               'EUR' => 'eu',
308
+               'HKD' => 'hk',
309
+               'INR' => 'in',
310
+               'IDR' => 'id',
311
+               'ILS' => 'il',
312
+               'JPY' => 'jp',
313
+               'KES' => 'ke',
314
+               'LAK' => 'la',
315
+               'MWK' => 'mw',
316
+               'MYR' => 'my',
317
+               'MZN' => 'mz',
318
+               'NAD' => 'na',
319
+               'NZD' => 'nz',
320
+               'NOK' => 'no',
321
+               'RUB' => 'ru',
322
+               'SGD' => 'sg',
323
+               'ZAR' => 'za',
324
+               'SEK' => 'se',
325
+               'CHF' => 'ch',
326
+               'TZS' => 'tz',
327
+               'USD' => 'us',
328
+               'AED' => 'ae',
329
+               'ZMW' => 'zm',
330
+               'ZWL' => 'zw',
331
+          );
332
+     }
333
+
334
+     /**
335
+      * Returns all of the currency symbols.
336
+      *
337
+      * @return array
338
+      */
339
+     public function get_currency_symbols() {
340
+          return apply_filters( 'lsx_currencies_symbols', array(
341
+               'AED' => '&#x62f;.&#x625;',
342
+               'AFN' => '&#x60b;',
343
+               'ALL' => 'L',
344
+               'AMD' => 'AMD',
345
+               'ANG' => '&fnof;',
346
+               'AOA' => 'Kz',
347
+               'ARS' => '&#36;',
348
+               'AUD' => '&#36;',
349
+               'AWG' => 'Afl.',
350
+               'AZN' => 'AZN',
351
+               'BAM' => 'KM',
352
+               'BBD' => '&#36;',
353
+               'BDT' => '&#2547;&nbsp;',
354
+               'BGN' => '&#1083;&#1074;.',
355
+               'BHD' => '.&#x62f;.&#x628;',
356
+               'BIF' => 'Fr',
357
+               'BMD' => '&#36;',
358
+               'BND' => '&#36;',
359
+               'BOB' => 'Bs.',
360
+               'BRL' => '&#82;&#36;',
361
+               'BSD' => '&#36;',
362
+               'BTC' => '&#3647;',
363
+               'BTN' => 'Nu.',
364
+               'BWP' => 'P',
365
+               'BYR' => 'Br',
366
+               'BZD' => '&#36;',
367
+               'CAD' => '&#36;',
368
+               'CDF' => 'Fr',
369
+               'CHF' => '&#67;&#72;&#70;',
370
+               'CLP' => '&#36;',
371
+               'CNY' => '&yen;',
372
+               'COP' => '&#36;',
373
+               'CRC' => '&#x20a1;',
374
+               'CUC' => '&#36;',
375
+               'CUP' => '&#36;',
376
+               'CVE' => '&#36;',
377
+               'CZK' => '&#75;&#269;',
378
+               'DJF' => 'Fr',
379
+               'DKK' => 'DKK',
380
+               'DOP' => 'RD&#36;',
381
+               'DZD' => '&#x62f;.&#x62c;',
382
+               'EGP' => 'EGP',
383
+               'ERN' => 'Nfk',
384
+               'ETB' => 'Br',
385
+               'EUR' => '&euro;',
386
+               'FJD' => '&#36;',
387
+               'FKP' => '&pound;',
388
+               'GBP' => '&pound;',
389
+               'GEL' => '&#x10da;',
390
+               'GGP' => '&pound;',
391
+               'GHS' => '&#x20b5;',
392
+               'GIP' => '&pound;',
393
+               'GMD' => 'D',
394
+               'GNF' => 'Fr',
395
+               'GTQ' => 'Q',
396
+               'GYD' => '&#36;',
397
+               'HKD' => '&#36;',
398
+               'HNL' => 'L',
399
+               'HRK' => 'Kn',
400
+               'HTG' => 'G',
401
+               'HUF' => '&#70;&#116;',
402
+               'IDR' => 'Rp',
403
+               'ILS' => '&#8362;',
404
+               'IMP' => '&pound;',
405
+               'INR' => '&#8377;',
406
+               'IQD' => '&#x639;.&#x62f;',
407
+               'IRR' => '&#xfdfc;',
408
+               'IRT' => '&#x062A;&#x0648;&#x0645;&#x0627;&#x0646;',
409
+               'ISK' => 'kr.',
410
+               'JEP' => '&pound;',
411
+               'JMD' => '&#36;',
412
+               'JOD' => '&#x62f;.&#x627;',
413
+               'JPY' => '&yen;',
414
+               'KES' => 'KSh',
415
+               'KGS' => '&#x441;&#x43e;&#x43c;',
416
+               'KHR' => '&#x17db;',
417
+               'KMF' => 'Fr',
418
+               'KPW' => '&#x20a9;',
419
+               'KRW' => '&#8361;',
420
+               'KWD' => '&#x62f;.&#x643;',
421
+               'KYD' => '&#36;',
422
+               'KZT' => 'KZT',
423
+               'LAK' => '&#8365;',
424
+               'LBP' => '&#x644;.&#x644;',
425
+               'LKR' => '&#xdbb;&#xdd4;',
426
+               'LRD' => '&#36;',
427
+               'LSL' => 'L',
428
+               'LYD' => '&#x644;.&#x62f;',
429
+               'MAD' => '&#x62f;.&#x645;.',
430
+               'MDL' => 'MDL',
431
+               'MGA' => 'Ar',
432
+               'MKD' => '&#x434;&#x435;&#x43d;',
433
+               'MMK' => 'Ks',
434
+               'MNT' => '&#x20ae;',
435
+               'MOP' => 'P',
436
+               'MRO' => 'UM',
437
+               'MUR' => '&#x20a8;',
438
+               'MVR' => '.&#x783;',
439
+               'MWK' => 'MK',
440
+               'MXN' => '&#36;',
441
+               'MYR' => '&#82;&#77;',
442
+               'MZN' => 'MT',
443
+               'NAD' => '&#36;',
444
+               'NGN' => '&#8358;',
445
+               'NIO' => 'C&#36;',
446
+               'NOK' => '&#107;&#114;',
447
+               'NPR' => '&#8360;',
448
+               'NZD' => '&#36;',
449
+               'OMR' => '&#x631;.&#x639;.',
450
+               'PAB' => 'B/.',
451
+               'PEN' => 'S/.',
452
+               'PGK' => 'K',
453
+               'PHP' => '&#8369;',
454
+               'PKR' => '&#8360;',
455
+               'PLN' => '&#122;&#322;',
456
+               'PRB' => '&#x440;.',
457
+               'PYG' => '&#8370;',
458
+               'QAR' => '&#x631;.&#x642;',
459
+               'RMB' => '&yen;',
460
+               'RON' => 'lei',
461
+               'RSD' => '&#x434;&#x438;&#x43d;.',
462
+               'RUB' => '&#8381;',
463
+               'RWF' => 'Fr',
464
+               'SAR' => '&#x631;.&#x633;',
465
+               'SBD' => '&#36;',
466
+               'SCR' => '&#x20a8;',
467
+               'SDG' => '&#x62c;.&#x633;.',
468
+               'SEK' => '&#107;&#114;',
469
+               'SGD' => '&#36;',
470
+               'SHP' => '&pound;',
471
+               'SLL' => 'Le',
472
+               'SOS' => 'Sh',
473
+               'SRD' => '&#36;',
474
+               'SSP' => '&pound;',
475
+               'STD' => 'Db',
476
+               'SYP' => '&#x644;.&#x633;',
477
+               'SZL' => 'L',
478
+               'THB' => '&#3647;',
479
+               'TJS' => '&#x405;&#x41c;',
480
+               'TMT' => 'm',
481
+               'TND' => '&#x62f;.&#x62a;',
482
+               'TOP' => 'T&#36;',
483
+               'TRY' => '&#8378;',
484
+               'TTD' => '&#36;',
485
+               'TWD' => '&#78;&#84;&#36;',
486
+               'TZS' => 'Sh',
487
+               'UAH' => '&#8372;',
488
+               'UGX' => 'UGX',
489
+               'USD' => '&#36;',
490
+               'UYU' => '&#36;',
491
+               'UZS' => 'UZS',
492
+               'VEF' => 'Bs F',
493
+               'VND' => '&#8363;',
494
+               'VUV' => 'Vt',
495
+               'WST' => 'T',
496
+               'XAF' => 'Fr',
497
+               'XCD' => '&#36;',
498
+               'XOF' => 'Fr',
499
+               'XPF' => 'Fr',
500
+               'YER' => '&#xfdfc;',
501
+               'ZAR' => '&#82;',
502
+               'ZMW' => 'ZK',
503
+          ) );
504
+     }
505
+
506
+     /**
507
+      * Sanitize checkbox.
508
+      *
509
+      * @param $input html
510
+      * @return mixed
511
+      */
512
+     public function sanitize_checkbox( $input ) {
513
+          return ( 1 === absint( $input ) ) ? 1 : 0;
514
+     }
515
+
516
+     /**
517
+      * Sanitize select.
518
+      *
519
+      * @param $input html
520
+      * @return mixed
521
+      */
522
+     public function sanitize_select( $input ) {
523
+          if ( is_string( $input ) || is_integer( $input ) || is_bool( $input ) ) {
524
+               return $input;
525
+          } else {
526
+               return '';
527
+          }
528
+     }
529
+
530
+     /**
531
+      * Sanitize textarea.
532
+      *
533
+      * @param $input html
534
+      * @return mixed
535
+      */
536
+     public function sanitize_textarea( $input ) {
537
+          return wp_kses_post( $input );
538
+     }
539
+
540
+     /**
541
+      * Migrate the old data (from UIX) to WP Customizer settings.
542
+      *
543
+      * @since 1.1.1
544
+      */
545
+     public function migration_uix_to_customize() {
546
+          $visual_tab_migration = get_theme_mod( 'lsx_currencies_visual_tab_migration', false );
547
+
548
+          if ( empty( $visual_tab_migration ) ) {
549
+               if ( isset( $this->options['display'] ) ) {
550
+                    if ( isset( $this->options['display']['currency_menu_switcher'] ) && is_array( $this->options['display']['currency_menu_switcher'] ) && ! empty( $this->options['display']['currency_menu_switcher'] ) ) {
551
+                         $currency_menu_position = $this->options['display']['currency_menu_switcher'];
552
+
553
+                         foreach ( $currency_menu_position as $key => $value ) {
554
+                              set_theme_mod( 'lsx_currencies_currency_menu_position', $key );
555
+                              break;
556
+                         }
557
+                    }
558
+
559
+                    if ( isset( $this->options['display']['display_flags'] ) && 'on' === $this->options['display']['display_flags'] ) {
560
+                         set_theme_mod( 'lsx_currencies_display_flags', true );
561
+                    }
562
+
563
+                    if ( isset( $this->options['display']['flag_position'] ) && 'on' === $this->options['display']['flag_position'] ) {
564
+                         set_theme_mod( 'lsx_currencies_flag_position', 'right' );
565
+                    }
566
+
567
+                    if ( isset( $this->options['display']['currency_switcher_position'] ) && 'on' === $this->options['display']['currency_switcher_position'] ) {
568
+                         set_theme_mod( 'lsx_currencies_currency_switcher_position', 'left' );
569
+                    }
570
+               }
571
+
572
+               set_theme_mod( 'lsx_currencies_visual_tab_migration', true );
573
+          }
574
+     }
575 575
 }
Please login to merge, or discard this patch.
Spacing   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -111,8 +111,8 @@  discard block
 block discarded – undo
111 111
 	 * Constructor
112 112
 	 */
113 113
 	public function __construct() {
114
-		add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
115
-		add_action( 'plugins_loaded', array( $this, 'set_defaults' ) );
114
+		add_action('plugins_loaded', array($this, 'plugins_loaded'));
115
+		add_action('plugins_loaded', array($this, 'set_defaults'));
116 116
 	}
117 117
 
118 118
 	/**
@@ -122,7 +122,7 @@  discard block
 block discarded – undo
122 122
 	 */
123 123
 	public static function init() {
124 124
 		// If the single instance hasn't been set, set it now.
125
-		if ( ! isset( self::$instance ) ) {
125
+		if (!isset(self::$instance)) {
126 126
 			self::$instance = new self();
127 127
 		}
128 128
 		return self::$instance;
@@ -132,23 +132,23 @@  discard block
 block discarded – undo
132 132
 	 * After active plugins and pluggable functions are loaded
133 133
 	 */
134 134
 	public function plugins_loaded() {
135
-		require_once LSX_CURRENCIES_PATH . 'classes/class-admin.php';
135
+		require_once LSX_CURRENCIES_PATH.'classes/class-admin.php';
136 136
 		$this->admin = \lsx\currencies\classes\Admin::init();
137 137
 
138
-		require_once LSX_CURRENCIES_PATH . 'classes/class-frontend.php';
138
+		require_once LSX_CURRENCIES_PATH.'classes/class-frontend.php';
139 139
 		$this->frontend = \lsx\currencies\classes\Frontend::init();
140 140
 
141
-		if ( class_exists( 'WooCommerce' ) ) {
142
-			require_once LSX_CURRENCIES_PATH . 'classes/class-woocommerce.php';
141
+		if (class_exists('WooCommerce')) {
142
+			require_once LSX_CURRENCIES_PATH.'classes/class-woocommerce.php';
143 143
 			$this->woocommerce = \lsx\currencies\classes\WooCommerce::init();
144 144
 		}
145 145
 
146
-		if ( class_exists( 'FacetWP' ) ) {
147
-			require_once LSX_CURRENCIES_PATH . 'classes/class-facetwp.php';
146
+		if (class_exists('FacetWP')) {
147
+			require_once LSX_CURRENCIES_PATH.'classes/class-facetwp.php';
148 148
 			$this->facetwp = \lsx\currencies\classes\FacetWP::init();
149 149
 		}
150 150
 
151
-		require_once LSX_CURRENCIES_PATH . '/includes/template-tags.php';
151
+		require_once LSX_CURRENCIES_PATH.'/includes/template-tags.php';
152 152
 	}
153 153
 
154 154
 	/**
@@ -156,58 +156,58 @@  discard block
 block discarded – undo
156 156
 	 */
157 157
 	public function set_defaults() {
158 158
 		$settings_tab = 'display';
159
-		if ( function_exists( 'tour_operator' ) ) {
160
-			$options = get_option( '_lsx-to_settings', false );
159
+		if (function_exists('tour_operator')) {
160
+			$options = get_option('_lsx-to_settings', false);
161 161
 			$settings_tab = 'general';
162 162
 		} else {
163
-			$options = get_option( '_lsx_settings', false );
163
+			$options = get_option('_lsx_settings', false);
164 164
 
165
-			if ( false === $options ) {
166
-				$options = get_option( '_lsx_lsx-settings', false );
165
+			if (false === $options) {
166
+				$options = get_option('_lsx_lsx-settings', false);
167 167
 			}
168 168
 		}
169 169
 
170
-		if ( false !== $options ) {
170
+		if (false !== $options) {
171 171
 			$this->options = $options;
172 172
 			$this->migration_uix_to_customize();
173 173
 
174
-			if ( isset( $this->options[ $settings_tab ] ) && isset( $this->options[ $settings_tab ]['currency'] ) ) {
175
-				$this->base_currency = apply_filters( 'lsx_currencies_base_currency', $this->options[ $settings_tab ]['currency'], $this );
174
+			if (isset($this->options[$settings_tab]) && isset($this->options[$settings_tab]['currency'])) {
175
+				$this->base_currency = apply_filters('lsx_currencies_base_currency', $this->options[$settings_tab]['currency'], $this);
176 176
 			}
177 177
 
178
-			if ( isset( $this->options[ $settings_tab ]['additional_currencies'] ) && is_array( $this->options[ $settings_tab ]['additional_currencies'] ) && ! empty( $this->options[ $settings_tab ]['additional_currencies'] ) ) {
179
-				$this->additional_currencies = $this->options[ $settings_tab ]['additional_currencies'];
178
+			if (isset($this->options[$settings_tab]['additional_currencies']) && is_array($this->options[$settings_tab]['additional_currencies']) && !empty($this->options[$settings_tab]['additional_currencies'])) {
179
+				$this->additional_currencies = $this->options[$settings_tab]['additional_currencies'];
180 180
 			}
181 181
 
182
-			if ( isset( $this->options[ $settings_tab ]['multi_price'] ) && 'on' === $this->options[ $settings_tab ]['multi_price'] ) {
182
+			if (isset($this->options[$settings_tab]['multi_price']) && 'on' === $this->options[$settings_tab]['multi_price']) {
183 183
 				$this->multi_prices = true;
184 184
 			}
185 185
 
186
-			if ( isset( $this->options[ $settings_tab ]['convert_to_single_currency'] ) && 'on' === $this->options[ $settings_tab ]['convert_to_single_currency'] ) {
186
+			if (isset($this->options[$settings_tab]['convert_to_single_currency']) && 'on' === $this->options[$settings_tab]['convert_to_single_currency']) {
187 187
 				$this->convert_to_single = true;
188 188
 			}
189 189
 
190
-			if ( isset( $this->options[ $settings_tab ]['remove_decimals'] ) && 'on' === $this->options[ $settings_tab ]['remove_decimals'] ) {
190
+			if (isset($this->options[$settings_tab]['remove_decimals']) && 'on' === $this->options[$settings_tab]['remove_decimals']) {
191 191
 				$this->remove_decimals = true;
192 192
 			}
193 193
 
194
-			if ( isset( $this->options['api']['openexchange_api'] ) && '' !== $this->options['api']['openexchange_api'] ) {
194
+			if (isset($this->options['api']['openexchange_api']) && '' !== $this->options['api']['openexchange_api']) {
195 195
 				$this->app_id = $this->options['api']['openexchange_api'];
196
-				$this->api_url = 'https://openexchangerates.org/api/latest.json?app_id=' . $this->app_id;
196
+				$this->api_url = 'https://openexchangerates.org/api/latest.json?app_id='.$this->app_id;
197 197
 			}
198 198
 
199 199
 			// Currency Switcher Options.
200
-			$this->menus = get_theme_mod( 'lsx_currencies_currency_menu_position', false );
200
+			$this->menus = get_theme_mod('lsx_currencies_currency_menu_position', false);
201 201
 
202
-			if ( get_theme_mod( 'lsx_currencies_display_flags', false ) ) {
202
+			if (get_theme_mod('lsx_currencies_display_flags', false)) {
203 203
 				$this->display_flags = true;
204 204
 			}
205 205
 
206
-			if ( get_theme_mod( 'lsx_currencies_flag_position', false ) ) {
206
+			if (get_theme_mod('lsx_currencies_flag_position', false)) {
207 207
 				$this->flag_position = 'right';
208 208
 			}
209 209
 
210
-			if ( get_theme_mod( 'lsx_currencies_currency_switcher_position', false ) ) {
210
+			if (get_theme_mod('lsx_currencies_currency_switcher_position', false)) {
211 211
 				$this->switcher_symbol_position = 'left';
212 212
 			}
213 213
 		}
@@ -222,9 +222,9 @@  discard block
 block discarded – undo
222 222
 	 * @param $key string
223 223
 	 * @return string
224 224
 	 */
225
-	public function get_currency_flag( $key = 'USD' ) {
226
-		$key = strtoupper( $key );
227
-		return '<span class="flag-icon flag-icon-' . $this->flag_relations[ $key ] . '"></span> ';
225
+	public function get_currency_flag($key = 'USD') {
226
+		$key = strtoupper($key);
227
+		return '<span class="flag-icon flag-icon-'.$this->flag_relations[$key].'"></span> ';
228 228
 	}
229 229
 
230 230
 	/**
@@ -233,11 +233,11 @@  discard block
 block discarded – undo
233 233
 	 * @param string $currency
234 234
 	 * @return string
235 235
 	 */
236
-	public function get_currency_symbol( $currency = '' ) {
237
-		if ( ! $currency ) {
236
+	public function get_currency_symbol($currency = '') {
237
+		if (!$currency) {
238 238
 			$currency = $this->base_currency;
239 239
 		}
240
-		$currency_symbol = isset( $this->currency_symbols[ $currency ] ) ? $this->currency_symbols[ $currency ] : '';
240
+		$currency_symbol = isset($this->currency_symbols[$currency]) ? $this->currency_symbols[$currency] : '';
241 241
 		return $currency_symbol;
242 242
 	}
243 243
 
@@ -249,43 +249,43 @@  discard block
 block discarded – undo
249 249
 	public function get_available_currencies() {
250 250
 
251 251
 		$paid_currencies = array(
252
-			'BWP' => esc_html__( 'Botswana Pula', 'lsx-currencies' ),
253
-			'KES' => esc_html__( 'Kenyan Shilling', 'lsx-currencies' ),
254
-			'LAK' => esc_html__( 'Laos Kip', 'lsx-currencies' ),
255
-			'MWK' => esc_html__( 'Malawian Kwacha', 'lsx-currencies' ),
256
-			'MZN' => esc_html__( 'Mozambique Metical', 'lsx-currencies' ),
257
-			'NAD' => esc_html__( 'Namibian Dollar', 'lsx-currencies' ),
258
-			'TZS' => esc_html__( 'Tanzania Shilling', 'lsx-currencies' ),
259
-			'AED' => esc_html__( 'United Arab Emirates Dirham', 'lsx-currencies' ),
260
-			'ZMW' => esc_html__( 'Zambian Kwacha', 'lsx-currencies' ),
261
-			'ZWL' => esc_html__( 'Zimbabwean Dollar', 'lsx-currencies' ),
252
+			'BWP' => esc_html__('Botswana Pula', 'lsx-currencies'),
253
+			'KES' => esc_html__('Kenyan Shilling', 'lsx-currencies'),
254
+			'LAK' => esc_html__('Laos Kip', 'lsx-currencies'),
255
+			'MWK' => esc_html__('Malawian Kwacha', 'lsx-currencies'),
256
+			'MZN' => esc_html__('Mozambique Metical', 'lsx-currencies'),
257
+			'NAD' => esc_html__('Namibian Dollar', 'lsx-currencies'),
258
+			'TZS' => esc_html__('Tanzania Shilling', 'lsx-currencies'),
259
+			'AED' => esc_html__('United Arab Emirates Dirham', 'lsx-currencies'),
260
+			'ZMW' => esc_html__('Zambian Kwacha', 'lsx-currencies'),
261
+			'ZWL' => esc_html__('Zimbabwean Dollar', 'lsx-currencies'),
262 262
 		);
263 263
 		$free_currencies = array(
264
-			'AUD' => esc_html__( 'Australian Dollar', 'lsx-currencies' ),
265
-			'BRL' => esc_html__( 'Brazilian Real', 'lsx-currencies' ),
266
-			'GBP' => esc_html__( 'British Pound Sterling', 'lsx-currencies' ),
267
-			'CAD' => esc_html__( 'Canadian Dollar', 'lsx-currencies' ),
268
-			'CNY' => esc_html__( 'Chinese Yuan', 'lsx-currencies' ),
269
-			'EUR' => esc_html__( 'Euro', 'lsx-currencies' ),
270
-			'HKD' => esc_html__( 'Hong Kong Dollar', 'lsx-currencies' ),
271
-			'INR' => esc_html__( 'Indian Rupee', 'lsx-currencies' ),
272
-			'IDR' => esc_html__( 'Indonesia Rupiah', 'lsx-currencies' ),
273
-			'ILS' => esc_html__( 'Israeli Shekel', 'lsx-currencies' ),
274
-			'JPY' => esc_html__( 'Japanese Yen', 'lsx-currencies' ),
275
-			'MYR' => esc_html__( 'Malaysia Ringgit', 'lsx-currencies' ),
276
-			'NOK' => esc_html__( 'Norwegian Krone', 'lsx-currencies' ),
277
-			'NZD' => esc_html__( 'New Zealand Dollar', 'lsx-currencies' ),
278
-			'RUB' => esc_html__( 'Russian Ruble', 'lsx-currencies' ),
279
-			'SGD' => esc_html__( 'Singapore Dollar', 'lsx-currencies' ),
280
-			'ZAR' => esc_html__( 'South African Rand', 'lsx-currencies' ),
281
-			'SEK' => esc_html__( 'Swedish Krona', 'lsx-currencies' ),
282
-			'CHF' => esc_html__( 'Swiss Franc', 'lsx-currencies' ),
283
-			'USD' => esc_html__( 'United States Dollar', 'lsx-currencies' ),
264
+			'AUD' => esc_html__('Australian Dollar', 'lsx-currencies'),
265
+			'BRL' => esc_html__('Brazilian Real', 'lsx-currencies'),
266
+			'GBP' => esc_html__('British Pound Sterling', 'lsx-currencies'),
267
+			'CAD' => esc_html__('Canadian Dollar', 'lsx-currencies'),
268
+			'CNY' => esc_html__('Chinese Yuan', 'lsx-currencies'),
269
+			'EUR' => esc_html__('Euro', 'lsx-currencies'),
270
+			'HKD' => esc_html__('Hong Kong Dollar', 'lsx-currencies'),
271
+			'INR' => esc_html__('Indian Rupee', 'lsx-currencies'),
272
+			'IDR' => esc_html__('Indonesia Rupiah', 'lsx-currencies'),
273
+			'ILS' => esc_html__('Israeli Shekel', 'lsx-currencies'),
274
+			'JPY' => esc_html__('Japanese Yen', 'lsx-currencies'),
275
+			'MYR' => esc_html__('Malaysia Ringgit', 'lsx-currencies'),
276
+			'NOK' => esc_html__('Norwegian Krone', 'lsx-currencies'),
277
+			'NZD' => esc_html__('New Zealand Dollar', 'lsx-currencies'),
278
+			'RUB' => esc_html__('Russian Ruble', 'lsx-currencies'),
279
+			'SGD' => esc_html__('Singapore Dollar', 'lsx-currencies'),
280
+			'ZAR' => esc_html__('South African Rand', 'lsx-currencies'),
281
+			'SEK' => esc_html__('Swedish Krona', 'lsx-currencies'),
282
+			'CHF' => esc_html__('Swiss Franc', 'lsx-currencies'),
283
+			'USD' => esc_html__('United States Dollar', 'lsx-currencies'),
284 284
 		);
285 285
 
286
-		if ( false !== $this->app_id ) {
287
-			$free_currencies = array_merge( $free_currencies, $paid_currencies );
288
-			asort( $free_currencies );
286
+		if (false !== $this->app_id) {
287
+			$free_currencies = array_merge($free_currencies, $paid_currencies);
288
+			asort($free_currencies);
289 289
 		}
290 290
 
291 291
 		return $free_currencies;
@@ -337,7 +337,7 @@  discard block
 block discarded – undo
337 337
 	 * @return array
338 338
 	 */
339 339
 	public function get_currency_symbols() {
340
-		return apply_filters( 'lsx_currencies_symbols', array(
340
+		return apply_filters('lsx_currencies_symbols', array(
341 341
 			'AED' => '&#x62f;.&#x625;',
342 342
 			'AFN' => '&#x60b;',
343 343
 			'ALL' => 'L',
@@ -500,7 +500,7 @@  discard block
 block discarded – undo
500 500
 			'YER' => '&#xfdfc;',
501 501
 			'ZAR' => '&#82;',
502 502
 			'ZMW' => 'ZK',
503
-		) );
503
+		));
504 504
 	}
505 505
 
506 506
 	/**
@@ -509,8 +509,8 @@  discard block
 block discarded – undo
509 509
 	 * @param $input html
510 510
 	 * @return mixed
511 511
 	 */
512
-	public function sanitize_checkbox( $input ) {
513
-		return ( 1 === absint( $input ) ) ? 1 : 0;
512
+	public function sanitize_checkbox($input) {
513
+		return (1 === absint($input)) ? 1 : 0;
514 514
 	}
515 515
 
516 516
 	/**
@@ -519,8 +519,8 @@  discard block
 block discarded – undo
519 519
 	 * @param $input html
520 520
 	 * @return mixed
521 521
 	 */
522
-	public function sanitize_select( $input ) {
523
-		if ( is_string( $input ) || is_integer( $input ) || is_bool( $input ) ) {
522
+	public function sanitize_select($input) {
523
+		if (is_string($input) || is_integer($input) || is_bool($input)) {
524 524
 			return $input;
525 525
 		} else {
526 526
 			return '';
@@ -533,8 +533,8 @@  discard block
 block discarded – undo
533 533
 	 * @param $input html
534 534
 	 * @return mixed
535 535
 	 */
536
-	public function sanitize_textarea( $input ) {
537
-		return wp_kses_post( $input );
536
+	public function sanitize_textarea($input) {
537
+		return wp_kses_post($input);
538 538
 	}
539 539
 
540 540
 	/**
@@ -543,33 +543,33 @@  discard block
 block discarded – undo
543 543
 	 * @since 1.1.1
544 544
 	 */
545 545
 	public function migration_uix_to_customize() {
546
-		$visual_tab_migration = get_theme_mod( 'lsx_currencies_visual_tab_migration', false );
546
+		$visual_tab_migration = get_theme_mod('lsx_currencies_visual_tab_migration', false);
547 547
 
548
-		if ( empty( $visual_tab_migration ) ) {
549
-			if ( isset( $this->options['display'] ) ) {
550
-				if ( isset( $this->options['display']['currency_menu_switcher'] ) && is_array( $this->options['display']['currency_menu_switcher'] ) && ! empty( $this->options['display']['currency_menu_switcher'] ) ) {
548
+		if (empty($visual_tab_migration)) {
549
+			if (isset($this->options['display'])) {
550
+				if (isset($this->options['display']['currency_menu_switcher']) && is_array($this->options['display']['currency_menu_switcher']) && !empty($this->options['display']['currency_menu_switcher'])) {
551 551
 					$currency_menu_position = $this->options['display']['currency_menu_switcher'];
552 552
 
553
-					foreach ( $currency_menu_position as $key => $value ) {
554
-						set_theme_mod( 'lsx_currencies_currency_menu_position', $key );
553
+					foreach ($currency_menu_position as $key => $value) {
554
+						set_theme_mod('lsx_currencies_currency_menu_position', $key);
555 555
 						break;
556 556
 					}
557 557
 				}
558 558
 
559
-				if ( isset( $this->options['display']['display_flags'] ) && 'on' === $this->options['display']['display_flags'] ) {
560
-					set_theme_mod( 'lsx_currencies_display_flags', true );
559
+				if (isset($this->options['display']['display_flags']) && 'on' === $this->options['display']['display_flags']) {
560
+					set_theme_mod('lsx_currencies_display_flags', true);
561 561
 				}
562 562
 
563
-				if ( isset( $this->options['display']['flag_position'] ) && 'on' === $this->options['display']['flag_position'] ) {
564
-					set_theme_mod( 'lsx_currencies_flag_position', 'right' );
563
+				if (isset($this->options['display']['flag_position']) && 'on' === $this->options['display']['flag_position']) {
564
+					set_theme_mod('lsx_currencies_flag_position', 'right');
565 565
 				}
566 566
 
567
-				if ( isset( $this->options['display']['currency_switcher_position'] ) && 'on' === $this->options['display']['currency_switcher_position'] ) {
568
-					set_theme_mod( 'lsx_currencies_currency_switcher_position', 'left' );
567
+				if (isset($this->options['display']['currency_switcher_position']) && 'on' === $this->options['display']['currency_switcher_position']) {
568
+					set_theme_mod('lsx_currencies_currency_switcher_position', 'left');
569 569
 				}
570 570
 			}
571 571
 
572
-			set_theme_mod( 'lsx_currencies_visual_tab_migration', true );
572
+			set_theme_mod('lsx_currencies_visual_tab_migration', true);
573 573
 		}
574 574
 	}
575 575
 }
Please login to merge, or discard this patch.