Automattic\WooCommerce\Internal\RestApi\Routes\V4\Customers

Controller::delete_item │ public │ WC 1.0

Delete a single customer.

Method of the class: Controller{}

Hooks from the method

Returns

WP_Error|WP_REST_Response.

Usage

$Controller = new Controller();
$Controller->delete_item( $request );
$request(WP_REST_Request) (required)
Full details about the request.

Controller::delete_item() code WC 11.2.2

public function delete_item( $request ) {
	$id    = (int) $request['id'];
	$force = isset( $request['force'] ) ? (bool) $request['force'] : false;

	// We don't support trashing for this type, error out.
	if ( ! $force ) {
		return $this->get_route_error_by_code( self::TRASH_NOT_SUPPORTED );
	}

	$user_data = \Automattic\WooCommerce\Internal\Utilities\Users::get_user_in_current_site( $id );
	if ( is_wp_error( $user_data ) ) {
		return $this->get_route_error_by_code( self::INVALID_ID );
	}

	$request->set_param( 'context', 'edit' );
	$response = $this->prepare_item_for_response( new WC_Customer( $id ), $request );

	/** Include admin customer functions to get access to wp_delete_user() */
	require_once ABSPATH . 'wp-admin/includes/user.php';

	$customer = new WC_Customer( $id );

	$result = $customer->delete();

	if ( ! $result ) {
		return $this->get_route_error_by_code( self::CANNOT_DELETE );
	}

	/**
	 * Fires after a customer is deleted via the REST API.
	 *
	 * @param WP_User          $user_data User data.
	 * @param WP_REST_Response $response  The response returned from the API.
	 * @param WP_REST_Request  $request   The request sent to the API.
	 * @since 10.2.0
	 */
	do_action( $this->get_hook_prefix() . 'deleted', $user_data, $response, $request );

	return $response;
}