PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.7
GiveWP – Donation Plugin and Fundraising Platform v2.19.7
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 / DonorDashboards / Routes / VerifyEmailRoute.php
give / src / DonorDashboards / Routes Last commit date
Captcha 4 years ago LoginRoute.php 4 years ago LogoutRoute.php 4 years ago VerifyEmailRoute.php 4 years ago
VerifyEmailRoute.php
142 lines
1 <?php
2
3 namespace Give\DonorDashboards\Routes;
4
5 use Give\API\RestRoute;
6 use WP_REST_Request;
7 use WP_REST_Response;
8
9 /**
10 * @since 2.10.0
11 */
12 class VerifyEmailRoute implements RestRoute
13 {
14
15 use Captcha\ProtectedRoute;
16
17 /** @var string */
18 protected $endpoint = 'donor-dashboard/verify-email';
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 'g-recaptcha-response' => [
41 'type' => 'string',
42 'required' => false,
43 ],
44 ],
45 ]
46 );
47 }
48
49 /**
50 * Handles login request
51 *
52 * @since 2.10.0
53 *
54 * @param WP_REST_Request $request
55 *
56 * @return array
57 *
58 */
59 public function handleRequest(WP_REST_Request $request)
60 {
61 if ( ! $this->validateRecaptcha(
62 $request->get_param('g-recaptcha-response'),
63 $request,
64 'g-recaptcha-response'
65 )) {
66 return new WP_REST_Response(
67 [
68 'status' => 400,
69 'response' => 'error',
70 'body_response' => [
71 'error' => 'email_failed',
72 'message' => esc_html__('Unable to send email. Please try again.', 'give'),
73 ],
74 ]
75 );
76 }
77
78 Give()->email_access->init();
79
80 $email = $request->get_param('email');
81
82 $donor = Give()->donors->get_donor_by('email', give_clean($email));
83
84 if ($donor && Give()->email_access->can_send_email($donor->id)) {
85 $sent = Give()->email_access->send_email($donor->id, $donor->email);
86
87 if ($sent === true) {
88 $sentMessage = (string)apply_filters(
89 'give_email_access_mail_send_notice',
90 esc_html__(
91 'Email sent. If not received, make sure it is a valid donor email.',
92 'give'
93 )
94 );
95
96 return new WP_REST_Response(
97 [
98 'status' => 200,
99 'response' => 'success',
100 'body_response' => [
101 'message' => $sentMessage,
102 ],
103 ]
104 );
105 } else {
106 $failedMessage = esc_html__('Unable to send email. Please try again.', 'give');
107
108 return new WP_REST_Response(
109 [
110 'status' => 400,
111 'response' => 'error',
112 'body_response' => [
113 'error' => 'email_failed',
114 'message' => $failedMessage,
115 ],
116 ]
117 );
118 }
119 } else {
120 $value = Give()->email_access->verify_throttle / 60;
121 $spamMessage = (string)apply_filters(
122 'give_email_access_requests_exceed_notice',
123 sprintf(
124 esc_html__('Email sent. If not received, make sure it is a valid donor email.', 'give'),
125 sprintf(_n('%s minute', '%s minutes', $value, 'give'), $value)
126 ),
127 $value
128 );
129
130 return new WP_REST_Response(
131 [
132 'status' => 400,
133 'response' => 'error',
134 'body_response' => [
135 'message' => $spamMessage,
136 ],
137 ]
138 );
139 }
140 }
141 }
142