Skip to content

Commit

Permalink
Bring back the rest-user-exists-controller file (#6303)
Browse files Browse the repository at this point in the history
Co-authored-by: Shendy <[email protected]>
  • Loading branch information
malithsen and shendy-a8c authored May 15, 2023
1 parent 8242e7a commit d45c765
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 0 deletions.
5 changes: 5 additions & 0 deletions changelog/fix-plugin-upgrade
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: fix
Comment: Temporary fix to hide an error notice that's printed during the plugin upgrade


78 changes: 78 additions & 0 deletions includes/admin/class-wc-rest-user-exists-controller.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?php
/**
* Class WC_REST_User_Exists_Controller
*
* @package WooCommerce\Payments\Admin
*/

defined( 'ABSPATH' ) || exit;

/**
* REST controller to check if a user exists.
*/
class WC_REST_User_Exists_Controller extends WP_REST_Controller {

/**
* Endpoint namespace.
*
* @var string
*/
protected $namespace = 'wc/v3';

/**
* Endpoint path.
*
* @var string
*/
protected $rest_base = 'users/exists';

/**
* Configure REST API routes.
*/
public function register_routes() {
register_rest_route(
$this->namespace,
'/' . $this->rest_base,
[
'methods' => WP_REST_Server::CREATABLE,
'callback' => [ $this, 'user_exists' ],
'permission_callback' => '__return_true',
'args' => [
'email' => [
'required' => true,
'description' => __( 'Email address.', 'woocommerce-payments' ),
'type' => 'string',
'format' => 'email',
],
],
]
);
}

/**
* Retrieve if a user exists by email address.
*
* @param WP_REST_Request $request Full details about the request.
*
* @return WP_REST_Response
*/
public function user_exists( WP_REST_Request $request ): WP_REST_Response {
$email = $request->get_param( 'email' );
$email_exists = ! empty( email_exists( $email ) );
$message = null;

if ( $email_exists ) {
// Use this function to show the core error message.
$error = wc_create_new_customer( $email );
$message = $error->get_error_message();
}

return new WP_REST_Response(
[
'user-exists' => $email_exists,
'message' => $message,
]
);
}
}

0 comments on commit d45c765

Please sign in to comment.