PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.15.5
GiveWP – Donation Plugin and Fundraising Platform v4.15.5
4.18.0 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 All 257 releases
give / src / DonorDashboards / Routes / PasswordResetRoute.php

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

89 lines 2.2 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 3.3.0
13 */
14 class PasswordResetRoute implements RestRoute
15 {
16
17 /** @var string */
18 protected $endpoint = 'donor-dashboard/reset-password';
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' => '__return_true',
33 ],
34 'args' => [
35 'email' => [
36 'type' => 'string',
37 'required' => true,
38 'sanitize_callback' => 'sanitize_text_field',
39 ],
40 ],
41 ]
42 );
43 }
44
45 /**
46 * Handles logout request
47 *
48 * @since 3.3.0
49 *
50 * @param WP_REST_Request $request
51 *
52 * @return WP_REST_Response
53 *
54 */
55 public function handleRequest(WP_REST_Request $request): WP_REST_Response
56 {
57 $sent = retrieve_password($request->get_param('email'));
58
59 return $sent
60 ? new WP_REST_Response(
61 [
62 'status' => 200,
63 'response' => 'password_reset_sent',
64 'body_response' => [
65 'message' => __('The password reset email has been sent.', 'give'),
66 ],
67 ]
68 )
69 : new WP_REST_Response(
70 [
71 'status' => 400,
72 'response' => 'error',
73 'body_response' => [
74 'error' => 'password_reset_failed',
75 'message' => esc_html__('Unable to reset password. Please try again.', 'give'),
76 ],
77 ]
78 );
79 }
80
81 /**
82 * Check permissions
83 */
84 public function permissionsCheck(): bool
85 {
86 return DonorDashboardHelpers::isDonorLoggedIn();
87 }
88 }
89