donor = $donor; $this->fields = $fields; } /** * @since 3.0.0 * * @return string */ public function render(): string { return "

{$this->getTitle()}

{$this->getTableRows()}
Field Value
"; } /** * @since 3.0.0 * * @return string */ protected function getTitle(): string { return __('Custom Fields', 'give'); } /** * @since 3.0.0 * * @return string */ protected function getTableRows(): string { return array_reduce($this->fields, function($output, Field $field) { $value = $this->getFieldValue($field); $label = method_exists($field, 'getLabel') ? $field->getLabel() : $field->getName(); if (empty($value)) { return $output; } return $output . " {$label} {$value} "; }, ''); } /** * @since 3.0.0 * * @return mixed */ protected function getFieldValue(Field $field) { $metaValue = give()->donor_meta->get_meta($this->donor->id, $field->getName(), true); if (empty($metaValue)) { return ''; } if ($field->getType() === Types::FILE) { return wp_get_attachment_link($metaValue); } return $metaValue; } }