/** * Checks if delivery address (billing or shipping) was not changed during checkout * Throws exception if not available * * @param oxUser $oUser user object * * @return int */ public function validateDeliveryAddress($oUser) { $sDelAddressMD5 = $this->getConfig()->getRequestParameter('sDeliveryAddressMD5'); $sDeliveryAddress = $oUser->getEncodedDeliveryAddress(); /** @var oxRequiredAddressFields $oRequiredAddressFields */ $oRequiredAddressFields = oxNew('oxRequiredAddressFields'); /** @var oxRequiredFieldsValidator $oFieldsValidator */ $oFieldsValidator = oxNew('oxRequiredFieldsValidator'); $oFieldsValidator->setRequiredFields($oRequiredAddressFields->getBillingFields()); $blFieldsValid = $oFieldsValidator->validateFields($oUser); /** @var oxAddress $oDeliveryAddress */ $oDeliveryAddress = $this->getDelAddressInfo(); if ($blFieldsValid && $oDeliveryAddress) { $sDeliveryAddress .= $oDeliveryAddress->getEncodedDeliveryAddress(); $oFieldsValidator->setRequiredFields($oRequiredAddressFields->getDeliveryFields()); $blFieldsValid = $oFieldsValidator->validateFields($oDeliveryAddress); } $iState = 0; if ($sDelAddressMD5 != $sDeliveryAddress || !$blFieldsValid) { $iState = self::ORDER_STATE_INVALIDDElADDRESSCHANGED; } return $iState; }