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