PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.7.1
GiveWP – Donation Plugin and Fundraising Platform v4.7.1
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 / API / REST / V3 / Routes / Campaigns / GetCampaignComments.php
give / src / API / REST / V3 / Routes / Campaigns Last commit date
ValueObjects 1 year ago GetCampaignComments.php 1 year ago GetCampaignRevenue.php 1 year ago GetCampaignStatistics.php 1 year ago RegisterCampaignRoutes.php 1 year ago
GetCampaignComments.php
107 lines
1 <?php
2
3 namespace Give\API\REST\V3\Routes\Campaigns;
4
5 use Exception;
6 use Give\API\REST\V3\Routes\Campaigns\ValueObjects\CampaignRoute;
7 use Give\API\RestRoute;
8 use Give\Campaigns\CampaignDonationQuery;
9 use Give\Campaigns\Models\Campaign;
10 use Give\Donations\ValueObjects\DonationMetaKeys;
11 use WP_REST_Response;
12 use WP_REST_Server;
13
14 class GetCampaignComments implements RestRoute
15 {
16 /**
17 * @since 4.0.0
18 */
19 public function registerRoute()
20 {
21 register_rest_route(
22 CampaignRoute::NAMESPACE,
23 CampaignRoute::CAMPAIGN . '/comments',
24 [
25 [
26 'methods' => WP_REST_Server::READABLE,
27 'callback' => [$this, 'handleRequest'],
28 'permission_callback' => '__return_true',
29 ],
30 'args' => [
31 'id' => [
32 'type' => 'integer',
33 'required' => true,
34 'sanitize_callback' => 'absint',
35 ],
36 'perPage' => [
37 'type' => 'integer',
38 'required' => false,
39 'sanitize_callback' => 'absint',
40 ],
41 'anonymous' => [
42 'type' => 'boolean',
43 'required' => false,
44 'default' => true,
45 ],
46 ],
47 ]
48 );
49 }
50
51 /**
52 * @since 4.0.0
53 *
54 * @throws Exception
55 */
56 public function handleRequest($request): WP_REST_Response
57 {
58 $campaignId = $request->get_param('id');
59 $perPage = $request->get_param('perPage');
60 $anonymous = $request->get_param('anonymous');
61
62 $campaign = Campaign::find($campaignId);
63
64 if (!$campaign) {
65 return new WP_REST_Response('Campaign not found', 404);
66 }
67
68 $query = (new CampaignDonationQuery($campaign))
69 ->joinDonationMeta(DonationMetaKeys::DONOR_ID, 'donorIdMeta')
70 ->joinDonationMeta(DonationMetaKeys::COMMENT, 'commentMeta')
71 ->joinDonationMeta(DonationMetaKeys::ANONYMOUS, 'anonymousMeta')
72 ->leftJoin('give_donors', 'donorIdMeta.meta_value', 'donors.id', 'donors');
73
74
75 if (!$anonymous) {
76 $query->where('anonymousMeta.meta_value', '1', '!=');
77 }
78
79 $query->where('commentMeta.meta_value', '', '!=');
80 $query->whereIsNotNull('commentMeta.meta_value');
81
82 $query->select(
83 'donorIdMeta.meta_value as donorId',
84 'commentMeta.meta_value as comment',
85 'anonymousMeta.meta_value as anonymous',
86 'donation.post_date as date',
87 'donors.name as donorName'
88 );
89
90 $donations = $query->limit($perPage)->getAll();
91
92 $formattedComments = array_map(function ($donation) {
93 $donorName = $donation->anonymous === '1' ? __('Anonymous') : $donation->donorName;
94
95 return [
96 'donorName' => $donorName,
97 'comment' => $donation->comment,
98 'anonymous' => $donation->anonymous === '1',
99 'date' => human_time_diff(strtotime($donation->date)),
100 'avatar' => get_avatar_url($donation->email),
101 ];
102 }, $donations);
103
104 return new WP_REST_Response($formattedComments);
105 }
106 }
107