PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.3
GiveWP – Donation Plugin and Fundraising Platform v2.22.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 / Donations / Endpoints / DonationActions.php
give / src / Donations / Endpoints Last commit date
DonationActions.php 4 years ago Endpoint.php 4 years ago ListDonations.php 4 years ago SwitchDonationView.php 4 years ago
DonationActions.php
144 lines
1 <?php
2
3 namespace Give\Donations\Endpoints;
4
5 use Exception;
6 use Give\Framework\Database\DB;
7 use WP_REST_Request;
8 use WP_REST_Response;
9
10 class DonationActions extends Endpoint
11 {
12 /**
13 * @var string
14 */
15 protected $endpoint = 'admin/donations/(?P<action>[\S]+)';
16
17 /**
18 * @inheritDoc
19 */
20 public function registerRoute()
21 {
22 register_rest_route(
23 'give-api/v2',
24 $this->endpoint,
25 [
26 [
27 'methods' => ['POST', 'DELETE'],
28 'callback' => [$this, 'handleRequest'],
29 'permission_callback' => [$this, 'permissionsCheck'],
30 ],
31 'args' => [
32 'action' => [
33 'type' => 'string',
34 'required' => true,
35 'enum' => [
36 'delete',
37 'setStatus',
38 'resendEmailReceipt',
39 ],
40 ],
41 'ids' => [
42 'type' => 'string',
43 'required' => true,
44 'validate_callback' => function ($ids) {
45 foreach ($this->splitString($ids) as $id) {
46 if (!$this->validateInt($id)) {
47 return false;
48 }
49 }
50
51 return true;
52 },
53 ],
54 'status' => [
55 'type' => 'string',
56 'required' => false,
57 'enum' => [
58 'publish', // Completed
59 'pending',
60 'processing',
61 'refunded',
62 'revoked',
63 'failed',
64 'cancelled',
65 'abandoned',
66 'preapproval'
67 ],
68 ],
69 ],
70 ]
71 );
72 }
73
74 /**
75 * @param WP_REST_Request $request
76 *
77 * @since 2.20.0
78 *
79 * @return WP_REST_Response
80 */
81 public function handleRequest(WP_REST_Request $request)
82 {
83 $ids = $this->splitString($request->get_param('ids'));
84 $errors = $successes = [];
85
86 switch ($request->get_param('action')) {
87 case 'delete':
88 foreach ($ids as $id) {
89 try {
90 give_delete_donation($id);
91 $successes[] = $id;
92 } catch (Exception $e) {
93 $errors[] = $id;
94 }
95 }
96
97 break;
98
99 case 'setStatus':
100 foreach ($ids as $id) {
101 $updated = give_update_payment_status($id, $request->get_param('status'));
102 $updated ? $successes[] = $id : $errors[] = $id;
103 }
104
105 break;
106
107 case 'resendEmailReceipt':
108 foreach ($ids as $id) {
109 try {
110 do_action('give_donation-receipt_email_notification', $id);
111 $successes[] = $id;
112 } catch (Exception $e) {
113 $errors[] = $id;
114 }
115 }
116
117 break;
118 }
119
120 return new WP_REST_Response([
121 'errors' => $errors,
122 'successes' => $successes
123 ]);
124 }
125
126
127 /**
128 * Split string
129 *
130 * @param string $ids
131 * @since 2.20.0
132 *
133 * @return string[]
134 */
135 protected function splitString($ids)
136 {
137 if (strpos($ids, ',')) {
138 return array_map('trim', explode(',', $ids));
139 }
140
141 return [trim($ids)];
142 }
143 }
144