Tribe__Tickets__Attendee_Repository::save_extra_attendee_data( WP_Post $attendee, array $attendee_data, Tribe__Tickets__Ticket_Object $ticket )

Save extra attendee data after creation of attendee.


Parameters

$attendee

(WP_Post) (Required) The attendee object.

$attendee_data

(array) (Required) List of additional attendee data.

$ticket

(Tribe__Tickets__Ticket_Object) (Required) The ticket object.


Top ↑

Source

File: src/Tribe/Attendee_Repository.php

	public function save_extra_attendee_data( $attendee, $attendee_data, $ticket ) {
		$args = [];

		// Set up security code if it was not already customized.
		if ( empty( $attendee_data['security_code'] ) && $this->attendee_provider ) {
			$key = $attendee->ID;

			if ( ! empty( $attendee_data['order_id'] ) ) {
				$key = $attendee_data['order_id'] . '_' . $key;
			}

			$args['security_code'] = $this->attendee_provider->generate_security_code( $key );
		}

		/**
		 * Allow filtering the arguments to be used when saving extra attendee data.
		 *
		 * @since 5.1.0
		 *
		 * @param array                         $args          List of arguments to set for the attendee.
		 * @param WP_Post                       $attendee      The attendee object.
		 * @param array                         $attendee_data List of additional attendee data.
		 * @param Tribe__Tickets__Ticket_Object $ticket        The ticket object.
		 */
		$args = apply_filters( 'tribe_tickets_attendee_repository_save_extra_attendee_data_args', $args, $attendee, $attendee_data, $ticket );

		// Maybe run filter if using a provider key name.
		if ( $this->key_name ) {
			/**
			 * Allow filtering the arguments to be used when saving extra attendee data by provider key name.
			 *
			 * @since 5.1.0
			 *
			 * @param array                         $args          List of arguments to set for the attendee.
			 * @param WP_Post                       $attendee      The attendee object.
			 * @param array                         $attendee_data List of additional attendee data.
			 * @param Tribe__Tickets__Ticket_Object $ticket        The ticket object.
			 */
			$args = apply_filters( 'tribe_tickets_attendee_repository_save_extra_attendee_data_args_' . $this->key_name, $args, $attendee, $attendee_data, $ticket );
		}

		// If no args are set to be saved, bail.
		if ( empty( $args ) ) {
			return;
		}

		$query = tribe_attendees( $this->key_name );

		$query->by( 'id', $attendee->ID );

		try {
			$query->set_args( $args );
		} catch ( Tribe__Repository__Usage_Error $e ) {
			do_action( 'tribe_log', 'error', __CLASS__, [ 'message' => $e->getMessage() ] );

			return;
		}

		$query->save();
	}

Top ↑

Changelog

Changelog
Version Description
5.1.0 Introduced.