Tribe__Tickets__RSVP::send_tickets_email( int $order_id, int $event_id = null )
Dispatches a confirmation email that acknowledges the user has RSVP’d including the tickets.
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( $order_id, $event_id = null ) {
$all_attendees = $this->get_attendees_by_order_id( $order_id );
$to_send = array();
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;
update_post_meta( $single_attendee['qr_ticket_id'], self::ATTENDEE_TICKET_SENT, true );
}
}
/**
* 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', array( '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', array(), $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
*
* @param string
* @param int $event_id
* @param int $order_id
*/
$subject = apply_filters( 'tribe_rsvp_email_subject',
sprintf( __( 'Your tickets from %s', 'event-tickets' ), 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 );
wp_mail( $to, $subject, $content, $headers, $attachments );
}
Changelog
| Version | Description |
|---|---|
| 5.6.0 | Reverted the methods back to before 5.5.10, new Tickets Emails Handler via filters. |
| 5.5.10 | Adjusted the method to use the new Tickets Emails Handler. |
| 4.5.2 | Introduced. |