PluginProbe
Cookie Consent – GDPR & CCPA Cookie Banner & Consent Manager / 0.0.3
Cookie Consent – GDPR & CCPA Cookie Banner & Consent Manager v0.0.3
0.0.11 0.0.10 0.0.9 0.0.8 0.0.7 0.0.6 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5
cookiez / modules / cookie / rest / delete-cookie.php

delete-cookie.php in Cookie Consent – GDPR & CCPA Cookie Banner & Consent Manager 0.0.3, at modules/cookie/rest/delete-cookie.php

74 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Cookiez\Modules\Cookie\Rest;
4
5 use Cookiez\Classes\Rest\Sanitizer;
6 use Cookiez\Modules\Cookie\Classes\Route_Base;
7 use Cookiez\Modules\Cookie\Components\Cookie;
8
9 use RuntimeException;
10 use Throwable;
11 use WP_REST_Response;
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Class Delete_Cookie
19 * REST endpoint for deleting a cookie
20 */
21 class Delete_Cookie extends Route_Base {
22 public string $path = '(?P<id>\d+)';
23
24 public function get_methods(): array {
25 return [ 'DELETE' ];
26 }
27
28 public function get_name(): string {
29 return 'delete-cookie';
30 }
31
32 protected function sanitize_fields(): array {
33 return [
34 'id' => Sanitizer::absint(),
35 ];
36 }
37
38 public function DELETE(): WP_REST_Response {
39 try {
40 $error = $this->verify_capability();
41
42 if ( $error ) {
43 return $error;
44 }
45
46 $cookie_id = (int) $this->params['id'];
47
48 try {
49 ( new Cookie() )->delete( $cookie_id );
50 } catch ( RuntimeException $e ) {
51 if ( 'cookie_not_found' === $e->getMessage() ) {
52 return $this->respond_error_json( [
53 'message' => esc_html__( 'Cookie not found', 'cookiez' ),
54 'code' => 'cookie_not_found',
55 ], 404 );
56 }
57
58 throw $e;
59 }
60
61 return $this->respond_success_json( [
62 'message' => esc_html__( 'Cookie deleted successfully', 'cookiez' ),
63 'cookie_id' => $cookie_id,
64 ] );
65
66 } catch ( Throwable $t ) {
67 return $this->respond_error_json( [
68 'message' => $t->getMessage(),
69 'code' => 'internal_server_error',
70 ], 500 );
71 }
72 }
73 }
74