PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.0.0
GiveWP – Donation Plugin and Fundraising Platform v4.0.0
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 / Campaigns / Routes / DeleteCampaignListTable.php
give / src / Campaigns / Routes Last commit date
DeleteCampaignListTable.php 1 year ago GetCampaignComments.php 1 year ago GetCampaignRevenue.php 1 year ago GetCampaignStatistics.php 1 year ago GetCampaignsListTable.php 1 year ago RegisterCampaignRoutes.php 1 year ago
DeleteCampaignListTable.php
118 lines
1 <?php
2
3 namespace Give\Campaigns\Routes;
4
5 use Give\API\RestRoute;
6 use Give\Campaigns\ListTable\CampaignsListTable;
7 use Give\Campaigns\Repositories\CampaignRepository;
8 use Give\Campaigns\ValueObjects\CampaignRoute;
9 use Give\Framework\Exceptions\Primitives\Exception;
10 use WP_Error;
11 use WP_REST_Request;
12 use WP_REST_Response;
13 use WP_REST_Server;
14
15 /**
16 * @since 4.0.0
17 */
18 class DeleteCampaignListTable implements RestRoute
19 {
20 /**
21 * @var string
22 */
23 protected $endpoint = 'campaigns/list-table';
24
25 /**
26 * @var WP_REST_Request
27 */
28 protected $request;
29
30 /**
31 * @var CampaignsListTable
32 */
33 protected $listTable;
34
35 /**
36 * @inheritDoc
37 */
38 public function registerRoute()
39 {
40 register_rest_route(
41 CampaignRoute::NAMESPACE,
42 $this->endpoint,
43 [
44 [
45 'methods' => WP_REST_Server::DELETABLE,
46 'callback' => [$this, 'handleRequest'],
47 'permission_callback' => [$this, 'permissionsCheck'],
48 ],
49 'args' => [
50 'ids' => [
51 'type' => 'string',
52 'required' => true,
53 'validate_callback' => function ($ids) {
54 foreach ($this->splitString($ids) as $id) {
55 if ( ! filter_var($id, FILTER_VALIDATE_INT)) {
56 return false;
57 }
58 }
59
60 return true;
61 },
62 ],
63 ],
64 ]
65 );
66 }
67
68 /**
69 * @since 4.0.0
70 *
71 * @throws Exception
72 */
73 public function handleRequest(WP_REST_Request $request): WP_Rest_Response
74 {
75 $ids = $this->splitString($request->get_param('ids'));
76 $errors = [];
77 $successes = [];
78
79 foreach ($ids as $id) {
80 $campaignDeleted = give(CampaignRepository::class)->getById($id)->delete();
81 $campaignDeleted ? $successes[] = $id : $errors[] = $id;
82 }
83
84 return new WP_REST_Response(['errors' => $errors, 'successes' => $successes]);
85 }
86
87
88 /**
89 * Split string
90 *
91 * @since 4.0.0
92 *
93 * @return string[]
94 */
95 protected function splitString(string $ids): array
96 {
97 if (strpos($ids, ',')) {
98 return array_map('trim', explode(',', $ids));
99 }
100
101 return [trim($ids)];
102 }
103
104 /**
105 * @since 4.0.0
106 *
107 * @return bool|WP_Error
108 */
109 public function permissionsCheck()
110 {
111 return current_user_can('delete_posts') ?: new WP_Error(
112 'rest_forbidden',
113 esc_html__("You don't have permission to delete Campaigns", 'give'),
114 ['status' => is_user_logged_in() ? 403 : 401]
115 );
116 }
117 }
118