Module::update_attendee( array|int $attendee, array $attendee_data )
Update an attendee for the Commerce provider.
Contents
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.
Return
(WP_Post|false) The updated post object or false if unsuccessful.
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;
}
Changelog
| Version | Description |
|---|---|
| 5.2.0 | Introduced. |