donor = $donor;
$this->fields = $fields;
}
/**
* @since 3.0.0
*
* @return string
*/
public function render(): string
{
return "
{$this->getTitle()}
| Field |
Value |
{$this->getTableRows()}
";
}
/**
* @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;
}
}