????JFIF??x?x????'
Server IP : 104.21.112.1 / 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/Campaigns/Routes/ |
Upload File : |
<?php namespace Give\Campaigns\Routes; use Exception; use Give\API\RestRoute; use Give\Campaigns\CampaignDonationQuery; use Give\Campaigns\Models\Campaign; use Give\Campaigns\ValueObjects\CampaignRoute; use Give\Donations\ValueObjects\DonationMetaKeys; use WP_REST_Response; use WP_REST_Server; class GetCampaignComments implements RestRoute { /** * @since 4.0.0 */ public function registerRoute() { register_rest_route( CampaignRoute::NAMESPACE, CampaignRoute::CAMPAIGN . '/comments', [ [ 'methods' => WP_REST_Server::READABLE, 'callback' => [$this, 'handleRequest'], 'permission_callback' => '__return_true', ], 'args' => [ 'id' => [ 'type' => 'integer', 'required' => true, 'sanitize_callback' => 'absint', ], 'perPage' => [ 'type' => 'integer', 'required' => false, 'sanitize_callback' => 'absint', ], 'anonymous' => [ 'type' => 'boolean', 'required' => false, 'default' => true, ], ], ] ); } /** * @since 4.0.0 * * @throws Exception */ public function handleRequest($request): WP_REST_Response { $campaignId = $request->get_param('id'); $perPage = $request->get_param('perPage'); $anonymous = $request->get_param('anonymous'); $campaign = Campaign::find($campaignId); if (!$campaign) { return new WP_REST_Response('Campaign not found', 404); } $query = (new CampaignDonationQuery($campaign)) ->joinDonationMeta(DonationMetaKeys::DONOR_ID, 'donorIdMeta') ->joinDonationMeta(DonationMetaKeys::COMMENT, 'commentMeta') ->joinDonationMeta(DonationMetaKeys::ANONYMOUS, 'anonymousMeta') ->leftJoin('give_donors', 'donorIdMeta.meta_value', 'donors.id', 'donors'); if (!$anonymous) { $query->where('anonymousMeta.meta_value', '0'); } $query->where('commentMeta.meta_value', '', '!='); $query->whereIsNotNull('commentMeta.meta_value'); $query->select( 'donorIdMeta.meta_value as donorId', 'commentMeta.meta_value as comment', 'anonymousMeta.meta_value as anonymous', 'donation.post_date as date', 'donors.name as donorName' ); $donations = $query->limit($perPage)->getAll(); $formattedComments = array_map(function ($donation) { $donorName = $donation->anonymous === '1' ? __('Anonymous') : $donation->donorName; return [ 'donorName' => $donorName, 'comment' => $donation->comment, 'anonymous' => $donation->anonymous === '1', 'date' => human_time_diff(strtotime($donation->date)), 'avatar' => get_avatar_url($donation->email), ]; }, $donations); return new WP_REST_Response($formattedComments); } }