PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.0.0
GiveWP – Donation Plugin and Fundraising Platform v4.0.0
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 / EventTickets / Routes / DeleteEventsListTable.php
give / src / EventTickets / Routes Last commit date
CreateEvent.php 1 year ago CreateEventTicketType.php 1 year ago DeleteEventTicketType.php 1 year ago DeleteEventsListTable.php 1 year ago GetEventForms.php 1 year ago GetEventTicketTypeTickets.php 1 year ago GetEventTicketTypes.php 1 year ago GetEventTickets.php 1 year ago GetEvents.php 1 year ago GetEventsListTable.php 1 year ago UpdateEvent.php 1 year ago UpdateEventTicketType.php 1 year ago
DeleteEventsListTable.php
117 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 * @since 3.20.0 Set the permission callback to "delete_give_payments".
36 * @since 3.6.0
37 */
38 public function registerRoute()
39 {
40 register_rest_route(
41 'give-api/v2',
42 $this->endpoint,
43 [
44 [
45 'methods' => WP_REST_Server::DELETABLE,
46 'callback' => [$this, 'handleRequest'],
47 'permission_callback' => function () {
48 return current_user_can('edit_give_forms');
49 },
50 ],
51 'args' => [
52 'ids' => [
53 'type' => 'string',
54 'required' => true,
55 'validate_callback' => function ($ids) {
56 foreach ($this->splitString($ids) as $id) {
57 if ( ! filter_var($id, FILTER_VALIDATE_INT)) {
58 return false;
59 }
60 }
61
62 return true;
63 },
64 ],
65 ],
66 ]
67 );
68 }
69
70 /**
71 * @since 3.6.0
72 * @throws Exception
73 */
74 public function handleRequest(WP_REST_Request $request): WP_Rest_Response
75 {
76 $ids = $this->splitString($request->get_param('ids'));
77 $errors = [];
78 $successes = [];
79
80 foreach ($ids as $id) {
81 $event = give(EventRepository::class)->getById($id);
82 if ( ! $event) {
83 $errors[] = $id;
84 continue;
85 }
86
87 $soldTicketsCount = $event->eventTickets()->count() ?? 0;
88 if ($soldTicketsCount > 0) {
89 $errors[] = $id;
90 continue;
91 }
92
93 $eventDeleted = give(EventRepository::class)->getById($id)->delete();
94 $eventDeleted ? $successes[] = $id : $errors[] = $id;
95 }
96
97 return new WP_REST_Response(array('errors' => $errors, 'successes' => $successes));
98 }
99
100
101 /**
102 * Split string
103 *
104 * @since 3.6.0
105 *
106 * @return string[]
107 */
108 protected function splitString(string $ids): array
109 {
110 if (strpos($ids, ',')) {
111 return array_map('trim', explode(',', $ids));
112 }
113
114 return [trim($ids)];
115 }
116 }
117