PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.16.2
GiveWP – Donation Plugin and Fundraising Platform v3.16.2
4.16.4 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 / DonorDashboards / Tabs / DonationHistoryTab / DonationsRoute.php
give / src / DonorDashboards / Tabs / DonationHistoryTab Last commit date
DonationsRoute.php 4 years ago Tab.php 4 years ago
DonationsRoute.php
111 lines
1 <?php
2
3 namespace Give\DonorDashboards\Tabs\DonationHistoryTab;
4
5 use Give\DonorDashboards\Repositories\Donations as DonationsRepository;
6 use Give\DonorDashboards\Tabs\Contracts\Route as RouteAbstract;
7 use Give\Log\Log;
8 use WP_REST_Request;
9 use WP_REST_Response;
10
11 /**
12 * @since 2.10.2
13 */
14 class DonationsRoute extends RouteAbstract
15 {
16
17 /**
18 * @return string
19 */
20 public function endpoint()
21 {
22 return 'donations';
23 }
24
25 /**
26 * @return array
27 */
28 public function args()
29 {
30 return [];
31 }
32
33 /**
34 * @since 2.10.2
35 *
36 * @param WP_REST_Request $request
37 *
38 * @return WP_REST_Response
39 *
40 */
41 public function handleRequest(WP_REST_Request $request)
42 {
43 $donorId = give()->donorDashboard->getId();
44
45 $repository = new DonationsRepository();
46
47 return $this->getData($repository, $donorId);
48 }
49
50 /**
51 * @since 2.10.2
52 *
53 * @param DonationsRepository $repository
54 * @param $donorId
55 *
56 * @return WP_REST_Response
57 */
58 protected function getData(DonationsRepository $repository, $donorId)
59 {
60 // If the provided donor ID is valid, attempt to query data
61 try {
62 $donations = $repository->getDonations($donorId);
63 $count = $repository->getDonationCount($donorId);
64 $revenue = $repository->getRevenue($donorId);
65 $average = $repository->getAverageRevenue($donorId);
66 $currency = [
67 'symbol' => give_currency_symbol(give_get_currency(), true),
68 'position' => give_get_currency_position(),
69 ];
70
71 return new WP_REST_Response(
72 [
73 'status' => 200,
74 'response' => 'success',
75 'body_response' => [
76 [
77 'donations' => $donations,
78 'count' => $count,
79 'revenue' => $revenue,
80 'average' => $average,
81 'currency' => $currency,
82 ],
83 ],
84 ]
85 );
86 } catch (\Exception $e) {
87 Log::error(
88 esc_html__('An error occurred while retrieving donation records', 'give'),
89 [
90 'source' => 'Donor Dashboard',
91 'Donor ID' => $donorId,
92 'Error' => $e->getMessage(),
93 ]
94 );
95
96 return new WP_REST_Response(
97 [
98 'status' => 400,
99 'response' => 'database_error',
100 'body_response' => [
101 'message' => esc_html__(
102 'An error occurred while retrieving your donation records. Contact the site administrator for assistance.',
103 'give'
104 ),
105 ],
106 ]
107 );
108 }
109 }
110 }
111