Tribe__Tickets__Tickets::maybe_setup_attendee_user_from_email( string $email, array $args = array() )
Maybe lookup or create an attendee user from an email.
Contents
Parameters
-
(string) (Required) The email to maybe set up the user from.
- $args
-
(array) (Optional) The arguments used from this attendee.
Default value: array()
Return
(int|null) The user ID or null if not set up.
Source
File: src/Tribe/Tickets.php
public function maybe_setup_attendee_user_from_email( $email, $args = [] ) { if ( empty( $email ) || ! is_email( $email ) ) { return null; } $lookup_user_from_email = Arr::get( $args, 'use_existing_user', true ); $create_user_from_email = Arr::get( $args, 'create_user', false ); $send_new_user_info = Arr::get( $args, 'send_email', false ); /** * Allow filtering whether to enable user lookups by Attendee Email. * * @since 5.1.0 * * @param bool $lookup_user_from_email Whether to lookup the User using the Attendee Email if User ID is not set. * @param array $args The arguments being set for this attendee. */ $lookup_user_from_email = (bool) apply_filters( 'tribe_tickets_attendee_lookup_user_from_email', $lookup_user_from_email, $args ); if ( $lookup_user_from_email ) { // Check if user exists. $user = get_user_by( 'email', $email ); if ( $user ) { return $user->ID; } } /** * Allow filtering whether to enable creating users using the Attendee Email. * * @since 5.1.0 * * @param bool $create_user_from_email Whether to create the User using the Attendee Email if User ID is not set. * @param array $args The arguments being set for this attendee. */ $create_user_from_email = (bool) apply_filters( 'tribe_tickets_attendee_create_user_from_email', $create_user_from_email, $args ); // Do not create the user from the email. if ( ! $create_user_from_email ) { return null; } // Create the user using the attendee email. $created = wp_create_user( $email, wp_generate_password( 12, false ), $email ); // The user was not created successfully. if ( ! $created || is_wp_error( $created ) ) { return null; } // Set user details. $user_details = [ 'display_name' => Arr::get( $args, 'display_name', null ), 'first_name' => Arr::get( $args, 'first_name', null ), 'last_name' => Arr::get( $args, 'last_name', null ), ]; $user_details = array_filter( $user_details ); // Save user details if we have any. if ( ! empty( $user_details ) ){ $user_details['ID'] = $created; wp_update_user( $user_details ); } /** * Allow filtering whether to send the new user information email to the new user. * * @since 5.1.0 * * @param bool $send_new_user_info Whether to send the new user information email to the new user. * @param array $args The arguments being set for this attendee. */ $send_new_user_info = (bool) apply_filters( 'tribe_tickets_attendee_create_user_from_email_send_new_user_info', $send_new_user_info, $args ); if ( $send_new_user_info ) { wp_send_new_user_notifications( $created, 'user' ); } return $created; }
Changelog
Version | Description |
---|---|
5.1.0 | Introduced. |