PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.14.0
GiveWP – Donation Plugin and Fundraising Platform v2.14.0
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 5 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__( 'Please check your email and click on the link to access your complete donation history.', '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__( 'Too many access email requests detected. Please wait %s before requesting a new donation history access link.', '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