PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.4.1
GiveWP – Donation Plugin and Fundraising Platform v3.4.1
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 / Promotions / WelcomeBanner / Endpoints / DismissWelcomeBannerRoute.php
give / src / Promotions / WelcomeBanner / Endpoints Last commit date
DismissWelcomeBannerRoute.php 2 years ago
DismissWelcomeBannerRoute.php
90 lines
1 <?php
2
3 namespace Give\Promotions\WelcomeBanner\Endpoints;
4
5 use Give\API\RestRoute;
6 use WP_Error;
7 use WP_REST_Request;
8 use WP_REST_Response;
9
10 class DismissWelcomeBannerRoute implements RestRoute
11 {
12 /**
13 * @var string
14 * @since 3.0.0
15 */
16 protected $endpoint = 'welcome-banner/dismiss';
17
18 /**
19 * @inheritDoc
20 * @since 3.0.0
21 */
22 public function registerRoute(): void
23 {
24 register_rest_route(
25 'give-api/v2',
26 $this->endpoint,
27 [
28 [
29 'methods' => 'POST',
30 'callback' => [$this, 'handleRequest'],
31 'permission_callback' => [$this, 'permissionsCheck'],
32 'args' => [
33 'action' => [
34 'type' => 'string',
35 'required' => true,
36 ],
37 ],
38 ],
39 ]
40 );
41 }
42
43 /**
44 * @since 3.0.0
45 */
46 public function permissionsCheck()
47 {
48 if (!current_user_can('manage_options')) {
49 return new WP_Error(
50 'rest_forbidden',
51 esc_html__(
52 'You don\'t have permission to dismiss options. Only users with the "manage_options" capability can perform this action.',
53 'give'
54 ),
55 ['status' => $this->authorizationStatusCode()]
56 );
57 }
58
59 return true;
60 }
61
62 /**
63 * Sets up the proper HTTP status code for authorization.
64 * @return int
65 * @since 3.0.0
66 */
67 public function authorizationStatusCode(): int
68 {
69 if (is_user_logged_in()) {
70 return 403;
71 }
72
73 return 401;
74 }
75
76 /**
77 * @param WP_REST_Request $request
78 *
79 * @return WP_REST_Response
80 * @since 3.0.0
81 */
82 public function handleRequest(WP_REST_Request $request): WP_REST_Response
83 {
84 update_option($request->get_param('action'), time());
85
86 return new WP_REST_Response(['banner_dismissed' => $request->get_param('action')]);
87 }
88
89 }
90