PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
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 5 months ago CampaignDonorsBlockViewModel.php 5 months ago app.tsx 1 year ago block.json 1 year ago edit.tsx 1 year ago index.tsx 1 year ago render.php 5 months ago styles.scss 10 months ago
render.php
74 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 use Give\Donors\ValueObjects\DonorMetaKeys;
10
11 /**
12 * @since 4.2.0 remove SQL casting
13 * @since 4.0.0
14 *
15 * @var array $attributes
16 */
17
18 if ( ! isset($attributes['campaignId'])) {
19 return;
20 }
21
22 /** @var Campaign $campaign */
23 $campaign = give(CampaignRepository::class)->getById($attributes['campaignId']);
24
25 if ( ! $campaign) {
26 return;
27 }
28
29 $sortBy = $attributes['sortBy'] ?? 'top-donors';
30 $query = (new CampaignDonationQuery($campaign))
31 ->joinDonationMeta(DonationMetaKeys::DONOR_ID, 'donorIdMeta')
32 ->joinDonationMeta(DonationMetaKeys::AMOUNT, 'amountMeta')
33 ->joinDonationMeta(DonationMetaKeys::FEE_AMOUNT_RECOVERED, 'feeAmountRecovered')
34 ->joinDonationMeta(DonationMetaKeys::FIRST_NAME, 'donorName')
35 ->joinDonationMeta(DonationMetaKeys::ANONYMOUS, 'anonymousMeta')
36 ->leftJoin('give_donors', 'donorIdMeta.meta_value', 'donors.id', 'donors')
37 ->leftJoin('give_donormeta', 'donorIdMeta.meta_value', 'donorMeta.donor_id', 'donorMeta')
38 ->limit($attributes['donorsPerPage'] ?? 5);
39
40 if ($sortBy === 'top-donors') {
41 $query->select(
42 'donorIdMeta.meta_value as id',
43 'SUM(amountMeta.meta_value - IFNULL(feeAmountRecovered.meta_value, 0)) AS amount',
44 'MAX(donorName.meta_value) AS name',
45 'anonymousMeta.meta_value as isAnonymous',
46 'donors.email as email',
47 'donorMeta.meta_value as avatarId'
48 )
49 ->where('donorMeta.meta_key', DonorMetaKeys::AVATAR_ID)
50 ->groupBy('donorIdMeta.meta_value')
51 ->orderBy('amount', 'DESC');
52 } else {
53 $query->joinDonationMeta(DonationMetaKeys::COMPANY, 'companyMeta')
54 ->select(
55 'donation.ID as donationID',
56 'donorIdMeta.meta_value as id',
57 'companyMeta.meta_value as company',
58 'donation.post_date as date',
59 'amountMeta.meta_value - IFNULL(feeAmountRecovered.meta_value, 0) as amount',
60 'donorName.meta_value as name',
61 'anonymousMeta.meta_value as isAnonymous',
62 'donors.email as email',
63 'donorMeta.meta_value as avatarId'
64 )
65 ->where('donorMeta.meta_key', DonorMetaKeys::AVATAR_ID)
66 ->orderBy('donation.ID', 'DESC');
67 }
68
69 if ( ! $attributes['showAnonymous']) {
70 $query->where('anonymousMeta.meta_value', '1', '!=');
71 }
72
73 (new CampaignDonorsBlockViewModel($campaign, $query->getAll(), $attributes))->render();
74