Server IP : 192.158.238.246 / Your IP : 18.117.229.144 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/give/src/Donors/CustomFields/Views/ |
Upload File : |
<?php namespace Give\Donors\CustomFields\Views; use Give\Donors\Models\Donor; use Give\Framework\FieldsAPI\Field; use Give\Framework\FieldsAPI\Types; /** * @since 3.0.0 */ class DonorDetailsView { /** @var Donor */ protected $donor; /** @var Field[] */ protected $fields; /** * @since 3.0.0 * * @param Donor $donor * @param Field[] $fields */ public function __construct(Donor $donor, array $fields) { $this->donor = $donor; $this->fields = $fields; } /** * @since 3.0.0 * * @return string */ public function render(): string { return "<h3>{$this->getTitle()}</h3> <table class='wp-list-table widefat striped donations'> <thead> <tr> <th scope='col'>Field</th> <th scope='col'>Value</th> </tr> </thead> <tbody> {$this->getTableRows()} </tbody> </table>"; } /** * @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 . " <tr> <td>{$label}</td> <td>{$value}</td> </tr> "; }, ''); } /** * @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; } }