protected function getCustomFields($id, waPayment $plugin) { $contact = $this->getContact(); $order_params = $this->getSessionData('params', array()); $payment_params = isset($order_params['payment']) ? $order_params['payment'] : array(); foreach ($payment_params as $k => $v) { $order_params['payment_params_' . $k] = $v; } $order = new waOrder(array('contact' => $contact, 'contact_id' => $contact ? $contact->getId() : null, 'params' => $order_params)); $custom_fields = $plugin->customFields($order); if (!$custom_fields) { return $custom_fields; } $params = array(); $params['namespace'] = 'payment_' . $id; $params['title_wrapper'] = '%s'; $params['description_wrapper'] = '<br><span class="hint">%s</span>'; $params['control_wrapper'] = '<div class="wa-name">%s</div><div class="wa-value">%s %s</div>'; $selected = $id == $this->getSessionData('payment'); $controls = array(); foreach ($custom_fields as $name => $row) { $row = array_merge($row, $params); if ($selected && isset($payment_params[$name])) { $row['value'] = $payment_params[$name]; } $controls[$name] = waHtmlControl::getControl($row['control_type'], $name, $row); } return $controls; }