Tribe__Tickets__RSVP::send_tickets_email_legacy( int $order_id, int $event_id = null )
Dispatches a confirmation email that acknowledges the user has RSVP’d including the tickets, for the legacy emails.
Contents
Parameters
- $order_id
-
(int) (Required) The order ID.
- $event_id
-
(int) (Optional) The event ID.
Default value: null
Source
File: src/Tribe/RSVP.php
public function send_tickets_email_legacy( $order_id, $event_id = null ) {
$all_attendees = $this->get_attendees_by_order_id( $order_id );
$to_send = [];
if ( empty( $all_attendees ) ) {
return;
}
// Look at each attendee and check if a ticket was sent: in each case where a ticket
// has not yet been sent we should a) send the ticket out by email and b) record the
// fact it was sent.
foreach ( $all_attendees as $single_attendee ) {
// Do not add those attendees/tickets marked as not attending (note that despite the name
// 'qr_ticket_id', this key is not QR code specific, it's simply the attendee post ID).
$going_status = get_post_meta( $single_attendee['qr_ticket_id'], self::ATTENDEE_RSVP_KEY, true );
if ( in_array( $going_status, $this->get_statuses_by_action( 'count_not_going' ), true ) ) {
continue;
}
// Only add those attendees/tickets that haven't already been sent.
if ( empty( $single_attendee['ticket_sent'] ) ) {
$to_send[] = $single_attendee;
}
}
/**
* Controls the list of tickets which will be emailed out.
*
* @param array $to_send list of tickets to be sent out by email
* @param array $all_attendees list of all attendees/tickets, including those already sent out
* @param int $order_id
*/
$to_send = (array) apply_filters( 'tribe_tickets_rsvp_tickets_to_send', $to_send, $all_attendees, $order_id );
if ( empty( $to_send ) ) {
return;
}
// For now all ticket holders in an order share the same email.
$to = $all_attendees['0']['holder_email'];
if ( ! is_email( $to ) ) {
return;
}
/**
* Filters the RSVP tickets email headers
*
* @since 4.5.2 added new parameters $event_id and $order_id
*
* @param array email headers
* @param int $event_id
* @param int $order_id
*/
$headers = apply_filters( 'tribe_rsvp_email_headers', [ 'Content-type: text/html' ], $event_id, $order_id );
/**
* Filters the RSVP tickets email attachments
*
* @since 4.5.2 added new parameters $event_id and $order_id
*
* @param array attachments
* @param int $event_id
* @param int $order_id
*/
$attachments = apply_filters( 'tribe_rsvp_email_attachments', [], $event_id, $order_id );
/**
* Filters the RSVP tickets email recipient
*
* @since 4.5.2 added new parameters $event_id and $order_id
*
* @param string $to
* @param int $event_id
* @param int $order_id
*/
$to = apply_filters( 'tribe_rsvp_email_recipient', $to, $event_id, $order_id );
/**
* Filters the RSVP tickets email subject
*
* @since 4.5.2 added new parameters $event_id and $order_id
* @since 4.10.9 Use customizable ticket name functions.
*
* @param string
* @param int $event_id
* @param int $order_id
*/
$subject = apply_filters( 'tribe_rsvp_email_subject',
esc_html(
sprintf(
// Translators: %1$s: The plural ticket label, %2$s: The site name.
__( 'Your %1$s from %2$s', 'event-tickets' ),
tribe_get_ticket_label_plural_lowercase( 'tribe_rsvp_email_subject' ),
stripslashes_deep( html_entity_decode( get_bloginfo( 'name' ), ENT_QUOTES ) )
)
),
$event_id,
$order_id
);
/**
* Filters the RSVP tickets email content
*
* @since 4.5.2 added new parameters $event_id and $order_id
*
* @param string email content
* @param int $event_id
* @param int $order_id
*/
$content = apply_filters( 'tribe_rsvp_email_content', $this->generate_tickets_email_content( $to_send ), $event_id, $order_id );
$sent = wp_mail( $to, $subject, $content, $headers, $attachments );
if ( $sent ) {
foreach ( $all_attendees as $attendee ) {
$this->update_ticket_sent_counter( $attendee['qr_ticket_id'] );
$this->update_attendee_activity_log(
$attendee['attendee_id'],
[
'type' => 'email',
'name' => $attendee['holder_name'],
'email' => $attendee['holder_email'],
]
);
}
}
}
Changelog
| Version | Description |
|---|---|
| 5.5.10 | Introduced. |