????JFIF??x?x????'
| Server IP : 172.67.174.47 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././home/tempvsty/pontiacques.org/wp-content/plugins/give/src/API/Endpoints/Reports/ |
Upload File : |
<?php
/**
* Top Donors endpoint
*
* @package Give
*/
namespace Give\API\Endpoints\Reports;
class TopDonors extends Endpoint
{
public function __construct()
{
$this->endpoint = 'top-donors';
}
public function getReport($request)
{
$start = date_create($request->get_param('start'));
$end = date_create($request->get_param('end'));
return $this->get_data($start, $end);
}
public function get_data($start, $end)
{
$paymentObjects = $this->getPayments($start->format('Y-m-d'), $end->format('Y-m-d 23:i:s'), 'date', -1);
$donors = [];
foreach ($paymentObjects as $paymentObject) {
if ($paymentObject->status === 'publish' || $paymentObject->status === 'give_subscription') {
$donors[$paymentObject->donor_id]['type'] = 'donor';
$donors[$paymentObject->donor_id]['earnings'] = isset($donors[$paymentObject->donor_id]['earnings']) ? $donors[$paymentObject->donor_id]['earnings'] += $paymentObject->total : $paymentObject->total;
$donors[$paymentObject->donor_id]['total'] = give_currency_filter(
give_format_amount($donors[$paymentObject->donor_id]['earnings'], ['sanitize' => false]),
[
'currency_code' => $this->currency,
'decode_currency' => true,
'sanitize' => false,
]
);
$donors[$paymentObject->donor_id]['donations'] = isset($donors[$paymentObject->donor_id]['donations']) ? $donors[$paymentObject->donor_id]['donations'] += 1 : 1;
$countLabel = _n('Donation', 'Donations', $donors[$paymentObject->donor_id]['donations'], 'give');
$donors[$paymentObject->donor_id]['count'] = $donors[$paymentObject->donor_id]['donations'] . ' ' . $countLabel;
$donors[$paymentObject->donor_id]['name'] = $paymentObject->first_name . ' ' . $paymentObject->last_name;
$donors[$paymentObject->donor_id]['email'] = $paymentObject->email;
$donors[$paymentObject->donor_id]['image'] = give_validate_gravatar(
$paymentObject->email
) ? get_avatar_url($paymentObject->email, 60) : null;
$donors[$paymentObject->donor_id]['url'] = admin_url(
'edit.php?post_type=give_forms&page=give-donors&view=overview&id=' . absint(
$paymentObject->donor_id
)
);
}
}
$sorted = usort(
$donors,
function ($a, $b) {
if ($a['earnings'] == $b['earnings']) {
return 0;
}
return ($a['earnings'] > $b['earnings']) ? -1 : 1;
}
);
if ($sorted === true) {
$donors = array_slice($donors, 0, 25);
$donors = array_values($donors);
}
return $donors;
}
}