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. |