Field->GetSelectedOptions(); if(count($selectedOptions) == 0) return $this->CreateCalculationObject('', '', 0); $total = 0; foreach($selectedOptions as $currentOption) { $result = null; $total += Sanitizer::GetNumberValueFromPath($currentOption, ['Price']); } return $this->CreateCalculationObject($total, '', 1); } public function GetIsValid() { $isValid = parent::GetIsValid(); if(!$isValid) return false; $selectedOptions = $this->Field->GetSelectedOptions(); foreach($selectedOptions as $currentOption) { if($currentOption->UnitPrice != floatval($currentOption->RegularPrice) || $currentOption->UnitPrice * $currentOption->Quantity != $currentOption->Price || $currentOption->Quantity != 1) { return false; } } return true; } public function GetDependsOnOtherFields() { return false; } private function AddOption($original, $ammountToAdd) { if($ammountToAdd['RegularPrice'] != '') { $original['RegularPrice'] = NumericUtilities::ParseNumber($original['RegularPrice'], 0) + NumericUtilities::ParseNumber($ammountToAdd['RegularPrice'], 0); } if($ammountToAdd['SalePrice'] != '') { $original['SalePrice'] = NumericUtilities::ParseNumber($original['SalePrice'], 0) + NumericUtilities::ParseNumber($ammountToAdd['SalePrice'], 0); } return $original; } }