PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.7
GiveWP – Donation Plugin and Fundraising Platform v2.19.7
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
131 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 give()->form_meta->delete_all_meta($id);
95 $form ? $successes[] = $form : $errors[] = $form;
96 }
97
98 break;
99
100 case 'duplicate':
101 require_once(GIVE_PLUGIN_DIR . '/includes/admin/forms/class-give-form-duplicator.php');
102
103 foreach ($ids as $id) {
104 $form = \Give_Form_Duplicator::handler($id);
105 $form ? $successes[] = $form : $errors[] = $form;
106 }
107
108 break;
109 }
110
111 return new WP_REST_Response(array('errors' => $errors, 'successes' => $successes));
112 }
113
114
115 /**
116 * Split string
117 *
118 * @param string $ids
119 *
120 * @return string[]
121 */
122 protected function splitString($ids)
123 {
124 if (strpos($ids, ',')) {
125 return array_map('trim', explode(',', $ids));
126 }
127
128 return [trim($ids)];
129 }
130 }
131