Summery Summery
Create and log a user request to perform a specific action.
Syntax Syntax
Description Description
Requests are stored inside a post type named user_request
since they can apply to both users on the site, or guests without a user account.
Parameters Parameters
- $email_address
-
(Optional) User email address. This can be the address of a registered or non-registered user.
Default value: ''
- $action_name
-
(Optional) Name of the action that is being confirmed. Required.
Default value: ''
- $request_data
-
(Optional) Misc data you want to send with the verification request and pass to the actions once the request is confirmed.
Default value: array()
Return Return
(int|WP_Error) Returns the request ID if successful, or a WP_Error object on failure.
Source Source
File: wp-includes/user.php
return $message; } /** * Create and log a user request to perform a specific action. * * Requests are stored inside a post type named `user_request` since they can apply to both * users on the site, or guests without a user account. * * @since 4.9.6 * * @param string $email_address User email address. This can be the address of a registered or non-registered user. * @param string $action_name Name of the action that is being confirmed. Required. * @param array $request_data Misc data you want to send with the verification request and pass to the actions once the request is confirmed. * @return int|WP_Error Returns the request ID if successful, or a WP_Error object on failure. */ function wp_create_user_request( $email_address = '', $action_name = '', $request_data = array() ) { $email_address = sanitize_email( $email_address ); $action_name = sanitize_key( $action_name ); if ( ! is_email( $email_address ) ) { return new WP_Error( 'invalid_email', __( 'Invalid email address.' ) ); } if ( ! $action_name ) { return new WP_Error( 'invalid_action', __( 'Invalid action name.' ) ); } $user = get_user_by( 'email', $email_address ); $user_id = $user && ! is_wp_error( $user ) ? $user->ID : 0; // Check for duplicates. $requests_query = new WP_Query( array( 'post_type' => 'user_request', 'post_name__in' => array( $action_name ), // Action name stored in post_name column. 'title' => $email_address, // Email address stored in post_title column. 'post_status' => array( 'request-pending', 'request-confirmed', ), 'fields' => 'ids', ) ); if ( $requests_query->found_posts ) { return new WP_Error( 'duplicate_request', __( 'An incomplete request for this email address already exists.' ) ); }
Advertisement
Changelog Changelog
Version | Description |
---|---|
4.9.6 | Introduced. |