Passed
Push — dependabot/composer/phpcompati... ( 4e78d6 )
by
unknown
05:28
created
classes/class-frontend.php 2 patches
Indentation   +375 added lines, -375 removed lines patch added patch discarded remove patch
@@ -16,379 +16,379 @@
 block discarded – undo
16 16
  */
17 17
 class Frontend {
18 18
 
19
-	/**
20
-	 * Holds instance of the class
21
-	 *
22
-	 * @var object \lsx\currencies\classes\Admin()
23
-	 */
24
-	private static $instance;
25
-
26
-	/**
27
-	 * This will hold the rates with a base currency of USD.
28
-	 *
29
-	 * @var boolean
30
-	 */
31
-	public $rates = false;
32
-
33
-	/**
34
-	 * This will hold the rates error message.
35
-	 *
36
-	 * @var boolean
37
-	 */
38
-	public $rates_message = false;
39
-
40
-	/**
41
-	 * This is the current currency selected, default to the base currency.
42
-	 *
43
-	 * @var boolean
44
-	 */
45
-	public $current_currency = false;
46
-
47
-	/**
48
-	 * Constructor
49
-	 */
50
-	public function __construct() {
51
-		if ( ! is_admin() ) {
52
-			add_action( 'plugins_loaded', array( $this, 'set_defaults' ), 11, 1 );
53
-			add_filter( 'lsx_to_custom_field_query', array( $this, 'price_filter' ), 20, 5 );
54
-			add_action( 'wp_enqueue_scripts', array( $this, 'assets' ), 5 );
55
-			add_filter( 'wp_nav_menu_items', array( $this, 'wp_nav_menu_items_filter' ), 10, 2 );
56
-			add_filter( 'wp_kses_allowed_html', array( $this, 'wp_kses_allowed_html' ), 10, 2 );
57
-			add_filter( 'get_post_metadata', array( $this, 'filter_post_meta' ), 100, 4 );
58
-		}
59
-	}
60
-
61
-	/**
62
-	 * Return an instance of this class.
63
-	 *
64
-	 * @return  object
65
-	 */
66
-	public static function init() {
67
-		// If the single instance hasn't been set, set it now.
68
-		if ( ! isset( self::$instance ) ) {
69
-			self::$instance = new self();
70
-		}
71
-		return self::$instance;
72
-	}
73
-
74
-	/**
75
-	 * Constructor
76
-	 */
77
-	public function set_defaults() {
78
-		$this->rates_message = esc_html__( 'Error: API key isn\'t set.', 'lsx-currencies' );
79
-		$this->rates = get_transient( 'lsx_currencies_rates' );
80
-		if ( false === $this->rates ) {
81
-			$rates         = wp_remote_retrieve_body( wp_safe_remote_get( lsx_currencies()->api_url ) );
82
-			$decoded_rates = json_decode( $rates );
83
-
84
-			if ( is_wp_error( $rates ) ) {
85
-				$this->rates_message = $rates->get_error_message();
86
-			} elseif ( ! empty( $decoded_rates->error ) ) {
87
-				$this->rates_message = $decoded_rates->description;
88
-			} elseif ( empty( $rates ) ) {
89
-				$this->rates_message = esc_html__( 'Error: API response is empty.', 'lsx-currencies' );
90
-			} else {
91
-				$this->rates_message = esc_html__( 'Success (new request).', 'lsx-currencies' );
92
-				set_transient( 'lsx_currencies_rates', $decoded_rates->rates, 60 * 60 * 12 );
93
-				do_action( 'lsx_currencies_rates_refreshed' );
94
-				$this->rates = $decoded_rates->rates;
95
-			}
96
-		} else {
97
-			$this->rates_message = esc_html__( 'Success (from cache).', 'lsx-currencies' );
98
-		}
99
-		$this->current_currency = isset( $_COOKIE['lsx_currencies_choice'] ) ? sanitize_key( $_COOKIE['lsx_currencies_choice'] ) : lsx_currencies()->base_currency;
100
-		$this->current_currency = strtoupper( $this->current_currency );
101
-	}
102
-
103
-	/**
104
-	 * Enques the assets
105
-	 */
106
-	public function assets() {
107
-		wp_enqueue_script( 'lsx-moneyjs', LSX_CURRENCIES_URL . 'assets/js/vendor/money.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
108
-		wp_enqueue_script( 'lsx-accountingjs', LSX_CURRENCIES_URL . 'assets/js/vendor/accounting.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
109
-		wp_enqueue_script( 'lsx-jquery-cookie', LSX_CURRENCIES_URL . 'assets/js/vendor/cookie.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
110
-
111
-		$prefix = '.min';
112
-		$src = '';
113
-		$script_debug = false;
114
-		if ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) {
115
-			$prefix = '';
116
-			$src = 'src/';
117
-			$script_debug = true;
118
-		}
119
-		wp_enqueue_script( 'lsx-currencies', LSX_CURRENCIES_URL . 'assets/js/' . $src . 'lsx-currencies' . $prefix . '.js', array( 'jquery', 'lsx-moneyjs', 'lsx-accountingjs', 'lsx-jquery-cookie' ), LSX_CURRENCIES_VER, true );
120
-
121
-		$base_currency = lsx_currencies()->base_currency;
122
-		$current_currency = $this->current_currency;
123
-		if ( true === lsx_currencies()->convert_to_single ) {
124
-			$current_currency = $base_currency;
125
-		}
126
-
127
-		$params = apply_filters( 'lsx_currencies_js_params', array(
128
-			'current_currency'  => $current_currency,
129
-			'currency_symbols'  => $this->get_available_symbols(),
130
-			'rates'             => $this->rates,
131
-			'rates_message'     => $this->rates_message,
132
-			'base'              => $base_currency,
133
-			'flags'             => lsx_currencies()->display_flags,
134
-			'convert_to_single' => lsx_currencies()->convert_to_single,
135
-			'script_debug'      => $script_debug,
136
-			'remove_decimals'   => lsx_currencies()->remove_decimals,
137
-		));
138
-
139
-		wp_localize_script( 'lsx-currencies', 'lsx_currencies_params', $params );
140
-
141
-		wp_enqueue_style( 'lsx-currencies', LSX_CURRENCIES_URL . 'assets/css/lsx-currencies.css', array(), LSX_CURRENCIES_VER );
142
-		wp_style_add_data( 'lsx-currencies', 'rtl', 'replace' );
143
-	}
144
-
145
-	/**
146
-	 * Returns all of the available symbols.
147
-	 *
148
-	 * @return array
149
-	 */
150
-	public function get_available_symbols() {
151
-		$symbols = array();
152
-		if ( false !== lsx_currencies()->additional_currencies && ! empty( lsx_currencies()->additional_currencies ) ) {
153
-			foreach ( lsx_currencies()->additional_currencies as $key => $currency ) {
154
-				$symbols[ $key ] = lsx_currencies()->currency_symbols[ $key ];
155
-			}
156
-		}
157
-		return $symbols;
158
-	}
159
-
160
-	/**
161
-	 * Adds in the required currency conversion tags
162
-	 */
163
-	public function price_filter( $return_html, $meta_key, $value, $before, $after ) {
164
-		if ( 'price' === $meta_key ) {
165
-			$additional_html = '';
166
-			$additional_prices = get_post_meta( get_the_ID(), 'additional_prices', false );
167
-			$prefix = '<span class="amount lsx-currencies" ';
168
-
169
-			if ( true === lsx_currencies()->multi_prices && ! empty( $additional_prices ) ) {
170
-				foreach ( $additional_prices as $a_price ) {
171
-					$additional_html .= ' data-price-' . $a_price['currency'] . '="' . $a_price['amount'] . '"';
172
-				}
173
-			}
174
-
175
-			$value = preg_replace( '/[^0-9.]+/', '', $value );
176
-			$decimals = substr_count( $value, '.' );
177
-
178
-			if ( false !== $decimals && $decimals > 1 ) {
179
-				$decimals--;
180
-				$decimals = (int) $decimals;
181
-				$value = preg_replace( '/' . preg_quote( '.', '/' ) . '/', '', $value, $decimals );
182
-			}
183
-
184
-			$money_format = '%i';
185
-			if ( false !== lsx_currencies()->remove_decimals ) {
186
-				$money_format = '%.0n';
187
-			}
188
-
189
-			$prefix .= '>';
190
-			$suffix = '</span>';
191
-
192
-			setlocale( LC_MONETARY, 'en_US' );
193
-
194
-			// Work out the other tags
195
-			$currency = '<span class="currency-icon ' . mb_strtolower( lsx_currencies()->base_currency ) . '">' . lsx_currencies()->base_currency . '</span>';
196
-			$amount = '<span class="value" data-price-' . lsx_currencies()->base_currency . '="' . trim( str_replace( array( '$', 'USD' ), '', money_format( (float) $money_format, ltrim( rtrim( $value ) ) ) ) ) . '" ' . $additional_html . '>' . str_replace( array( '$', 'USD' ), '', money_format( $money_format, ltrim( rtrim( $value ) ) ) ) . '</span>';
197
-
198
-			// Check for a price type and add that in.
199
-			$price_type = get_post_meta( get_the_ID(), 'price_type', true );
200
-
201
-			switch ( $price_type ) {
202
-				case 'per_person_per_night':
203
-				case 'per_person_sharing':
204
-				case 'per_person_sharing_per_night':
205
-					$amount = $currency . $amount . ' ' . ucwords( str_replace( '_', ' ', $price_type ) );
206
-				    break;
207
-
208
-				case 'total_percentage':
209
-					$amount .= '% ' . esc_html__( 'Off', 'lsx-currencies' );
210
-					$before = str_replace( 'from', '', $before );
211
-				    break;
212
-
213
-				case 'none':
214
-				default:
215
-					$amount = $currency . $amount;
216
-				    break;
217
-			}
218
-
219
-			$return_html = $before . $prefix . $amount . $suffix . $after;
220
-		}
221
-
222
-		return $return_html;
223
-	}
224
-
225
-	/**
226
-	 * Filter on the 'wp_nav_menu_items' hook, that potentially adds a currency switcher to the item of some menus.
227
-	 *
228
-	 * @param $items string
229
-	 * @param $args object
230
-	 *
231
-	 * @return string
232
-	 */
233
-	public function wp_nav_menu_items_filter( $items, $args ) {
234
-		if ( '' !== lsx_currencies()->menus && lsx_currencies()->menus === $args->theme_location ) {
235
-			if ( 'top-menu' === $args->theme_location ) {
236
-				$items = $this->get_menu_html( $args ) . $items;
237
-			} else {
238
-				$items = $items . $this->get_menu_html( $args );
239
-			}
240
-		}
241
-		return $items;
242
-	}
243
-
244
-	/**
245
-	 * Returns the HTML string of the language switcher for a given menu.
246
-	 *
247
-	 * @param $args object
248
-	 *
249
-	 * @return string
250
-	 */
251
-	private function get_menu_html( $args ) {
252
-		if ( empty( lsx_currencies()->additional_currencies ) ) {
253
-			return '';
254
-		}
255
-
256
-		$items = '';
257
-		$items .= '<li class="menu-item menu-item-currency menu-item-currency-current menu-item-has-children dropdown">';
258
-		$items .= isset( $args->before ) ? $args->before : '';
259
-		$items .= '<a class="current symbol-' . lsx_currencies()->switcher_symbol_position . '" href="#' . strtolower( $this->current_currency ) . '">';
260
-		$items .= isset( $args->link_before ) ? $args->link_before : '';
261
-
262
-		if ( ! empty( lsx_currencies()->display_flags ) && 'left' === lsx_currencies()->flag_position ) {
263
-			$items .= lsx_currencies()->get_currency_flag( $this->current_currency );
264
-		}
265
-
266
-		if ( 'left' === lsx_currencies()->switcher_symbol_position ) {
267
-			$items .= '<span class="currency-icon ' . strtolower( $this->current_currency ) . '"></span>';
268
-		}
269
-
270
-		$items .= $this->current_currency;
271
-
272
-		if ( 'right' === lsx_currencies()->switcher_symbol_position ) {
273
-			$items .= '<span class="currency-icon ' . strtolower( $this->current_currency ) . '"></span>';
274
-		}
275
-
276
-		if ( ! empty( lsx_currencies()->display_flags ) && 'right' === lsx_currencies()->flag_position ) {
277
-			$items .= lsx_currencies()->get_currency_flag( $this->current_currency );
278
-		}
279
-
280
-		$items .= isset( $args->link_after ) ? $args->link_after : '';
281
-		$items .= '<span class="caret"></span></a>';
282
-		$items .= isset( $args->after ) ? $args->after : '';
283
-		$items .= $this->render_sub_items();
284
-		$items .= '</li>';
285
-		return $items;
286
-	}
287
-	/**
288
-	 * Returns the HTML string of the language switcher for a given menu.
289
-	 *
290
-	 * @param object $args
291
-	 *
292
-	 * @return string
293
-	 */
294
-	private function render_sub_items() {
295
-		$sub_items = '';
296
-		foreach ( lsx_currencies()->additional_currencies as $key => $currency ) {
297
-			$hidden = '';
298
-			$class = '';
299
-
300
-			if ( $this->current_currency === $key ) {
301
-				$hidden = 'style="display:none";';
302
-				$class = 'hidden';
303
-			}
304
-
305
-			$sub_items .= '<li ' . $hidden . ' class="' . $class . ' menu-item menu-item-currency ' . lsx_currencies()->switcher_symbol_position . '">';
306
-			$sub_items .= '<a class=" symbol-' . lsx_currencies()->switcher_symbol_position . '" href="#' . strtolower( $key ) . '">';
307
-
308
-			if ( ! empty( lsx_currencies()->display_flags ) && 'left' === lsx_currencies()->flag_position ) {
309
-				$sub_items .= lsx_currencies()->get_currency_flag( $key );
310
-			}
311
-
312
-			if ( 'left' === lsx_currencies()->switcher_symbol_position ) {
313
-				$sub_items .= '<span class="currency-icon ' . strtolower( $key ) . '"></span>';
314
-			}
315
-
316
-			$sub_items .= ucwords( $key );
317
-
318
-			if ( 'right' === lsx_currencies()->switcher_symbol_position ) {
319
-				$sub_items .= '<span class="currency-icon ' . strtolower( $key ) . '"></span>';
320
-			}
321
-
322
-			if ( ! empty( lsx_currencies()->display_flags ) && 'right' === lsx_currencies()->flag_position ) {
323
-				$sub_items .= lsx_currencies()->get_currency_flag( $key );
324
-			}
325
-
326
-			$sub_items .= '</a></li>';
327
-		}
328
-
329
-		$sub_items = '<ul class="sub-menu submenu-currency dropdown-menu">' . $sub_items . '</ul>';
330
-		return $sub_items;
331
-	}
332
-
333
-	/**
334
-	 * Allow data params for Slick slider addon.
335
-	 */
336
-	public function wp_kses_allowed_html( $allowedtags, $context ) {
337
-		if ( ! isset( $allowedtags['span'] ) ) {
338
-			$allowedtags['span'] = array();
339
-		}
340
-
341
-		$allowedtags['span']['data-price-AUD'] = true;
342
-		$allowedtags['span']['data-price-BRL'] = true;
343
-		$allowedtags['span']['data-price-GBP'] = true;
344
-		$allowedtags['span']['data-price-BWP'] = true;
345
-		$allowedtags['span']['data-price-CAD'] = true;
346
-		$allowedtags['span']['data-price-CNY'] = true;
347
-		$allowedtags['span']['data-price-EUR'] = true;
348
-		$allowedtags['span']['data-price-HKD'] = true;
349
-		$allowedtags['span']['data-price-INR'] = true;
350
-		$allowedtags['span']['data-price-IDR'] = true;
351
-		$allowedtags['span']['data-price-ILS'] = true;
352
-		$allowedtags['span']['data-price-JPY'] = true;
353
-		$allowedtags['span']['data-price-KES'] = true;
354
-		$allowedtags['span']['data-price-LAK'] = true;
355
-		$allowedtags['span']['data-price-MWK'] = true;
356
-		$allowedtags['span']['data-price-MYR'] = true;
357
-		$allowedtags['span']['data-price-MZN'] = true;
358
-		$allowedtags['span']['data-price-NAD'] = true;
359
-		$allowedtags['span']['data-price-NZD'] = true;
360
-		$allowedtags['span']['data-price-NOK'] = true;
361
-		$allowedtags['span']['data-price-RUB'] = true;
362
-		$allowedtags['span']['data-price-SGD'] = true;
363
-		$allowedtags['span']['data-price-ZAR'] = true;
364
-		$allowedtags['span']['data-price-SEK'] = true;
365
-		$allowedtags['span']['data-price-CHF'] = true;
366
-		$allowedtags['span']['data-price-TZS'] = true;
367
-		$allowedtags['span']['data-price-USD'] = true;
368
-		$allowedtags['span']['data-price-AED'] = true;
369
-		$allowedtags['span']['data-price-ZMW'] = true;
370
-		$allowedtags['span']['data-price-ZWL'] = true;
371
-
372
-		return $allowedtags;
373
-	}
374
-
375
-	/**
376
-	 * Allow empty prices if the convert to single currency is active.
377
-	 *
378
-	 * @param null $metadata
379
-	 * @param string $object_id
380
-	 * @param string $meta_key
381
-	 * @param boolean $single
382
-	 * @return void
383
-	 */
384
-	public function filter_post_meta( $metadata = null, $object_id, $meta_key, $single ) {
385
-		if ( true === lsx_currencies()->convert_to_single && 'price' === $meta_key ) {
386
-			$meta_cache = wp_cache_get( $object_id, 'post_meta' );
387
-
388
-			if ( ! isset( $meta_cache[ $meta_key ] ) || '' === $meta_cache[ $meta_key ] ) {
389
-				$metadata = '0';
390
-			}
391
-		}
392
-		return $metadata;
393
-	}
19
+     /**
20
+      * Holds instance of the class
21
+      *
22
+      * @var object \lsx\currencies\classes\Admin()
23
+      */
24
+     private static $instance;
25
+
26
+     /**
27
+      * This will hold the rates with a base currency of USD.
28
+      *
29
+      * @var boolean
30
+      */
31
+     public $rates = false;
32
+
33
+     /**
34
+      * This will hold the rates error message.
35
+      *
36
+      * @var boolean
37
+      */
38
+     public $rates_message = false;
39
+
40
+     /**
41
+      * This is the current currency selected, default to the base currency.
42
+      *
43
+      * @var boolean
44
+      */
45
+     public $current_currency = false;
46
+
47
+     /**
48
+      * Constructor
49
+      */
50
+     public function __construct() {
51
+          if ( ! is_admin() ) {
52
+               add_action( 'plugins_loaded', array( $this, 'set_defaults' ), 11, 1 );
53
+               add_filter( 'lsx_to_custom_field_query', array( $this, 'price_filter' ), 20, 5 );
54
+               add_action( 'wp_enqueue_scripts', array( $this, 'assets' ), 5 );
55
+               add_filter( 'wp_nav_menu_items', array( $this, 'wp_nav_menu_items_filter' ), 10, 2 );
56
+               add_filter( 'wp_kses_allowed_html', array( $this, 'wp_kses_allowed_html' ), 10, 2 );
57
+               add_filter( 'get_post_metadata', array( $this, 'filter_post_meta' ), 100, 4 );
58
+          }
59
+     }
60
+
61
+     /**
62
+      * Return an instance of this class.
63
+      *
64
+      * @return  object
65
+      */
66
+     public static function init() {
67
+          // If the single instance hasn't been set, set it now.
68
+          if ( ! isset( self::$instance ) ) {
69
+               self::$instance = new self();
70
+          }
71
+          return self::$instance;
72
+     }
73
+
74
+     /**
75
+      * Constructor
76
+      */
77
+     public function set_defaults() {
78
+          $this->rates_message = esc_html__( 'Error: API key isn\'t set.', 'lsx-currencies' );
79
+          $this->rates = get_transient( 'lsx_currencies_rates' );
80
+          if ( false === $this->rates ) {
81
+               $rates         = wp_remote_retrieve_body( wp_safe_remote_get( lsx_currencies()->api_url ) );
82
+               $decoded_rates = json_decode( $rates );
83
+
84
+               if ( is_wp_error( $rates ) ) {
85
+                    $this->rates_message = $rates->get_error_message();
86
+               } elseif ( ! empty( $decoded_rates->error ) ) {
87
+                    $this->rates_message = $decoded_rates->description;
88
+               } elseif ( empty( $rates ) ) {
89
+                    $this->rates_message = esc_html__( 'Error: API response is empty.', 'lsx-currencies' );
90
+               } else {
91
+                    $this->rates_message = esc_html__( 'Success (new request).', 'lsx-currencies' );
92
+                    set_transient( 'lsx_currencies_rates', $decoded_rates->rates, 60 * 60 * 12 );
93
+                    do_action( 'lsx_currencies_rates_refreshed' );
94
+                    $this->rates = $decoded_rates->rates;
95
+               }
96
+          } else {
97
+               $this->rates_message = esc_html__( 'Success (from cache).', 'lsx-currencies' );
98
+          }
99
+          $this->current_currency = isset( $_COOKIE['lsx_currencies_choice'] ) ? sanitize_key( $_COOKIE['lsx_currencies_choice'] ) : lsx_currencies()->base_currency;
100
+          $this->current_currency = strtoupper( $this->current_currency );
101
+     }
102
+
103
+     /**
104
+      * Enques the assets
105
+      */
106
+     public function assets() {
107
+          wp_enqueue_script( 'lsx-moneyjs', LSX_CURRENCIES_URL . 'assets/js/vendor/money.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
108
+          wp_enqueue_script( 'lsx-accountingjs', LSX_CURRENCIES_URL . 'assets/js/vendor/accounting.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
109
+          wp_enqueue_script( 'lsx-jquery-cookie', LSX_CURRENCIES_URL . 'assets/js/vendor/cookie.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
110
+
111
+          $prefix = '.min';
112
+          $src = '';
113
+          $script_debug = false;
114
+          if ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) {
115
+               $prefix = '';
116
+               $src = 'src/';
117
+               $script_debug = true;
118
+          }
119
+          wp_enqueue_script( 'lsx-currencies', LSX_CURRENCIES_URL . 'assets/js/' . $src . 'lsx-currencies' . $prefix . '.js', array( 'jquery', 'lsx-moneyjs', 'lsx-accountingjs', 'lsx-jquery-cookie' ), LSX_CURRENCIES_VER, true );
120
+
121
+          $base_currency = lsx_currencies()->base_currency;
122
+          $current_currency = $this->current_currency;
123
+          if ( true === lsx_currencies()->convert_to_single ) {
124
+               $current_currency = $base_currency;
125
+          }
126
+
127
+          $params = apply_filters( 'lsx_currencies_js_params', array(
128
+               'current_currency'  => $current_currency,
129
+               'currency_symbols'  => $this->get_available_symbols(),
130
+               'rates'             => $this->rates,
131
+               'rates_message'     => $this->rates_message,
132
+               'base'              => $base_currency,
133
+               'flags'             => lsx_currencies()->display_flags,
134
+               'convert_to_single' => lsx_currencies()->convert_to_single,
135
+               'script_debug'      => $script_debug,
136
+               'remove_decimals'   => lsx_currencies()->remove_decimals,
137
+          ));
138
+
139
+          wp_localize_script( 'lsx-currencies', 'lsx_currencies_params', $params );
140
+
141
+          wp_enqueue_style( 'lsx-currencies', LSX_CURRENCIES_URL . 'assets/css/lsx-currencies.css', array(), LSX_CURRENCIES_VER );
142
+          wp_style_add_data( 'lsx-currencies', 'rtl', 'replace' );
143
+     }
144
+
145
+     /**
146
+      * Returns all of the available symbols.
147
+      *
148
+      * @return array
149
+      */
150
+     public function get_available_symbols() {
151
+          $symbols = array();
152
+          if ( false !== lsx_currencies()->additional_currencies && ! empty( lsx_currencies()->additional_currencies ) ) {
153
+               foreach ( lsx_currencies()->additional_currencies as $key => $currency ) {
154
+                    $symbols[ $key ] = lsx_currencies()->currency_symbols[ $key ];
155
+               }
156
+          }
157
+          return $symbols;
158
+     }
159
+
160
+     /**
161
+      * Adds in the required currency conversion tags
162
+      */
163
+     public function price_filter( $return_html, $meta_key, $value, $before, $after ) {
164
+          if ( 'price' === $meta_key ) {
165
+               $additional_html = '';
166
+               $additional_prices = get_post_meta( get_the_ID(), 'additional_prices', false );
167
+               $prefix = '<span class="amount lsx-currencies" ';
168
+
169
+               if ( true === lsx_currencies()->multi_prices && ! empty( $additional_prices ) ) {
170
+                    foreach ( $additional_prices as $a_price ) {
171
+                         $additional_html .= ' data-price-' . $a_price['currency'] . '="' . $a_price['amount'] . '"';
172
+                    }
173
+               }
174
+
175
+               $value = preg_replace( '/[^0-9.]+/', '', $value );
176
+               $decimals = substr_count( $value, '.' );
177
+
178
+               if ( false !== $decimals && $decimals > 1 ) {
179
+                    $decimals--;
180
+                    $decimals = (int) $decimals;
181
+                    $value = preg_replace( '/' . preg_quote( '.', '/' ) . '/', '', $value, $decimals );
182
+               }
183
+
184
+               $money_format = '%i';
185
+               if ( false !== lsx_currencies()->remove_decimals ) {
186
+                    $money_format = '%.0n';
187
+               }
188
+
189
+               $prefix .= '>';
190
+               $suffix = '</span>';
191
+
192
+               setlocale( LC_MONETARY, 'en_US' );
193
+
194
+               // Work out the other tags
195
+               $currency = '<span class="currency-icon ' . mb_strtolower( lsx_currencies()->base_currency ) . '">' . lsx_currencies()->base_currency . '</span>';
196
+               $amount = '<span class="value" data-price-' . lsx_currencies()->base_currency . '="' . trim( str_replace( array( '$', 'USD' ), '', money_format( (float) $money_format, ltrim( rtrim( $value ) ) ) ) ) . '" ' . $additional_html . '>' . str_replace( array( '$', 'USD' ), '', money_format( $money_format, ltrim( rtrim( $value ) ) ) ) . '</span>';
197
+
198
+               // Check for a price type and add that in.
199
+               $price_type = get_post_meta( get_the_ID(), 'price_type', true );
200
+
201
+               switch ( $price_type ) {
202
+                    case 'per_person_per_night':
203
+                    case 'per_person_sharing':
204
+                    case 'per_person_sharing_per_night':
205
+                         $amount = $currency . $amount . ' ' . ucwords( str_replace( '_', ' ', $price_type ) );
206
+                         break;
207
+
208
+                    case 'total_percentage':
209
+                         $amount .= '% ' . esc_html__( 'Off', 'lsx-currencies' );
210
+                         $before = str_replace( 'from', '', $before );
211
+                         break;
212
+
213
+                    case 'none':
214
+                    default:
215
+                         $amount = $currency . $amount;
216
+                         break;
217
+               }
218
+
219
+               $return_html = $before . $prefix . $amount . $suffix . $after;
220
+          }
221
+
222
+          return $return_html;
223
+     }
224
+
225
+     /**
226
+      * Filter on the 'wp_nav_menu_items' hook, that potentially adds a currency switcher to the item of some menus.
227
+      *
228
+      * @param $items string
229
+      * @param $args object
230
+      *
231
+      * @return string
232
+      */
233
+     public function wp_nav_menu_items_filter( $items, $args ) {
234
+          if ( '' !== lsx_currencies()->menus && lsx_currencies()->menus === $args->theme_location ) {
235
+               if ( 'top-menu' === $args->theme_location ) {
236
+                    $items = $this->get_menu_html( $args ) . $items;
237
+               } else {
238
+                    $items = $items . $this->get_menu_html( $args );
239
+               }
240
+          }
241
+          return $items;
242
+     }
243
+
244
+     /**
245
+      * Returns the HTML string of the language switcher for a given menu.
246
+      *
247
+      * @param $args object
248
+      *
249
+      * @return string
250
+      */
251
+     private function get_menu_html( $args ) {
252
+          if ( empty( lsx_currencies()->additional_currencies ) ) {
253
+               return '';
254
+          }
255
+
256
+          $items = '';
257
+          $items .= '<li class="menu-item menu-item-currency menu-item-currency-current menu-item-has-children dropdown">';
258
+          $items .= isset( $args->before ) ? $args->before : '';
259
+          $items .= '<a class="current symbol-' . lsx_currencies()->switcher_symbol_position . '" href="#' . strtolower( $this->current_currency ) . '">';
260
+          $items .= isset( $args->link_before ) ? $args->link_before : '';
261
+
262
+          if ( ! empty( lsx_currencies()->display_flags ) && 'left' === lsx_currencies()->flag_position ) {
263
+               $items .= lsx_currencies()->get_currency_flag( $this->current_currency );
264
+          }
265
+
266
+          if ( 'left' === lsx_currencies()->switcher_symbol_position ) {
267
+               $items .= '<span class="currency-icon ' . strtolower( $this->current_currency ) . '"></span>';
268
+          }
269
+
270
+          $items .= $this->current_currency;
271
+
272
+          if ( 'right' === lsx_currencies()->switcher_symbol_position ) {
273
+               $items .= '<span class="currency-icon ' . strtolower( $this->current_currency ) . '"></span>';
274
+          }
275
+
276
+          if ( ! empty( lsx_currencies()->display_flags ) && 'right' === lsx_currencies()->flag_position ) {
277
+               $items .= lsx_currencies()->get_currency_flag( $this->current_currency );
278
+          }
279
+
280
+          $items .= isset( $args->link_after ) ? $args->link_after : '';
281
+          $items .= '<span class="caret"></span></a>';
282
+          $items .= isset( $args->after ) ? $args->after : '';
283
+          $items .= $this->render_sub_items();
284
+          $items .= '</li>';
285
+          return $items;
286
+     }
287
+     /**
288
+      * Returns the HTML string of the language switcher for a given menu.
289
+      *
290
+      * @param object $args
291
+      *
292
+      * @return string
293
+      */
294
+     private function render_sub_items() {
295
+          $sub_items = '';
296
+          foreach ( lsx_currencies()->additional_currencies as $key => $currency ) {
297
+               $hidden = '';
298
+               $class = '';
299
+
300
+               if ( $this->current_currency === $key ) {
301
+                    $hidden = 'style="display:none";';
302
+                    $class = 'hidden';
303
+               }
304
+
305
+               $sub_items .= '<li ' . $hidden . ' class="' . $class . ' menu-item menu-item-currency ' . lsx_currencies()->switcher_symbol_position . '">';
306
+               $sub_items .= '<a class=" symbol-' . lsx_currencies()->switcher_symbol_position . '" href="#' . strtolower( $key ) . '">';
307
+
308
+               if ( ! empty( lsx_currencies()->display_flags ) && 'left' === lsx_currencies()->flag_position ) {
309
+                    $sub_items .= lsx_currencies()->get_currency_flag( $key );
310
+               }
311
+
312
+               if ( 'left' === lsx_currencies()->switcher_symbol_position ) {
313
+                    $sub_items .= '<span class="currency-icon ' . strtolower( $key ) . '"></span>';
314
+               }
315
+
316
+               $sub_items .= ucwords( $key );
317
+
318
+               if ( 'right' === lsx_currencies()->switcher_symbol_position ) {
319
+                    $sub_items .= '<span class="currency-icon ' . strtolower( $key ) . '"></span>';
320
+               }
321
+
322
+               if ( ! empty( lsx_currencies()->display_flags ) && 'right' === lsx_currencies()->flag_position ) {
323
+                    $sub_items .= lsx_currencies()->get_currency_flag( $key );
324
+               }
325
+
326
+               $sub_items .= '</a></li>';
327
+          }
328
+
329
+          $sub_items = '<ul class="sub-menu submenu-currency dropdown-menu">' . $sub_items . '</ul>';
330
+          return $sub_items;
331
+     }
332
+
333
+     /**
334
+      * Allow data params for Slick slider addon.
335
+      */
336
+     public function wp_kses_allowed_html( $allowedtags, $context ) {
337
+          if ( ! isset( $allowedtags['span'] ) ) {
338
+               $allowedtags['span'] = array();
339
+          }
340
+
341
+          $allowedtags['span']['data-price-AUD'] = true;
342
+          $allowedtags['span']['data-price-BRL'] = true;
343
+          $allowedtags['span']['data-price-GBP'] = true;
344
+          $allowedtags['span']['data-price-BWP'] = true;
345
+          $allowedtags['span']['data-price-CAD'] = true;
346
+          $allowedtags['span']['data-price-CNY'] = true;
347
+          $allowedtags['span']['data-price-EUR'] = true;
348
+          $allowedtags['span']['data-price-HKD'] = true;
349
+          $allowedtags['span']['data-price-INR'] = true;
350
+          $allowedtags['span']['data-price-IDR'] = true;
351
+          $allowedtags['span']['data-price-ILS'] = true;
352
+          $allowedtags['span']['data-price-JPY'] = true;
353
+          $allowedtags['span']['data-price-KES'] = true;
354
+          $allowedtags['span']['data-price-LAK'] = true;
355
+          $allowedtags['span']['data-price-MWK'] = true;
356
+          $allowedtags['span']['data-price-MYR'] = true;
357
+          $allowedtags['span']['data-price-MZN'] = true;
358
+          $allowedtags['span']['data-price-NAD'] = true;
359
+          $allowedtags['span']['data-price-NZD'] = true;
360
+          $allowedtags['span']['data-price-NOK'] = true;
361
+          $allowedtags['span']['data-price-RUB'] = true;
362
+          $allowedtags['span']['data-price-SGD'] = true;
363
+          $allowedtags['span']['data-price-ZAR'] = true;
364
+          $allowedtags['span']['data-price-SEK'] = true;
365
+          $allowedtags['span']['data-price-CHF'] = true;
366
+          $allowedtags['span']['data-price-TZS'] = true;
367
+          $allowedtags['span']['data-price-USD'] = true;
368
+          $allowedtags['span']['data-price-AED'] = true;
369
+          $allowedtags['span']['data-price-ZMW'] = true;
370
+          $allowedtags['span']['data-price-ZWL'] = true;
371
+
372
+          return $allowedtags;
373
+     }
374
+
375
+     /**
376
+      * Allow empty prices if the convert to single currency is active.
377
+      *
378
+      * @param null $metadata
379
+      * @param string $object_id
380
+      * @param string $meta_key
381
+      * @param boolean $single
382
+      * @return void
383
+      */
384
+     public function filter_post_meta( $metadata = null, $object_id, $meta_key, $single ) {
385
+          if ( true === lsx_currencies()->convert_to_single && 'price' === $meta_key ) {
386
+               $meta_cache = wp_cache_get( $object_id, 'post_meta' );
387
+
388
+               if ( ! isset( $meta_cache[ $meta_key ] ) || '' === $meta_cache[ $meta_key ] ) {
389
+                    $metadata = '0';
390
+               }
391
+          }
392
+          return $metadata;
393
+     }
394 394
 }
Please login to merge, or discard this patch.
Spacing   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -48,13 +48,13 @@  discard block
 block discarded – undo
48 48
 	 * Constructor
49 49
 	 */
50 50
 	public function __construct() {
51
-		if ( ! is_admin() ) {
52
-			add_action( 'plugins_loaded', array( $this, 'set_defaults' ), 11, 1 );
53
-			add_filter( 'lsx_to_custom_field_query', array( $this, 'price_filter' ), 20, 5 );
54
-			add_action( 'wp_enqueue_scripts', array( $this, 'assets' ), 5 );
55
-			add_filter( 'wp_nav_menu_items', array( $this, 'wp_nav_menu_items_filter' ), 10, 2 );
56
-			add_filter( 'wp_kses_allowed_html', array( $this, 'wp_kses_allowed_html' ), 10, 2 );
57
-			add_filter( 'get_post_metadata', array( $this, 'filter_post_meta' ), 100, 4 );
51
+		if (!is_admin()) {
52
+			add_action('plugins_loaded', array($this, 'set_defaults'), 11, 1);
53
+			add_filter('lsx_to_custom_field_query', array($this, 'price_filter'), 20, 5);
54
+			add_action('wp_enqueue_scripts', array($this, 'assets'), 5);
55
+			add_filter('wp_nav_menu_items', array($this, 'wp_nav_menu_items_filter'), 10, 2);
56
+			add_filter('wp_kses_allowed_html', array($this, 'wp_kses_allowed_html'), 10, 2);
57
+			add_filter('get_post_metadata', array($this, 'filter_post_meta'), 100, 4);
58 58
 		}
59 59
 	}
60 60
 
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
 	 */
66 66
 	public static function init() {
67 67
 		// If the single instance hasn't been set, set it now.
68
-		if ( ! isset( self::$instance ) ) {
68
+		if (!isset(self::$instance)) {
69 69
 			self::$instance = new self();
70 70
 		}
71 71
 		return self::$instance;
@@ -75,56 +75,56 @@  discard block
 block discarded – undo
75 75
 	 * Constructor
76 76
 	 */
77 77
 	public function set_defaults() {
78
-		$this->rates_message = esc_html__( 'Error: API key isn\'t set.', 'lsx-currencies' );
79
-		$this->rates = get_transient( 'lsx_currencies_rates' );
80
-		if ( false === $this->rates ) {
81
-			$rates         = wp_remote_retrieve_body( wp_safe_remote_get( lsx_currencies()->api_url ) );
82
-			$decoded_rates = json_decode( $rates );
78
+		$this->rates_message = esc_html__('Error: API key isn\'t set.', 'lsx-currencies');
79
+		$this->rates = get_transient('lsx_currencies_rates');
80
+		if (false === $this->rates) {
81
+			$rates         = wp_remote_retrieve_body(wp_safe_remote_get(lsx_currencies()->api_url));
82
+			$decoded_rates = json_decode($rates);
83 83
 
84
-			if ( is_wp_error( $rates ) ) {
84
+			if (is_wp_error($rates)) {
85 85
 				$this->rates_message = $rates->get_error_message();
86
-			} elseif ( ! empty( $decoded_rates->error ) ) {
86
+			} elseif (!empty($decoded_rates->error)) {
87 87
 				$this->rates_message = $decoded_rates->description;
88
-			} elseif ( empty( $rates ) ) {
89
-				$this->rates_message = esc_html__( 'Error: API response is empty.', 'lsx-currencies' );
88
+			} elseif (empty($rates)) {
89
+				$this->rates_message = esc_html__('Error: API response is empty.', 'lsx-currencies');
90 90
 			} else {
91
-				$this->rates_message = esc_html__( 'Success (new request).', 'lsx-currencies' );
92
-				set_transient( 'lsx_currencies_rates', $decoded_rates->rates, 60 * 60 * 12 );
93
-				do_action( 'lsx_currencies_rates_refreshed' );
91
+				$this->rates_message = esc_html__('Success (new request).', 'lsx-currencies');
92
+				set_transient('lsx_currencies_rates', $decoded_rates->rates, 60 * 60 * 12);
93
+				do_action('lsx_currencies_rates_refreshed');
94 94
 				$this->rates = $decoded_rates->rates;
95 95
 			}
96 96
 		} else {
97
-			$this->rates_message = esc_html__( 'Success (from cache).', 'lsx-currencies' );
97
+			$this->rates_message = esc_html__('Success (from cache).', 'lsx-currencies');
98 98
 		}
99
-		$this->current_currency = isset( $_COOKIE['lsx_currencies_choice'] ) ? sanitize_key( $_COOKIE['lsx_currencies_choice'] ) : lsx_currencies()->base_currency;
100
-		$this->current_currency = strtoupper( $this->current_currency );
99
+		$this->current_currency = isset($_COOKIE['lsx_currencies_choice']) ? sanitize_key($_COOKIE['lsx_currencies_choice']) : lsx_currencies()->base_currency;
100
+		$this->current_currency = strtoupper($this->current_currency);
101 101
 	}
102 102
 
103 103
 	/**
104 104
 	 * Enques the assets
105 105
 	 */
106 106
 	public function assets() {
107
-		wp_enqueue_script( 'lsx-moneyjs', LSX_CURRENCIES_URL . 'assets/js/vendor/money.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
108
-		wp_enqueue_script( 'lsx-accountingjs', LSX_CURRENCIES_URL . 'assets/js/vendor/accounting.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
109
-		wp_enqueue_script( 'lsx-jquery-cookie', LSX_CURRENCIES_URL . 'assets/js/vendor/cookie.min.js', array( 'jquery' ), LSX_CURRENCIES_VER, true );
107
+		wp_enqueue_script('lsx-moneyjs', LSX_CURRENCIES_URL.'assets/js/vendor/money.min.js', array('jquery'), LSX_CURRENCIES_VER, true);
108
+		wp_enqueue_script('lsx-accountingjs', LSX_CURRENCIES_URL.'assets/js/vendor/accounting.min.js', array('jquery'), LSX_CURRENCIES_VER, true);
109
+		wp_enqueue_script('lsx-jquery-cookie', LSX_CURRENCIES_URL.'assets/js/vendor/cookie.min.js', array('jquery'), LSX_CURRENCIES_VER, true);
110 110
 
111 111
 		$prefix = '.min';
112 112
 		$src = '';
113 113
 		$script_debug = false;
114
-		if ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) {
114
+		if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) {
115 115
 			$prefix = '';
116 116
 			$src = 'src/';
117 117
 			$script_debug = true;
118 118
 		}
119
-		wp_enqueue_script( 'lsx-currencies', LSX_CURRENCIES_URL . 'assets/js/' . $src . 'lsx-currencies' . $prefix . '.js', array( 'jquery', 'lsx-moneyjs', 'lsx-accountingjs', 'lsx-jquery-cookie' ), LSX_CURRENCIES_VER, true );
119
+		wp_enqueue_script('lsx-currencies', LSX_CURRENCIES_URL.'assets/js/'.$src.'lsx-currencies'.$prefix.'.js', array('jquery', 'lsx-moneyjs', 'lsx-accountingjs', 'lsx-jquery-cookie'), LSX_CURRENCIES_VER, true);
120 120
 
121 121
 		$base_currency = lsx_currencies()->base_currency;
122 122
 		$current_currency = $this->current_currency;
123
-		if ( true === lsx_currencies()->convert_to_single ) {
123
+		if (true === lsx_currencies()->convert_to_single) {
124 124
 			$current_currency = $base_currency;
125 125
 		}
126 126
 
127
-		$params = apply_filters( 'lsx_currencies_js_params', array(
127
+		$params = apply_filters('lsx_currencies_js_params', array(
128 128
 			'current_currency'  => $current_currency,
129 129
 			'currency_symbols'  => $this->get_available_symbols(),
130 130
 			'rates'             => $this->rates,
@@ -136,10 +136,10 @@  discard block
 block discarded – undo
136 136
 			'remove_decimals'   => lsx_currencies()->remove_decimals,
137 137
 		));
138 138
 
139
-		wp_localize_script( 'lsx-currencies', 'lsx_currencies_params', $params );
139
+		wp_localize_script('lsx-currencies', 'lsx_currencies_params', $params);
140 140
 
141
-		wp_enqueue_style( 'lsx-currencies', LSX_CURRENCIES_URL . 'assets/css/lsx-currencies.css', array(), LSX_CURRENCIES_VER );
142
-		wp_style_add_data( 'lsx-currencies', 'rtl', 'replace' );
141
+		wp_enqueue_style('lsx-currencies', LSX_CURRENCIES_URL.'assets/css/lsx-currencies.css', array(), LSX_CURRENCIES_VER);
142
+		wp_style_add_data('lsx-currencies', 'rtl', 'replace');
143 143
 	}
144 144
 
145 145
 	/**
@@ -149,9 +149,9 @@  discard block
 block discarded – undo
149 149
 	 */
150 150
 	public function get_available_symbols() {
151 151
 		$symbols = array();
152
-		if ( false !== lsx_currencies()->additional_currencies && ! empty( lsx_currencies()->additional_currencies ) ) {
153
-			foreach ( lsx_currencies()->additional_currencies as $key => $currency ) {
154
-				$symbols[ $key ] = lsx_currencies()->currency_symbols[ $key ];
152
+		if (false !== lsx_currencies()->additional_currencies && !empty(lsx_currencies()->additional_currencies)) {
153
+			foreach (lsx_currencies()->additional_currencies as $key => $currency) {
154
+				$symbols[$key] = lsx_currencies()->currency_symbols[$key];
155 155
 			}
156 156
 		}
157 157
 		return $symbols;
@@ -160,63 +160,63 @@  discard block
 block discarded – undo
160 160
 	/**
161 161
 	 * Adds in the required currency conversion tags
162 162
 	 */
163
-	public function price_filter( $return_html, $meta_key, $value, $before, $after ) {
164
-		if ( 'price' === $meta_key ) {
163
+	public function price_filter($return_html, $meta_key, $value, $before, $after) {
164
+		if ('price' === $meta_key) {
165 165
 			$additional_html = '';
166
-			$additional_prices = get_post_meta( get_the_ID(), 'additional_prices', false );
166
+			$additional_prices = get_post_meta(get_the_ID(), 'additional_prices', false);
167 167
 			$prefix = '<span class="amount lsx-currencies" ';
168 168
 
169
-			if ( true === lsx_currencies()->multi_prices && ! empty( $additional_prices ) ) {
170
-				foreach ( $additional_prices as $a_price ) {
171
-					$additional_html .= ' data-price-' . $a_price['currency'] . '="' . $a_price['amount'] . '"';
169
+			if (true === lsx_currencies()->multi_prices && !empty($additional_prices)) {
170
+				foreach ($additional_prices as $a_price) {
171
+					$additional_html .= ' data-price-'.$a_price['currency'].'="'.$a_price['amount'].'"';
172 172
 				}
173 173
 			}
174 174
 
175
-			$value = preg_replace( '/[^0-9.]+/', '', $value );
176
-			$decimals = substr_count( $value, '.' );
175
+			$value = preg_replace('/[^0-9.]+/', '', $value);
176
+			$decimals = substr_count($value, '.');
177 177
 
178
-			if ( false !== $decimals && $decimals > 1 ) {
178
+			if (false !== $decimals && $decimals > 1) {
179 179
 				$decimals--;
180 180
 				$decimals = (int) $decimals;
181
-				$value = preg_replace( '/' . preg_quote( '.', '/' ) . '/', '', $value, $decimals );
181
+				$value = preg_replace('/'.preg_quote('.', '/').'/', '', $value, $decimals);
182 182
 			}
183 183
 
184 184
 			$money_format = '%i';
185
-			if ( false !== lsx_currencies()->remove_decimals ) {
185
+			if (false !== lsx_currencies()->remove_decimals) {
186 186
 				$money_format = '%.0n';
187 187
 			}
188 188
 
189 189
 			$prefix .= '>';
190 190
 			$suffix = '</span>';
191 191
 
192
-			setlocale( LC_MONETARY, 'en_US' );
192
+			setlocale(LC_MONETARY, 'en_US');
193 193
 
194 194
 			// Work out the other tags
195
-			$currency = '<span class="currency-icon ' . mb_strtolower( lsx_currencies()->base_currency ) . '">' . lsx_currencies()->base_currency . '</span>';
196
-			$amount = '<span class="value" data-price-' . lsx_currencies()->base_currency . '="' . trim( str_replace( array( '$', 'USD' ), '', money_format( (float) $money_format, ltrim( rtrim( $value ) ) ) ) ) . '" ' . $additional_html . '>' . str_replace( array( '$', 'USD' ), '', money_format( $money_format, ltrim( rtrim( $value ) ) ) ) . '</span>';
195
+			$currency = '<span class="currency-icon '.mb_strtolower(lsx_currencies()->base_currency).'">'.lsx_currencies()->base_currency.'</span>';
196
+			$amount = '<span class="value" data-price-'.lsx_currencies()->base_currency.'="'.trim(str_replace(array('$', 'USD'), '', money_format((float) $money_format, ltrim(rtrim($value))))).'" '.$additional_html.'>'.str_replace(array('$', 'USD'), '', money_format($money_format, ltrim(rtrim($value)))).'</span>';
197 197
 
198 198
 			// Check for a price type and add that in.
199
-			$price_type = get_post_meta( get_the_ID(), 'price_type', true );
199
+			$price_type = get_post_meta(get_the_ID(), 'price_type', true);
200 200
 
201
-			switch ( $price_type ) {
201
+			switch ($price_type) {
202 202
 				case 'per_person_per_night':
203 203
 				case 'per_person_sharing':
204 204
 				case 'per_person_sharing_per_night':
205
-					$amount = $currency . $amount . ' ' . ucwords( str_replace( '_', ' ', $price_type ) );
205
+					$amount = $currency.$amount.' '.ucwords(str_replace('_', ' ', $price_type));
206 206
 				    break;
207 207
 
208 208
 				case 'total_percentage':
209
-					$amount .= '% ' . esc_html__( 'Off', 'lsx-currencies' );
210
-					$before = str_replace( 'from', '', $before );
209
+					$amount .= '% '.esc_html__('Off', 'lsx-currencies');
210
+					$before = str_replace('from', '', $before);
211 211
 				    break;
212 212
 
213 213
 				case 'none':
214 214
 				default:
215
-					$amount = $currency . $amount;
215
+					$amount = $currency.$amount;
216 216
 				    break;
217 217
 			}
218 218
 
219
-			$return_html = $before . $prefix . $amount . $suffix . $after;
219
+			$return_html = $before.$prefix.$amount.$suffix.$after;
220 220
 		}
221 221
 
222 222
 		return $return_html;
@@ -230,12 +230,12 @@  discard block
 block discarded – undo
230 230
 	 *
231 231
 	 * @return string
232 232
 	 */
233
-	public function wp_nav_menu_items_filter( $items, $args ) {
234
-		if ( '' !== lsx_currencies()->menus && lsx_currencies()->menus === $args->theme_location ) {
235
-			if ( 'top-menu' === $args->theme_location ) {
236
-				$items = $this->get_menu_html( $args ) . $items;
233
+	public function wp_nav_menu_items_filter($items, $args) {
234
+		if ('' !== lsx_currencies()->menus && lsx_currencies()->menus === $args->theme_location) {
235
+			if ('top-menu' === $args->theme_location) {
236
+				$items = $this->get_menu_html($args).$items;
237 237
 			} else {
238
-				$items = $items . $this->get_menu_html( $args );
238
+				$items = $items.$this->get_menu_html($args);
239 239
 			}
240 240
 		}
241 241
 		return $items;
@@ -248,38 +248,38 @@  discard block
 block discarded – undo
248 248
 	 *
249 249
 	 * @return string
250 250
 	 */
251
-	private function get_menu_html( $args ) {
252
-		if ( empty( lsx_currencies()->additional_currencies ) ) {
251
+	private function get_menu_html($args) {
252
+		if (empty(lsx_currencies()->additional_currencies)) {
253 253
 			return '';
254 254
 		}
255 255
 
256 256
 		$items = '';
257 257
 		$items .= '<li class="menu-item menu-item-currency menu-item-currency-current menu-item-has-children dropdown">';
258
-		$items .= isset( $args->before ) ? $args->before : '';
259
-		$items .= '<a class="current symbol-' . lsx_currencies()->switcher_symbol_position . '" href="#' . strtolower( $this->current_currency ) . '">';
260
-		$items .= isset( $args->link_before ) ? $args->link_before : '';
258
+		$items .= isset($args->before) ? $args->before : '';
259
+		$items .= '<a class="current symbol-'.lsx_currencies()->switcher_symbol_position.'" href="#'.strtolower($this->current_currency).'">';
260
+		$items .= isset($args->link_before) ? $args->link_before : '';
261 261
 
262
-		if ( ! empty( lsx_currencies()->display_flags ) && 'left' === lsx_currencies()->flag_position ) {
263
-			$items .= lsx_currencies()->get_currency_flag( $this->current_currency );
262
+		if (!empty(lsx_currencies()->display_flags) && 'left' === lsx_currencies()->flag_position) {
263
+			$items .= lsx_currencies()->get_currency_flag($this->current_currency);
264 264
 		}
265 265
 
266
-		if ( 'left' === lsx_currencies()->switcher_symbol_position ) {
267
-			$items .= '<span class="currency-icon ' . strtolower( $this->current_currency ) . '"></span>';
266
+		if ('left' === lsx_currencies()->switcher_symbol_position) {
267
+			$items .= '<span class="currency-icon '.strtolower($this->current_currency).'"></span>';
268 268
 		}
269 269
 
270 270
 		$items .= $this->current_currency;
271 271
 
272
-		if ( 'right' === lsx_currencies()->switcher_symbol_position ) {
273
-			$items .= '<span class="currency-icon ' . strtolower( $this->current_currency ) . '"></span>';
272
+		if ('right' === lsx_currencies()->switcher_symbol_position) {
273
+			$items .= '<span class="currency-icon '.strtolower($this->current_currency).'"></span>';
274 274
 		}
275 275
 
276
-		if ( ! empty( lsx_currencies()->display_flags ) && 'right' === lsx_currencies()->flag_position ) {
277
-			$items .= lsx_currencies()->get_currency_flag( $this->current_currency );
276
+		if (!empty(lsx_currencies()->display_flags) && 'right' === lsx_currencies()->flag_position) {
277
+			$items .= lsx_currencies()->get_currency_flag($this->current_currency);
278 278
 		}
279 279
 
280
-		$items .= isset( $args->link_after ) ? $args->link_after : '';
280
+		$items .= isset($args->link_after) ? $args->link_after : '';
281 281
 		$items .= '<span class="caret"></span></a>';
282
-		$items .= isset( $args->after ) ? $args->after : '';
282
+		$items .= isset($args->after) ? $args->after : '';
283 283
 		$items .= $this->render_sub_items();
284 284
 		$items .= '</li>';
285 285
 		return $items;
@@ -293,48 +293,48 @@  discard block
 block discarded – undo
293 293
 	 */
294 294
 	private function render_sub_items() {
295 295
 		$sub_items = '';
296
-		foreach ( lsx_currencies()->additional_currencies as $key => $currency ) {
296
+		foreach (lsx_currencies()->additional_currencies as $key => $currency) {
297 297
 			$hidden = '';
298 298
 			$class = '';
299 299
 
300
-			if ( $this->current_currency === $key ) {
300
+			if ($this->current_currency === $key) {
301 301
 				$hidden = 'style="display:none";';
302 302
 				$class = 'hidden';
303 303
 			}
304 304
 
305
-			$sub_items .= '<li ' . $hidden . ' class="' . $class . ' menu-item menu-item-currency ' . lsx_currencies()->switcher_symbol_position . '">';
306
-			$sub_items .= '<a class=" symbol-' . lsx_currencies()->switcher_symbol_position . '" href="#' . strtolower( $key ) . '">';
305
+			$sub_items .= '<li '.$hidden.' class="'.$class.' menu-item menu-item-currency '.lsx_currencies()->switcher_symbol_position.'">';
306
+			$sub_items .= '<a class=" symbol-'.lsx_currencies()->switcher_symbol_position.'" href="#'.strtolower($key).'">';
307 307
 
308
-			if ( ! empty( lsx_currencies()->display_flags ) && 'left' === lsx_currencies()->flag_position ) {
309
-				$sub_items .= lsx_currencies()->get_currency_flag( $key );
308
+			if (!empty(lsx_currencies()->display_flags) && 'left' === lsx_currencies()->flag_position) {
309
+				$sub_items .= lsx_currencies()->get_currency_flag($key);
310 310
 			}
311 311
 
312
-			if ( 'left' === lsx_currencies()->switcher_symbol_position ) {
313
-				$sub_items .= '<span class="currency-icon ' . strtolower( $key ) . '"></span>';
312
+			if ('left' === lsx_currencies()->switcher_symbol_position) {
313
+				$sub_items .= '<span class="currency-icon '.strtolower($key).'"></span>';
314 314
 			}
315 315
 
316
-			$sub_items .= ucwords( $key );
316
+			$sub_items .= ucwords($key);
317 317
 
318
-			if ( 'right' === lsx_currencies()->switcher_symbol_position ) {
319
-				$sub_items .= '<span class="currency-icon ' . strtolower( $key ) . '"></span>';
318
+			if ('right' === lsx_currencies()->switcher_symbol_position) {
319
+				$sub_items .= '<span class="currency-icon '.strtolower($key).'"></span>';
320 320
 			}
321 321
 
322
-			if ( ! empty( lsx_currencies()->display_flags ) && 'right' === lsx_currencies()->flag_position ) {
323
-				$sub_items .= lsx_currencies()->get_currency_flag( $key );
322
+			if (!empty(lsx_currencies()->display_flags) && 'right' === lsx_currencies()->flag_position) {
323
+				$sub_items .= lsx_currencies()->get_currency_flag($key);
324 324
 			}
325 325
 
326 326
 			$sub_items .= '</a></li>';
327 327
 		}
328 328
 
329
-		$sub_items = '<ul class="sub-menu submenu-currency dropdown-menu">' . $sub_items . '</ul>';
329
+		$sub_items = '<ul class="sub-menu submenu-currency dropdown-menu">'.$sub_items.'</ul>';
330 330
 		return $sub_items;
331 331
 	}
332 332
 
333 333
 	/**
334 334
 	 * Allow data params for Slick slider addon.
335 335
 	 */
336
-	public function wp_kses_allowed_html( $allowedtags, $context ) {
337
-		if ( ! isset( $allowedtags['span'] ) ) {
336
+	public function wp_kses_allowed_html($allowedtags, $context) {
337
+		if (!isset($allowedtags['span'])) {
338 338
 			$allowedtags['span'] = array();
339 339
 		}
340 340
 
@@ -381,11 +381,11 @@  discard block
 block discarded – undo
381 381
 	 * @param boolean $single
382 382
 	 * @return void
383 383
 	 */
384
-	public function filter_post_meta( $metadata = null, $object_id, $meta_key, $single ) {
385
-		if ( true === lsx_currencies()->convert_to_single && 'price' === $meta_key ) {
386
-			$meta_cache = wp_cache_get( $object_id, 'post_meta' );
384
+	public function filter_post_meta($metadata = null, $object_id, $meta_key, $single) {
385
+		if (true === lsx_currencies()->convert_to_single && 'price' === $meta_key) {
386
+			$meta_cache = wp_cache_get($object_id, 'post_meta');
387 387
 
388
-			if ( ! isset( $meta_cache[ $meta_key ] ) || '' === $meta_cache[ $meta_key ] ) {
388
+			if (!isset($meta_cache[$meta_key]) || '' === $meta_cache[$meta_key]) {
389 389
 				$metadata = '0';
390 390
 			}
391 391
 		}
Please login to merge, or discard this patch.