PluginProbe
PostNL for WooCommerce / 4.0.1
PostNL for WooCommerce v4.0.1
5.9.12 5.9.11 5.9.10 5.9.9 5.9.8 5.9.7 5.9.6 trunk 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 3.1.4 3.1.5 3.1.6 3.1.7 4.0.0 4.0.1 4.0.2 4.3.2 4.3.3 4.4.0 4.4.1 All 72 releases
woo-postnl / includes / vendor / myparcelnl / sdk / src / Adapter / DeliveryOptions / DeliveryOptionsV2Adapter.php

DeliveryOptionsV2Adapter.php in PostNL for WooCommerce 4.0.1, at includes/vendor/myparcelnl/sdk/src/Adapter/DeliveryOptions/DeliveryOptionsV2Adapter.php

49 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php declare(strict_types=1);
2
3 namespace MyParcelNL\Sdk\src\Adapter\DeliveryOptions;
4
5 use Exception;
6 use MyParcelNL\Sdk\src\Model\Consignment\AbstractConsignment;
7
8 class DeliveryOptionsV2Adapter extends AbstractDeliveryOptionsAdapter
9 {
10 /**
11 * Default values to use if there is no input.
12 */
13 public const DEFAULTS = [
14 "carrier" => null,
15 "deliveryType" => "standard",
16 "date" => "",
17 "shipmentOptions" => [],
18 ];
19
20 /**
21 * @param array $deliveryOptions
22 */
23 public function __construct(array $deliveryOptions = [])
24 {
25 if (! count($deliveryOptions)) {
26 $deliveryOptions = self::DEFAULTS;
27 }
28
29 $this->carrier = $deliveryOptions["carrier"] ?? null;
30 $this->date = $deliveryOptions["date"];
31 $this->deliveryType = $this->normalizeDeliveryType($deliveryOptions["time"][0]["type"]);
32 $this->shipmentOptions = new ShipmentOptionsV2Adapter($deliveryOptions["options"] ?? []);
33
34 if ($this->isPickup()) {
35 $this->pickupLocation = new PickupLocationV2Adapter($deliveryOptions);
36 }
37 }
38
39 /**
40 * @param $deliveryType
41 *
42 * @return string
43 */
44 private function normalizeDeliveryType(int $deliveryType): string
45 {
46 return array_flip(AbstractConsignment::DELIVERY_TYPES_NAMES_IDS_MAP)[$deliveryType];
47 }
48 }
49