PluginProbe
Packeta / 2.1
Packeta v2.1
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
← All changes | src/Packetery/Module/Shipping/ShippingProvider.php +28 -2 trunk2.1 View file →
@@ -7,12 +7,14 @@
7 7 use Packetery\Core\Entity\Carrier;
8 8 use Packetery\Module\Carrier\CarDeliveryConfig;
9 9 use Packetery\Module\Carrier\CarrierOptionsFactory;
10 10 use Packetery\Module\Carrier\EntityRepository;
11 +use Packetery\Module\Carrier\PacketaPickupPointsConfig;
11 12 use Packetery\Module\ContextResolver;
13 +use Packetery\Module\Options\FlagManager\FeatureFlagProvider;
12 14 use Packetery\Module\ShippingMethod;
13 15 use Packetery\Module\ShippingZoneRepository;
14 -use WC_Abstract_Order;
16 +use WC_Order;
15 17
16 18 class ShippingProvider {
17 19 /**
18 20 * @var array<int, array<string, string>>
@@ -19,8 +21,18 @@
19 21 */
20 22 private static $sortedMethodsCache = [];
21 23
22 24 /**
25 + * @var FeatureFlagProvider
26 + */
27 + private $featureFlagProvider;
28 +
29 + /**
30 + * @var PacketaPickupPointsConfig
31 + */
32 + private $pickupPointConfig;
33 +
34 + /**
23 35 * @var CarDeliveryConfig
24 36 */
25 37 private $carDeliveryConfig;
26 38
@@ -44,8 +56,10 @@
44 56 */
45 57 private $carrierOptionsFactory;
46 58
47 59 public function __construct(
60 + FeatureFlagProvider $featureFlagProvider,
61 + PacketaPickupPointsConfig $pickupPointConfig,
48 62 CarDeliveryConfig $carDeliveryConfig,
49 63 ContextResolver $contextResolver,
50 64 ShippingZoneRepository $shippingZoneRepository,
51 65 EntityRepository $carrierRepository,
@@ -50,8 +64,10 @@
50 64 ShippingZoneRepository $shippingZoneRepository,
51 65 EntityRepository $carrierRepository,
52 66 CarrierOptionsFactory $carrierOptionsFactory
53 67 ) {
68 + $this->featureFlagProvider = $featureFlagProvider;
69 + $this->pickupPointConfig = $pickupPointConfig;
54 70 $this->carDeliveryConfig = $carDeliveryConfig;
55 71 $this->contextResolver = $contextResolver;
56 72 $this->shippingZoneRepository = $shippingZoneRepository;
57 73 $this->carrierRepository = $carrierRepository;
@@ -85,8 +101,15 @@
85 101 if ( preg_match( '/^ShippingMethod_(' . $carDeliveryIds . ')\.php$/', $filename ) ) {
86 102 continue;
87 103 }
88 104 }
105 + if ( $this->featureFlagProvider->isSplitActive() === false ) {
106 + $internalCountries = implode( '|', $this->pickupPointConfig->getInternalCountries() );
107 + $vendorGroups = Carrier::VENDOR_GROUP_ZPOINT . '|' . Carrier::VENDOR_GROUP_ZBOX;
108 + if ( preg_match( '/^ShippingMethod_(' . $internalCountries . ')(' . $vendorGroups . ')\.php$/', $filename ) ) {
109 + continue;
110 + }
111 + }
89 112 require_once $generatedClassesPath . '/' . $filename;
90 113 }
91 114 }
92 115
@@ -103,9 +126,12 @@
103 126 }
104 127 );
105 128 }
106 129
107 - public static function wcOrderHasOurMethod( WC_Abstract_Order $wcOrder ): bool {
130 + /**
131 + * Checks if provided order uses our shipping method like native has_shipping_method method.
132 + */
133 + public static function wcOrderHasOurMethod( WC_Order $wcOrder ): bool {
108 134 foreach ( $wcOrder->get_shipping_methods() as $shippingMethod ) {
109 135 if ( self::isPacketaMethod( $shippingMethod->get_method_id() ) ) {
110 136 return true;
111 137 }