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