diff --git a/lib/Tracking_UPS.lib.php b/lib/Tracking_UPS.lib.php index b461157..8af1e1b 100644 --- a/lib/Tracking_UPS.lib.php +++ b/lib/Tracking_UPS.lib.php @@ -93,7 +93,12 @@ class Tracking_UPS { $info->setCarrierLogo(CarrierAssets::getLogo(Carriers::getCarrierCode($info->getCarrier()))); if (count($trackinfo["Package"]["Activity"]) > 0) { - $current = $trackinfo["Package"]["Activity"][0]; + // If there's only one entry, it might not be an array + if (isset($trackinfo["Package"]["Activity"][0])) { + $current = $trackinfo["Package"]["Activity"][0]; + } else { + $current = $trackinfo["Package"]["Activity"]; + } $current_status = new TrackingEntry( TrackingStatus::UPSEventTypeToStatus($current["Status"]["Type"]), $current["Status"]["Description"] ?? "Unknown", @@ -131,6 +136,12 @@ class Tracking_UPS { // // $info->setFrom($from); + // Only one entry, so put it in itself so the loop works + if (!isset($trackinfo["Package"]["Activity"][0])) { + $trackinfo["Package"]["Activity"] = [ + $trackinfo["Package"]["Activity"] + ]; + } foreach ($trackinfo["Package"]["Activity"] as $history) { $location = new Location(); $location->city = $history["ActivityLocation"]["Address"]["City"] ?? "";