PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Application / Services / Location / CurrentLocation.php
ameliabooking / src / Application / Services / Location Last commit date
AbstractCurrentLocation.php 6 months ago AbstractLocationApplicationService.php 1 year ago BasicLocationApplicationService.php 2 years ago CurrentLocation.php 3 months ago LiteCurrentLocation.php 6 months ago
CurrentLocation.php
46 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Application\Services\Location;
9
10 /**
11 * Class CurrentLocation
12 *
13 * @package AmeliaBooking\Application\Services\Location
14 */
15 class CurrentLocation extends AbstractCurrentLocation
16 {
17 /**
18 * Get country ISO code by public IP address
19 *
20 * @param string $ipLocateApyKey
21 *
22 * @return string
23 */
24 public function getCurrentLocationCountryIso($ipLocateApyKey)
25 {
26 try {
27 $curlHandle = curl_init();
28
29 curl_setopt(
30 $curlHandle,
31 CURLOPT_URL,
32 'https://www.iplocate.io/api/lookup/' . $_SERVER['REMOTE_ADDR'] . ($ipLocateApyKey ? ('?apikey=' . $ipLocateApyKey) : '')
33 );
34
35 curl_setopt($curlHandle, CURLOPT_CONNECTTIMEOUT, 2);
36 curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
37 curl_setopt($curlHandle, CURLOPT_USERAGENT, 'Amelia');
38 $result = json_decode(curl_exec($curlHandle));
39
40 return !isset($result->country_code) ? '' : strtolower($result->country_code);
41 } catch (\Exception $e) {
42 return '';
43 }
44 }
45 }
46