PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.1
GiveWP – Donation Plugin and Fundraising Platform v4.16.1
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 All 256 releases
give / src / DonorDashboards / Routes / LogoutRoute.php

LogoutRoute.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.1, at src/DonorDashboards/Routes/LogoutRoute.php

94 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\DonorDashboards\Routes;
4
5 use Give\API\RestRoute;
6 use Give\DonorDashboards\Helpers as DonorDashboardHelpers;
7 use WP_REST_Request;
8 use WP_REST_Response;
9
10
11 /**
12 * @since 2.10.0
13 */
14 class LogoutRoute implements RestRoute
15 {
16
17 /** @var string */
18 protected $endpoint = 'donor-dashboard/logout';
19
20 /**
21 * @inheritDoc
22 */
23 public function registerRoute()
24 {
25 register_rest_route(
26 'give-api/v2',
27 $this->endpoint,
28 [
29 [
30 'methods' => 'POST',
31 'callback' => [$this, 'handleRequest'],
32 'permission_callback' => [$this, 'permissionsCheck'],
33 ],
34 ]
35 );
36 }
37
38 /**
39 * Handles logout request
40 *
41 * @since 2.10.0
42 *
43 * @param WP_REST_Request $request
44 *
45 * @return WP_REST_Response
46 *
47 */
48 public function handleRequest(WP_REST_Request $request): WP_REST_Response
49 {
50 // Check if WP user is logged in
51 if (get_current_user_id() !== 0) {
52 // Handle logout logic for WP users
53
54 /**
55 * Fires before processing user logout.
56 *
57 * @since 1.0
58 */
59 do_action('give_before_user_logout');
60
61 // Logout user (and destroys current Give Session, via hook registered in Give_Session class)
62 wp_logout();
63
64 /**
65 * Fires after processing user logout.
66 *
67 * @since 1.0
68 */
69 do_action('give_after_user_logout');
70 } else {
71 // Destroy current Give Session
72 give()->session->destroy_session();
73 }
74
75 return new WP_REST_Response(
76 [
77 'status' => 200,
78 'response' => 'logout_successful',
79 'body_response' => [
80 'message' => __('User was logged out successfully.', 'give'),
81 ],
82 ]
83 );
84 }
85
86 /**
87 * Check permissions
88 */
89 public function permissionsCheck(): bool
90 {
91 return DonorDashboardHelpers::isDonorLoggedIn();
92 }
93 }
94