PluginProbe
Packeta / 2.0.9
Packeta v2.0.9
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Module / Carrier / CarrierActivityBridge.php

CarrierActivityBridge.php in Packeta 2.0.9, at src/Packetery/Module/Carrier/CarrierActivityBridge.php

52 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Packetery\Module\Carrier;
4
5 use Packetery\Module\Carrier;
6 use Packetery\Module\Options\OptionsProvider;
7 use Packetery\Module\Shipping\BaseShippingMethod;
8 use WC_Shipping_Zones;
9
10 class CarrierActivityBridge {
11
12 /**
13 * @var OptionsProvider
14 */
15 private $optionsProvider;
16
17 public function __construct( OptionsProvider $optionsProvider ) {
18 $this->optionsProvider = $optionsProvider;
19 }
20
21 private function getActiveCarrierIds(): array {
22 static $activeMethods;
23
24 if ( isset( $activeMethods ) ) {
25 return $activeMethods;
26 }
27
28 $activeMethods = [];
29 $shippingZones = WC_Shipping_Zones::get_zones();
30
31 foreach ( $shippingZones as $shippingZone ) {
32 $shippingMethods = $shippingZone['shipping_methods'];
33
34 foreach ( $shippingMethods as $shippingMethod ) {
35 if ( $shippingMethod instanceof BaseShippingMethod && $shippingMethod->enabled === 'yes' ) {
36 $activeMethods[] = $shippingMethod::CARRIER_ID;
37 }
38 }
39 }
40
41 return $activeMethods;
42 }
43
44 public function isActive( string $carrierId, Carrier\Options $carrierOptions ): bool {
45 if ( $this->optionsProvider->isWcCarrierConfigEnabled() ) {
46 return in_array( $carrierId, $this->getActiveCarrierIds(), true );
47 }
48
49 return $carrierOptions->isActive();
50 }
51 }
52