Issues (575)

classes/class-currencies.php (116 issues)

1
<?php
2
/**
3
 * LSX Currency Main Class
4
 *
5
 * @package   LSX Currencies
6
 * @author    LightSpeed
7
 * @license   GPL3
8
 * @link
9
 * @copyright 2019 LightSpeed
10
 */
11
12
namespace lsx\currencies\classes;
13
14
/**
15
 * The main class
16
 */
17
class Currencies {
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 */
0 ignored issues
show
Missing short description in doc comment
Loading history...
65
	public $plugin_slug = 'lsx-currencies';
0 ignored issues
show
Expected 1 blank line(s) before member var; 0 found
Loading history...
66
67
	/** @var array */
0 ignored issues
show
Missing short description in doc comment
Loading history...
68
	public $options = false;
69
70
	/** @var string */
0 ignored issues
show
Missing short description in doc comment
Loading history...
71
	public $base_currency = 'USD';
72
73
	/** @var array */
0 ignored issues
show
Missing short description in doc comment
Loading history...
74
	public $additional_currencies = array();
75
76
	/** @var array */
0 ignored issues
show
Missing short description in doc comment
Loading history...
77
	public $available_currencies = array();
78
79
	/** @var array */
0 ignored issues
show
Missing short description in doc comment
Loading history...
80
	public $flag_relations = array();
81
82
	/** @var array */
0 ignored issues
show
Missing short description in doc comment
Loading history...
83
	public $currency_symbols = array();
84
85
	/** @var boolean */
0 ignored issues
show
Missing short description in doc comment
Loading history...
86
	public $multi_prices = false;
87
88
	/** @var boolean */
0 ignored issues
show
Missing short description in doc comment
Loading history...
89
	public $convert_to_single = false;
90
91
	/** @var boolean */
0 ignored issues
show
Missing short description in doc comment
Loading history...
92
	public $app_id = false;
93
94
	/*  Currency Switcher Options */
95
	/** @var array */
0 ignored issues
show
Missing short description in doc comment
Loading history...
96
	public $menus = false;
0 ignored issues
show
Expected 1 blank line(s) before member var; 0 found
Loading history...
97
98
	/** @var boolean */
0 ignored issues
show
Missing short description in doc comment
Loading history...
99
	public $display_flags = false;
100
101
	/** @var string */
0 ignored issues
show
Missing short description in doc comment
Loading history...
102
	public $flag_position = 'left';
103
104
	/** @var string */
0 ignored issues
show
Missing short description in doc comment
Loading history...
105
	public $switcher_symbol_position = 'right';
106
107
	/** @var boolean */
0 ignored issues
show
Missing short description in doc comment
Loading history...
108
	public $remove_decimals = false;
109
110
	/**
111
	 * Constructor
112
	 */
113
	public function __construct() {
0 ignored issues
show
Expected 2 blank lines before function; 1 found
Loading history...
114
		add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
115
		add_action( 'plugins_loaded', array( $this, 'set_defaults' ) );
116
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
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 ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
126
			self::$instance = new self();
127
		}
0 ignored issues
show
No blank line found after control structure
Loading history...
128
		return self::$instance;
129
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
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' ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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' ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
153
154
	/**
155
	 * Get the options
156
	 */
157
	public function set_defaults() {
158
		$settings_tab = 'display';
159
		if ( function_exists( 'tour_operator' ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
160
			$options = get_option( '_lsx-to_settings', false );
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 6 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
161
			$settings_tab = 'general';
162
		} else {
163
			$options = get_option( '_lsx_settings', false );
164
165
			if ( false === $options ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
166
				$options = get_option( '_lsx_lsx-settings', false );
167
			}
168
		}
169
170
		if ( false !== $options ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
171
			$this->options = $options;
172
			$this->migration_uix_to_customize();
173
174
			if ( isset( $this->options[ $settings_tab ] ) && isset( $this->options[ $settings_tab ]['currency'] ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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'] ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
187
				$this->convert_to_single = true;
188
			}
189
190
			if ( isset( $this->options[ $settings_tab ]['remove_decimals'] ) && 'on' === $this->options[ $settings_tab ]['remove_decimals'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
191
				$this->remove_decimals = true;
192
			}
193
194
			if ( isset( $this->options['api']['openexchange_api'] ) && '' !== $this->options['api']['openexchange_api'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
195
				$this->app_id = $this->options['api']['openexchange_api'];
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 2 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
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 );
0 ignored issues
show
Documentation Bug introduced by
It seems like get_theme_mod('lsx_curre..._menu_position', false) can also be of type false. However, the property $menus is declared as type array. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
201
202
			if ( get_theme_mod( 'lsx_currencies_display_flags', false ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
203
				$this->display_flags = true;
204
			}
205
206
			if ( get_theme_mod( 'lsx_currencies_flag_position', false ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
207
				$this->flag_position = 'right';
208
			}
209
210
			if ( get_theme_mod( 'lsx_currencies_currency_switcher_position', false ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
211
				$this->switcher_symbol_position = 'left';
212
			}
213
		}
0 ignored issues
show
No blank line found after control structure
Loading history...
214
		$this->available_currencies = $this->get_available_currencies();
215
		$this->flag_relations = $this->get_flag_relations();
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 7 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
216
		$this->currency_symbols = $this->get_currency_symbols();
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 5 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
217
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
218
219
	/**
0 ignored issues
show
Coding Style Documentation introduced by
Doc comment for parameter "$key" missing
Loading history...
220
	 * Returns Currency Flag for currency code provided
221
	 *
222
	 * @param $key string
0 ignored issues
show
Missing parameter name
Loading history...
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
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
229
230
	/**
231
	 * Get Currency symbol.
232
	 *
233
	 * @param string $currency
0 ignored issues
show
Coding Style Documentation introduced by
Missing parameter comment
Loading history...
234
	 * @return string
235
	 */
236
	public function get_currency_symbol( $currency = '' ) {
237
		if ( ! $currency ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
238
			$currency = $this->base_currency;
239
		}
0 ignored issues
show
No blank line found after control structure
Loading history...
240
		$currency_symbol = isset( $this->currency_symbols[ $currency ] ) ? $this->currency_symbols[ $currency ] : '';
241
		return $currency_symbol;
242
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
243
244
	/**
245
	 * Returns an array of the available currencies
246
	 *
247
	 * @return array
248
	 */
249
	public function get_available_currencies() {
0 ignored issues
show
Expected 0 blank lines after opening function brace; 1 found
Loading history...
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 ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
287
			$free_currencies = array_merge( $free_currencies, $paid_currencies );
288
			asort( $free_currencies );
289
		}
290
291
		return $free_currencies;
292
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
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
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
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(
0 ignored issues
show
The opening parenthesis of a multi-line function call should be the last content on the line.
Loading history...
For multi-line function calls, each argument should be on a separate line.

For a function calls that spawns multiple lines, the coding style suggests to split arguments to separate lines like this:

someFunctionCall(
    $firstArgument,
    $secondArgument,
    $thirdArgument
);
Loading history...
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
		) );
0 ignored issues
show
For multi-line function calls, the closing parenthesis should be on a new line.

If a function call spawns multiple lines, the coding standard suggests to move the closing parenthesis to a new line:

someFunctionCall(
    $firstArgument,
    $secondArgument,
    $thirdArgument
); // Closing parenthesis on a new line.
Loading history...
504
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
505
506
	/**
0 ignored issues
show
Coding Style Documentation introduced by
Doc comment for parameter "$input" missing
Loading history...
507
	 * Sanitize checkbox.
508
	 *
509
	 * @param $input html
0 ignored issues
show
The type lsx\currencies\classes\html was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
Missing parameter name
Loading history...
510
	 * @return mixed
511
	 */
512
	public function sanitize_checkbox( $input ) {
513
		return ( 1 === absint( $input ) ) ? 1 : 0;
514
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
515
516
	/**
0 ignored issues
show
Coding Style Documentation introduced by
Doc comment for parameter "$input" missing
Loading history...
517
	 * Sanitize select.
518
	 *
519
	 * @param $input html
0 ignored issues
show
Missing parameter name
Loading history...
520
	 * @return mixed
521
	 */
522
	public function sanitize_select( $input ) {
523
		if ( is_string( $input ) || is_integer( $input ) || is_bool( $input ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
524
			return $input;
525
		} else {
526
			return '';
527
		}
528
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
529
530
	/**
0 ignored issues
show
Coding Style Documentation introduced by
Doc comment for parameter "$input" missing
Loading history...
531
	 * Sanitize textarea.
532
	 *
533
	 * @param $input html
0 ignored issues
show
Missing parameter name
Loading history...
534
	 * @return mixed
535
	 */
536
	public function sanitize_textarea( $input ) {
537
		return wp_kses_post( $input );
538
	}
0 ignored issues
show
Expected 2 blank lines after function; 1 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
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 ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
549
			if ( isset( $this->options['display'] ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
550
				if ( isset( $this->options['display']['currency_menu_switcher'] ) && is_array( $this->options['display']['currency_menu_switcher'] ) && ! empty( $this->options['display']['currency_menu_switcher'] ) ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
551
					$currency_menu_position = $this->options['display']['currency_menu_switcher'];
552
553
					foreach ( $currency_menu_position as $key => $value ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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'] ) {
0 ignored issues
show
Expected 0 spaces after opening bracket; 1 found
Loading history...
Expected 0 spaces before closing bracket; 1 found
Loading history...
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
	}
0 ignored issues
show
Expected 2 blank lines after function; 0 found
Loading history...
Expected 1 blank line before closing function brace; 0 found
Loading history...
575
}
576