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.
Contents
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.
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();
}
Changelog
| Version | Description |
|---|---|
| 5.1.0 | Introduced. |