PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
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 1 month ago CurrencyLayer.php 1 month ago ExchangeRatesApi.php 1 month ago Fixerio.php 1 month ago OpenExchangeRates.php 1 month ago Service.php 1 month 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