PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 9 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