PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.2
GiveWP – Donation Plugin and Fundraising Platform v2.19.2
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 / DonationForms / Endpoints / FormActions.php
give / src / DonationForms / Endpoints Last commit date
Endpoint.php 4 years ago FormActions.php 4 years ago ListForms.php 4 years ago
FormActions.php
130 lines
1 <?php
2
3 namespace Give\DonationForms\Endpoints;
4
5 use WP_REST_Request;
6 use WP_REST_Response;
7
8 /**
9 * @since 2.19.0
10 */
11 class FormActions extends Endpoint
12 {
13 /**
14 * @var string
15 */
16 protected $endpoint = 'admin/forms/(?P<action>[\S]+)';
17
18 /**
19 * @inheritDoc
20 */
21 public function registerRoute()
22 {
23 register_rest_route(
24 'give-api/v2',
25 $this->endpoint,
26 [
27 [
28 'methods' => ['GET', 'POST', 'DELETE'],
29 'callback' => [$this, 'handleRequest'],
30 'permission_callback' => [$this, 'permissionsCheck'],
31 ],
32 'args' => [
33 'action' => [
34 'type' => 'string',
35 'required' => true,
36 'enum' => [
37 'trash',
38 'restore',
39 'delete',
40 'duplicate'
41 ],
42 ],
43 'ids' => [
44 'type' => 'string',
45 'required' => true,
46 'validate_callback' => function ($ids) {
47 foreach ($this->splitString($ids) as $id) {
48 if ( ! $this->validateInt($id)) {
49 return false;
50 }
51 }
52
53 return true;
54 },
55 ]
56 ],
57 ]
58 );
59 }
60
61 /**
62 * @param WP_REST_Request $request
63 *
64 * @return WP_REST_Response
65 */
66 public function handleRequest(WP_REST_Request $request)
67 {
68 $ids = $this->splitString($request->get_param('ids'));
69 $errors = [];
70 $successes = [];
71 $form = false;
72
73 switch ($request->get_param('action')) {
74 case 'trash':
75 foreach ($ids as $id) {
76 $form = wp_trash_post($id);
77 $form ? $successes[] = $form : $errors[] = $form;
78 }
79
80 break;
81
82 case 'restore':
83 foreach ($ids as $id) {
84 $form = wp_untrash_post($id);
85 $form ? $successes[] = $form : $errors[] = $form;
86 }
87
88 break;
89
90
91 case 'delete':
92 foreach ($ids as $id) {
93 $form = wp_delete_post($id);
94 $form ? $successes[] = $form : $errors[] = $form;
95 }
96
97 break;
98
99 case 'duplicate':
100 require_once(GIVE_PLUGIN_DIR . '/includes/admin/forms/class-give-form-duplicator.php');
101
102 foreach ($ids as $id) {
103 $form = \Give_Form_Duplicator::handler($id);
104 $form ? $successes[] = $form : $errors[] = $form;
105 }
106
107 break;
108 }
109
110 return new WP_REST_Response(array('errors' => $errors, 'successes' => $successes));
111 }
112
113
114 /**
115 * Split string
116 *
117 * @param string $ids
118 *
119 * @return string[]
120 */
121 protected function splitString($ids)
122 {
123 if (strpos($ids, ',')) {
124 return array_map('trim', explode(',', $ids));
125 }
126
127 return [trim($ids)];
128 }
129 }
130