PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.5.0
GiveWP – Donation Plugin and Fundraising Platform v4.5.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Campaigns / Blocks / CampaignDonors / render.php
give / src / Campaigns / Blocks / CampaignDonors Last commit date
resources 1 year ago CampaignDonorsBlockViewModel.php 1 year ago app.tsx 1 year ago block.json 1 year ago edit.tsx 1 year ago index.tsx 1 year ago render.php 1 year ago styles.scss 1 year ago
render.php
66 lines
1 <?php
2
3 namespace Give\Campaigns\Blocks\CampaignDonors;
4
5 use Give\Campaigns\CampaignDonationQuery;
6 use Give\Campaigns\Models\Campaign;
7 use Give\Campaigns\Repositories\CampaignRepository;
8 use Give\Donations\ValueObjects\DonationMetaKeys;
9
10 /**
11 * @since 4.2.0 remove SQL casting
12 * @since 4.0.0
13 *
14 * @var array $attributes
15 */
16
17 if ( ! isset($attributes['campaignId'])) {
18 return;
19 }
20
21 /** @var Campaign $campaign */
22 $campaign = give(CampaignRepository::class)->getById($attributes['campaignId']);
23
24 if ( ! $campaign) {
25 return;
26 }
27
28 $sortBy = $attributes['sortBy'] ?? 'top-donors';
29 $query = (new CampaignDonationQuery($campaign))
30 ->joinDonationMeta(DonationMetaKeys::DONOR_ID, 'donorIdMeta')
31 ->joinDonationMeta(DonationMetaKeys::AMOUNT, 'amountMeta')
32 ->joinDonationMeta(DonationMetaKeys::FEE_AMOUNT_RECOVERED, 'feeAmountRecovered')
33 ->joinDonationMeta(DonationMetaKeys::FIRST_NAME, 'donorName')
34 ->joinDonationMeta(DonationMetaKeys::ANONYMOUS, 'anonymousMeta')
35 ->leftJoin('give_donors', 'donorIdMeta.meta_value', 'donors.id', 'donors')
36 ->limit($attributes['donorsPerPage'] ?? 5);
37
38 if ($sortBy === 'top-donors') {
39 $query->select(
40 'donorIdMeta.meta_value as id',
41 'SUM(amountMeta.meta_value - IFNULL(feeAmountRecovered.meta_value, 0)) AS amount',
42 'MAX(donorName.meta_value) AS name',
43 'anonymousMeta.meta_value as isAnonymous'
44 )
45 ->groupBy('donorIdMeta.meta_value')
46 ->orderBy('amount', 'DESC');
47 } else {
48 $query->joinDonationMeta(DonationMetaKeys::COMPANY, 'companyMeta')
49 ->select(
50 'donation.ID as donationID',
51 'donorIdMeta.meta_value as id',
52 'companyMeta.meta_value as company',
53 'donation.post_date as date',
54 'amountMeta.meta_value - IFNULL(feeAmountRecovered.meta_value, 0) as amount',
55 'donorName.meta_value as name',
56 'anonymousMeta.meta_value as isAnonymous'
57 )
58 ->orderBy('donation.ID', 'DESC');
59 }
60
61 if ( ! $attributes['showAnonymous']) {
62 $query->where('anonymousMeta.meta_value', '1', '!=');
63 }
64
65 (new CampaignDonorsBlockViewModel($campaign, $query->getAll(), $attributes))->render();
66