Tribe__Tickets__Tickets::maybe_setup_attendee_user_from_email( string $email, array $args = array() )

Maybe lookup or create an attendee user from an email.


Parameters

$email

(string) (Required) The email to maybe set up the user from.

$args

(array) (Optional) The arguments used from this attendee.

Default value: array()


Top ↑

Return

(int|null) The user ID or null if not set up.


Top ↑

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;
		}

Top ↑

Changelog

Changelog
Version Description
5.1.0 Introduced.