/** * Make sure all omnipay fields are required * * @todo: make this more flexible * * @return RequiredFields */ public function getRequiredFields() { $required = parent::getRequiredFields(); $gateway = $this->data()->PaymentGateway; $fieldgroups = $this->getPaymentFieldsGroupArray(); $factory = new GatewayFieldsFactory($gateway, $fieldgroups); $fields = $factory->getFields(); foreach ($fields as $field) { if (!$field->hasMethod('getName')) { continue; } $fieldname = $field->getName(); if ($fieldname == "billingAddress2") { continue; } $required->addRequiredField($fieldname); } $paymentfieldname = $this->PaymentAmountField()->Name; $required->addRequiredField($paymentfieldname); return $required; }