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