[ 'type' => 'string', 'required' => true, 'sanitize_callback' => 'sanitize_text_field', ], ]; } /** * Handles password update. * * @since 4.16.6 added password validation * @since 3.3.0 * * @param WP_REST_Request $request * * @return array|WP_REST_Response */ public function handleRequest(WP_REST_Request $request) { $newPassword = trim($request->get_param('newPassword')); if (empty($newPassword)) { return new WP_REST_Response( [ 'status' => 400, 'response' => 'invalid_password', 'body_response' => [ 'message' => esc_html__('Please enter a valid password.', 'give'), ], ] ); } $donorId = give()->donorDashboard->getId(); $donor = Donor::find($donorId); if ( ! $donor || empty($donor->userId)) { return new WP_REST_Response( [ 'status' => 400, 'response' => 'no_user_account', 'body_response' => [ 'message' => esc_html__('Unable to update password. Contact a site administrator.', 'give'), ], ] ); } wp_set_password($newPassword, $donor->userId); return [ 'success' => true, ]; } }