PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.4
GiveWP – Donation Plugin and Fundraising Platform v3.0.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 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
139 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 ],
39 'g-recaptcha-response' => [
40 'type' => 'string',
41 'required' => false,
42 ],
43 ],
44 ]
45 );
46 }
47
48 /**
49 * Handles login request
50 *
51 * @since 2.10.0
52 *
53 * @return WP_REST_Response
54 *
55 */
56 public function handleRequest(WP_REST_Request $request)
57 {
58 if (!$this->validateRecaptcha(
59 $request->get_param('g-recaptcha-response'),
60 $request,
61 'g-recaptcha-response'
62 )) {
63 return new WP_REST_Response(
64 [
65 'status' => 400,
66 'response' => 'error',
67 'body_response' => [
68 'error' => 'email_failed',
69 'message' => esc_html__('Unable to send email. Please try again.', 'give'),
70 ],
71 ]
72 );
73 }
74
75 Give()->email_access->init();
76
77 $email = $request->get_param('email');
78
79 $donor = Give()->donors->get_donor_by('email', give_clean($email));
80
81 if ($donor && Give()->email_access->can_send_email($donor->id)) {
82 $sent = Give()->email_access->send_email($donor->id, $donor->email);
83
84 if ($sent === true) {
85 $sentMessage = (string)apply_filters(
86 'give_email_access_mail_send_notice',
87 esc_html__(
88 'Email sent. If not received, make sure it is a valid donor email.',
89 'give'
90 )
91 );
92
93 return new WP_REST_Response(
94 [
95 'status' => 200,
96 'response' => 'success',
97 'body_response' => [
98 'message' => $sentMessage,
99 ],
100 ]
101 );
102 }
103
104 $failedMessage = esc_html__('Unable to send email. Please try again.', 'give');
105
106 return new WP_REST_Response(
107 [
108 'status' => 400,
109 'response' => 'error',
110 'body_response' => [
111 'error' => 'email_failed',
112 'message' => $failedMessage,
113 ],
114 ]
115 );
116 }
117
118 $value = Give()->email_access->verify_throttle / 60;
119 $spamMessage = (string)apply_filters(
120 'give_email_access_requests_exceed_notice',
121 sprintf(
122 esc_html__('Email sent. If not received, make sure it is a valid donor email.', 'give'),
123 sprintf(_n('%s minute', '%s minutes', $value, 'give'), $value)
124 ),
125 $value
126 );
127
128 return new WP_REST_Response(
129 [
130 'status' => 400,
131 'response' => 'error',
132 'body_response' => [
133 'message' => $spamMessage,
134 ],
135 ]
136 );
137 }
138 }
139