PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / classes / multi-currency / exchange-rate-services / ApiLayerService.php
woocommerce-multilingual / classes / multi-currency / exchange-rate-services Last commit date
ApiLayerService.php 4 weeks ago CurrencyLayer.php 4 weeks ago ExchangeRatesApi.php 4 weeks ago Fixerio.php 4 weeks ago OpenExchangeRates.php 4 weeks ago Service.php 4 weeks ago
ApiLayerService.php
57 lines
1 <?php
2
3 namespace WCML\MultiCurrency\ExchangeRateServices;
4
5 use WPML\FP\Obj;
6
7 abstract class ApiLayerService extends Service {
8
9 abstract protected function getApiLayerUrl();
10
11 abstract protected function getApiLegacyUrl();
12
13 public function getApiUrl() {
14 return $this->getSelectedApiEndpoint();
15 }
16
17 public function resetConnectionCache() {
18 $this->setSelectedApiEndpoint( null );
19 }
20
21 private function setSelectedApiEndpoint( $endpoint ) {
22 $this->saveSetting( 'selected-endpoint', $endpoint );
23 }
24
25 private function getSelectedApiEndpoint() {
26 return $this->getSetting( 'selected-endpoint' );
27 }
28
29 protected function makeRequest( $from, $tos ) {
30 if ( $this->getSelectedApiEndpoint() ) {
31 $response = parent::makeRequest( $from, $tos );
32 } else {
33 $this->setSelectedApiEndpoint( $this->getApiLayerUrl() );
34 $response = parent::makeRequest( $from, $tos );
35
36 if ( $this->isWrongAuthenticationWithApiLayer( $response ) ) {
37 $this->setSelectedApiEndpoint( $this->getApiLegacyUrl() );
38 $response = parent::makeRequest( $from, $tos );
39 }
40 }
41
42 return $response;
43 }
44
45 private function isWrongAuthenticationWithApiLayer( $data ) {
46 return Obj::path( [ 'response', 'code' ], $data ) === 401;
47 }
48
49 protected function getRequestHeaders() {
50 return [ 'apikey' => $this->getApiKey() ];
51 }
52
53 public function isKeyRequired() {
54 return true;
55 }
56 }
57