private static function checkDeliveryDate($order, $now = null, $day = 0) { if ($now === null) { if (empty($order->order_delivery_date)) { return false; } $value = self::orderDateValue2Time($order->order_delivery_date); } else { $value = $now + $day * 24 * 60 * 60; // Whoops, watch out for years with leap seconds! } if (class_exists('plgHikashopshippingBFManual')) { $localUsableRates = plgHikashopshippingBFManual::getLocalUsableRates(); if (!empty($localUsableRates)) { $unusableRates = plgHikashopshippingBFManual::unusableDeliveryRates(self::getFormattedDate('Ymd', $value), $localUsableRates); if (!empty($unusableRates)) { if (count($localUsableRates) == count($unusableRates)) { return false; } if (!empty($order->shipping)) { foreach ($order->shipping as $shipping) { if (in_array($shipping->shipping_id, $unusableRates)) { return false; } } } } } } switch (self::getFormattedDate('N', $value)) { case '1': $allowedDate = self::$_params->get('monday'); break; case '2': $allowedDate = self::$_params->get('tuesday'); break; case '3': $allowedDate = self::$_params->get('wednesday'); break; case '4': $allowedDate = self::$_params->get('thursday'); break; case '5': $allowedDate = self::$_params->get('friday'); break; case '6': $allowedDate = self::$_params->get('saturday'); break; case '7': $allowedDate = self::$_params->get('sunday'); break; default: return false; } if (self::blockedDeliveryDate($value)) { return false; } if ($allowedDate) { self::$_deliveryNmlDates += 1; } else { if (!self::extraDeliveryDate($value)) { return false; } } return $value; }