Module::update_attendee( array|int $attendee, array $attendee_data )

Update an attendee for the Commerce provider.


Parameters

$attendee

(array|int) (Required) The attendee data or ID for the attendee to update.

$attendee_data

(array) (Required) The attendee data to update to.


Top ↑

Return

(WP_Post|false) The updated post object or false if unsuccessful.


Top ↑

Source

File: src/Tickets/Commerce/Module.php

	public function update_attendee( $attendee, $attendee_data ) {
		if ( is_numeric( $attendee ) ) {
			$attendee_id = (int) $attendee;
		} elseif ( is_array( $attendee ) && isset( $attendee['attendee_id'] ) ) {
			$attendee_id = (int) $attendee['attendee_id'];
		} else {
			return false;
		}

		$attendee = tec_tc_attendees( $this->orm_provider )
			->where( 'ID', $attendee_id );

		try {
			if ( ! empty( $attendee_data['attendee_meta'] ) ) {
				$attendee->set( 'fields', $attendee_data['attendee_meta'] );
			}

			if ( ! empty( $attendee_data['full_name'] ) ) {
				$attendee->set( 'full_name', $attendee_data['full_name'] );
			}

			if ( ! empty( $attendee_data['email'] ) && filter_var( $attendee_data['email'], FILTER_VALIDATE_EMAIL ) ) {
				$attendee->set( 'email', $attendee_data['email'] );
			}

			$attendee->save();

			// Send attendee email.
			$send_ticket_email      = (bool) Arr::get( $attendee_data, 'send_ticket_email', false );
			$send_ticket_email_args = (array) Arr::get( $attendee_data, 'send_ticket_email_args', [] );

			// Check if we need to send the ticket email.
			if ( $send_ticket_email ) {
				$attendee_tickets = [
					$attendee_id,
				];

				// Maybe send the attendee email.
				$this->send_tickets_email_for_attendees( $attendee_tickets, $send_ticket_email_args );
			}
		} catch ( \Tribe__Repository__Usage_Error $e ) {
			do_action( 'tribe_log', 'error', __CLASS__, [ 'message' => $e->getMessage() ] );

			return false;
		}

		return $attendee;
	}

Top ↑

Changelog

Changelog
Version Description
5.2.0 Introduced.