private function checkOrderDeliverydate(&$order)
 {
     if (JFactory::getApplication()->isAdmin()) {
         return true;
     }
     self::$_deliveryOptions = null;
     self::$_deliveryDates = 0;
     self::$_deliveryNmlDates = 0;
     self::getDeliveryDates();
     $datesValid = true;
     $item_delivery_dates = array();
     foreach ($order->cart->products as $product) {
         if (empty($product->item_delivery_date)) {
             if (empty(self::$_fieldRequired)) {
                 continue;
             }
             JError::raiseWarning(4720, self::$_params->get('nodeliverydate'));
             $datesValid = false;
             break;
         }
         $dateValid = false;
         foreach (self::$_deliveryOptions as $optionValue => $optionLabel) {
             if ($product->item_delivery_date == $optionValue) {
                 $item_delivery_dates[$optionValue] = $optionLabel;
                 $dateValid = true;
                 break;
             }
         }
         if (!$dateValid) {
             JError::raiseWarning(4720, sprintf(self::$_params->get('misseddeliverytime'), $product->item_delivery_date_text));
             $datesValid = false;
             break;
         }
     }
     if ($datesValid && isset($optionValue) && isset($item_delivery_dates[$optionValue])) {
         if (count($item_delivery_dates[$optionValue]) == 1) {
             $fieldsClass = hikashop_get('class.field');
             $itemFields = $fieldsClass->getFields('', $element, 'order');
             if (isset($itemFields['order_delivery_date']) && isset($itemFields['order_delivery_date_text'])) {
                 foreach ($item_delivery_dates as $optionValue => $optionLabel) {
                     if (empty($order->order_delivery_date)) {
                         $order->order_delivery_date = $optionValue;
                         $order->order_delivery_date_text = $optionLabel;
                     }
                 }
             }
         }
         return true;
     }
     if (self::$_params->get('shownodate')) {
         self::$_resetValue = null;
     } else {
         self::getDefault($order, self::$_resetValue);
     }
     self::$_resetFlag = true;
     return false;
 }