{"id":1896614,"date":"2019-10-18T13:19:38","date_gmt":"2019-10-18T17:19:38","guid":{"rendered":"https:\/\/theeventscalendar.com\/knowledgebase\/disable-the-ticket-email-2\/"},"modified":"2026-04-09T15:25:33","modified_gmt":"2026-04-09T19:25:33","slug":"customizing-ticket-emails","status":"publish","type":"post","link":"https:\/\/theeventscalendar.com\/knowledgebase\/customizing-ticket-emails\/","title":{"rendered":"Customizing Ticket Emails"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-conditionally-disable-ticket-emails\">Conditionally Disable Ticket Emails<\/h2>\n\n\n\n<p>When using the Event Tickets plugin, tickets are automatically emailed to your customers as soon as purchase is complete. The confirmation email includes the ticket details and is essential to the attendee experience. However, there may be scenarios where you want to turn off confirmation emails, especially if you&#8217;re handling ticket distribution differently. These solutions enable you to customize email behavior, such as disabling emails for specific providers or restricting them to certain events, giving you complete control over the timing and recipients of the emails.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-woocommerce\">WooCommerce<\/h4>\n\n\n\n<p>The following PHP code snippet disables the sending of ticket confirmation emails for tickets using WooCommerce as the payment platform,<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/* Disable tickets emails for Woo *\/\nadd_filter( 'tribe_tickets_plus_email_enabled', '__return_false' );\n<\/pre><\/div>\n\n\n<p>It will not, however, affect the order emails WooCommerce sends.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-disable-ticket-emails-for-certain-events\">Disable Ticket Emails for Certain Events<\/h4>\n\n\n\n<p>The following code snippet customizes how email notifications are handled in Event Tickets by preventing emails from being sent for specific events. It works by checking if the email is related to an event and whether the event ID matches any in a list of excluded event IDs (like 123, 124, or 125). If the event is on the list, the code stops the email from being sent by returning <code>null<\/code>.<\/p>\n\n\n\n<p>This can be useful when you want to block email notifications for certain events, such as private gatherings or internal testing events.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;?php \/\/Do not copy this line\n\nadd_filter( &#039;tec_tickets_emails_dispatcher_to&#039;, function ( $to, $dispatcher ) {\n\n\t\/\/ Event IDs for which the email should not be sent.\n\t$excluded_event_ids = &#x5B; 123, 124, 125 ];\n\n\tif ( ! function_exists( &#039;tribe_is_event&#039; ) ) {\n\t\treturn $to;\n\t}\n\n\t$email    = $dispatcher-&gt;get_email();\n\t$event_id = $email-&gt;get( &#039;post_id&#039; );\n\n\t\/\/ Check if it&#039;s an event and is in the excluded event list.\n\tif ( tribe_is_event( $event_id ) &amp;amp;&amp;amp; in_array( $event_id, $excluded_event_ids, true ) ) {\n\t\treturn null;\n\t}\n\n\treturn $to;\n}, 10, 2 );\n<\/pre><\/div>\n\n\n<p>Add the code snippet to the <em>functions.php<\/em> file of your theme, or use your preferred method for integrating snippets into your WordPress site, such as the free <a href=\"https:\/\/wordpress.org\/plugins\/code-snippets\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Snippets<\/a> plugin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-extending-event-tickets-emails-placeholders\">Extending Event Tickets Emails Placeholders<\/h2>\n\n\n\n<p>When using <span style=\"text-decoration: underline;\"><a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/tickets-commerce\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tickets Commerce<\/a><\/span> as the payment method, order emails and purchase receipts are handled by Tickets Commerce itself. Although email templates include placeholders, not all are available for every type of email. You can find more information about the different types of emails and the available placeholders for each one here.<\/p>\n\n\n\n<p><a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/event-tickets-emails\/\">Event Tickets Emails Knowledgebase<\/a><\/p>\n\n\n\n<p>By default, the Completed Order email from Tickets Commerce includes a limited set of placeholders and does not provide built-in support for adding custom placeholders such as the purchaser&#8217;s name or event title. However, one can extend this functionality with custom coding. This article provides a snippet that enables the use of <code>{purchaser_name}<\/code> and <code>{event_title}<\/code> placeholders in the Completed Order email.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-adding-custom-placeholders-to-completed-order-email\">Adding Custom Placeholders to Completed Order Email<\/h2>\n\n\n\n<p>Add the following PHP code to the site to be able to use <code>{event_title}<\/code> and <code>{purchaser_name}<\/code> placeholders in the Completed Order email.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;?php \/\/Do not copy this line\n\nadd_filter( &#039;tec_tickets_emails_completed-order_placeholders&#039;, function ( $placeholders, $id, $email ) {\n\t\/\/ Ensure the email object contains attendees\n\t$attendees = $email-&gt;get( &#039;attendees&#039; );\n\n\tif ( empty( $attendees ) || ! is_array( $attendees ) ) {\n\t\treturn $placeholders;\n\t}\n\n\t\/\/ Extract the first attendee&#039;s purchaser name and event ID\n\t$first_attendee = reset( $attendees );\n\t$purchaser_name = $first_attendee&#x5B;&#039;purchaser_name&#039;] ?? &#039;&#039;;\n\t$event_id       = $first_attendee&#x5B;&#039;event_id&#039;] ?? 0;\n\t$event_title    = &#039;&#039;;\n\n\t\/\/ Retrieve event title if a valid event ID is available\n\tif ( $event_id &amp;amp;&amp;amp; ( $event = tribe_get_event( $event_id ) ) ) {\n\t\t$event_title = $event-&gt;post_title ?? &#039;&#039;;\n\t}\n\n\t\/\/ Add placeholders if values exist\n\tif ( $purchaser_name ) {\n\t\t$placeholders&#x5B;&#039;{purchaser_name}&#039;] = sanitize_text_field( $purchaser_name );\n\t}\n\n\tif ( $event_title ) {\n\t\t$placeholders&#x5B;&#039;{event_title}&#039;] = sanitize_text_field( $event_title );\n\t}\n\n\treturn $placeholders;\n}, 10, 3 );\n<\/pre><\/div>\n\n\n<p>Add the code snippet to the <em>functions.php<\/em> file of your theme, or use your preferred method for integrating snippets into your WordPress site, such as the free <a href=\"https:\/\/wordpress.org\/plugins\/code-snippets\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Snippets<\/a> plugin.<\/p>\n\n\n\n<p>The snippet retrieves attendee information from the email object. It obtains the name of the individual who made the purchase, along with the associated event ID. Using this event ID, the title of the event is then retrieved. These details are then added to the available placeholders in the email.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-add-ticket-description-to-ticket-confirmation-emails\">Add Ticket Description to Ticket Confirmation Emails<\/h2>\n\n\n\n<p>When creating tickets with the <a href=\"https:\/\/theeventscalendar.com\/products\/wordpress-event-tickets\/\">Event Tickets<\/a> plugin, the <strong>Description<\/strong> field offers a space to incorporate extra details that pertain specifically to that ticket. This is ideal for providing context or information that may enhance the ticket\u2019s relevance and clarity for the users.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"763\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/yLwxe3qrwY-1024x763.png\" alt=\"Ticket Description Field - Backend\" class=\"wp-image-1966659\" style=\"border-width:1px;border-radius:5px;width:500px\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/yLwxe3qrwY-1024x763.png 1024w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/yLwxe3qrwY-300x223.png 300w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/yLwxe3qrwY-768x572.png 768w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/yLwxe3qrwY.png 1301w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>For example, you might use it to share:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What the ticket includes (like meals, parking, or merchandise)<\/li>\n\n\n\n<li>Special instructions for attendees (such as arrival times or entry requirements)<\/li>\n\n\n\n<li>Extra information about access, or event perks<\/li>\n<\/ul>\n\n\n\n<p>By default, this description only appears on the event page where the ticket is displayed. However, attendees often rely on their <a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/event-tickets-emails\/\">confirmation email<\/a> as the main reference for event details. Including the ticket description in the email ensures that important ticket-specific information is always at hand, making the email more helpful and reducing the chances of attendees missing key instructions.<\/p>\n\n\n\n<p>In this guide, we\u2019ll walk you through how to customize the ticket confirmation email template so the ticket description is included alongside the ticket title.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-steps\">Steps<\/h4>\n\n\n\n<p>1. Start by making a copy of the following template file:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n\\wp-content\\plugins\\event-tickets\\src\\views\\emails\\template-parts\\body\\tickets.php\n<\/pre><\/div>\n\n\n<p>2. Place the file in your theme at the following path. If the sub-folders don\u2019t already exist, you\u2019ll need to create them first:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n\/wp-content\/themes\/&#x5B;your-theme]\/tribe\/tickets\/emails\/template-parts\/body\/tickets.php\n<\/pre><\/div>\n\n\n<p>3. Find the following lines of code in the file:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; gutter: false; title: ; notranslate\" title=\"\">\n&lt;tr&gt;\n    &lt;?php $this-&gt;template( &#039;template-parts\/body\/ticket\/security-code&#039;, &#x5B; &#039;ticket&#039; =&gt; $ticket ] ); ?&gt;\n&lt;\/tr&gt;\n<\/pre><\/div>\n\n\n<p>4. Add the following lines of code right after <code>&lt;\/tr><\/code> :<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; gutter: false; title: ; notranslate\" title=\"\">\n&lt;?php\n$ticket_product = get_post($ticket&#x5B;&#039;product_id&#039;]);\n$ticket_description = $ticket_product-&gt;post_excerpt;\n?&gt;\n&lt;tr&gt;\n    &lt;td class=&quot;ticket-details&quot;&gt;\n        &lt;h4 style=&quot;color: &lt;?php echo esc_attr($ticket_text_color); ?&gt;; margin-bottom: 0;&quot;&gt;&lt;?php esc_html_e(&#039;Additional Details:&#039;, &#039;event-tickets&#039;); ?&gt;&lt;\/h4&gt;\n        &lt;span style=&quot;color: &lt;?php echo esc_attr($ticket_text_color); ?&gt;;&quot;&gt;&lt;?php echo $ticket_description; ?&gt;&lt;\/span&gt;\n    &lt;\/td&gt;\n&lt;\/tr&gt;\n<\/pre><\/div>\n\n\n<p>5. Ticket confirmation emails should now display the ticket description:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"682\" height=\"973\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/az81L6rN0F.png\" alt=\"Ticket Description in Ticket Confirmation Email\" class=\"wp-image-1966667\" style=\"border-width:1px;border-radius:5px;width:500px\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/az81L6rN0F.png 682w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2025\/09\/az81L6rN0F-210x300.png 210w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/figure><\/div>\n\n\n<p>That\u2019s all it takes! With this customization in place, your attendees will now see the ticket description directly in their confirmation emails. This helps ensure that important details, such as inclusions, instructions, or perks, aren\u2019t missed, making your confirmation emails much more useful.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-hide-specific-attendee-fields-from-event-tickets-confirmation-emails\">Hide Specific Attendee Fields from Event Tickets Confirmation Emails<\/h2>\n\n\n\n<p>When using <strong>Attendee Registration<\/strong> fields, you may sometimes include fields such as a &#8220;Privacy Policy&#8221; checkbox with HTML links.<\/p>\n\n\n\n<p>While these fields work perfectly on the frontend registration form, they can often appear as messy, in the automated ticket confirmation emails sent to customers. To keep your emails professional, you can use a code snippet to exclude specific fields from the email while keeping them mandatory on your registration form.<\/p>\n\n\n\n<p>The following code uses the <code>tribe_tickets_plus_email_meta_fields<\/code> filter. It searches through the list of attendee fields intended for the email and removes (unsets) any field that matches a specific &#8220;slug.&#8221;<\/p>\n\n\n\n<p>You can add these PHP snippets to your child theme <code>functions.php<\/code> file. However, we recommend using a dedicated code snippets plugin to avoid issues with theme updates. For more information, please see our guide on the <a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/best-practices-for-implementing-custom-code-snippets\/\">best practices for implementing custom code snippets<\/a>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/**\n * Prevents a specific attendee registration field from appearing in ticket emails.\n *\/\nfunction exclude_specific_field_from_ticket_emails( $meta_fields ) {\n\tforeach ( $meta_fields as $index =&gt; $field ) {\n\t\t\/\/ Replace &#039;privacy&#039; with the slug of the field you want to hide.\n\t\tif ( isset( $field&#x5B;&#039;slug&#039;] ) &amp;&amp; &#039;privacy&#039; === $field&#x5B;&#039;slug&#039;] ) {\n\t\t\tunset( $meta_fields&#x5B; $index ] );\n\t\t}\n\t}\n\treturn $meta_fields;\n}\nadd_filter( &#039;tribe_tickets_plus_email_meta_fields&#039;, &#039;exclude_specific_field_from_ticket_emails&#039; );\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-how-to-find-your-field-slug\">How to Find Your Field Slug<\/h4>\n\n\n\n<p>To ensure the code targets the correct field, you need the &#8220;slug.&#8221;<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Navigate to <strong>Tickets &gt; Attendee Fields<\/strong> in your WordPress dashboard.<\/li>\n\n\n\n<li>Locate the field you wish to hide (e.g., your Privacy Policy field).<\/li>\n\n\n\n<li>The <strong>Label<\/strong> is what users see, but the <strong>Slug<\/strong> is the internal name. If you haven&#8217;t set a custom slug, it is typically a lowercase version of your label (e.g., &#8220;Privacy Policy&#8221; becomes <code>privacy-policy<\/code>).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-adding-outlook-link-to-event-ticket-emails\">Adding Outlook link to Event Ticket Emails<\/h2>\n\n\n\n<p>The Ticket Emails sent our for Events will include Google Calendar and iCalendar export links, enabling users to add events to their calendars as soon as they receive the email. <\/p>\n\n\n\n<p>If you want to include Outlook export links in Ticket and RSVP confirmation emails, we&#8217;ve created a solution that will allow you to add these with a <a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/customizing-template-files-2\/\">Template Override<\/a>. You can copy this code directly into a new file name, and name it &#8220;links.php&#8221;. Then you can place the file in your WordPress directory, in this location:<br><br><code>[your-theme]\/tribe\/events\/integrations\/event-tickets\/emails\/template-parts\/body\/event\/links.php<\/code><br><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\/**\n * Event Tickets Emails: Main template &gt; Body &gt; Event &gt; Links.\n *\n * Override this template in your own theme by creating a file at:\n * &#x5B;your-theme]\/tribe\/events\/integrations\/event-tickets\/emails\/template-parts\/body\/event\/links.php\n *\n * See more documentation about our views templating system.\n *\n * @link https:\/\/evnt.is\/tickets-emails-tpl Help article for Tickets Emails template files.\n *\n * @version 6.1.1\n *\n * @since 6.1.1\n *\n * @var WP_Post $event The event post object with properties added by the `tribe_get_event` function.\n * @var string  $event_ical_link The event iCal link.\n * @var string  $event_gcal_link The event Google Calendar link.\n *\n * @see tribe_get_event() For the format of the event object.\n *\/\n\n$path = &#039;\/calendar\/action\/compose&#039;; \n$rrv  = &#039;addevent&#039;; \n$startdt = tribe_get_start_date($event-&gt;ID, true, &#039;c&#039;); \n$enddt = tribe_get_end_date($event-&gt;ID, true, &#039;c&#039;); \n$location = &quot;&quot;;\nif (tribe_get_venue($event-&gt;ID)) {\n\t$location .= tribe_get_venue($event-&gt;ID) . &quot;, &quot;;\n}\nif (tribe_get_address($event-&gt;ID)) {\n\t$location .= tribe_get_address($event-&gt;ID) . &quot;, &quot;;\n}\nif (tribe_get_city($event-&gt;ID)) {\n\t$location .= tribe_get_city($event-&gt;ID) . &quot;, &quot;;\n}\nif (tribe_get_state($event-&gt;ID)) {\n\t$location .= tribe_get_state($event-&gt;ID) . &quot;, &quot;;\n}\nif (tribe_get_country($event-&gt;ID)) {\n\t$location .= tribe_get_country($event-&gt;ID);\n}\n$subject = str_replace(&#039; &#039;, &#039;%20&#039;, get_the_title($event));\n$body = str_replace(&#039; &#039;, &#039;%20&#039;, get_the_excerpt($event));\nif (!empty($event-&gt;virtual_meeting_url)) {\n\t$body .= urlencode(&quot;&lt;br\/&gt;&lt;b&gt;&lt;a href=&quot; . $event-&gt;virtual_meeting_url . &quot;&gt;Join Zoom Meeting&lt;\/a&gt;&lt;\/b&gt;&quot;) ;\n}\n$params = &#x5B;\n\t&#039;path&#039;     =&gt; $path,\n\t&#039;rrv&#039;      =&gt; $rrv,\n\t&#039;startdt&#039;  =&gt; $startdt,\n\t&#039;enddt&#039;    =&gt; $enddt,\n\t&#039;location&#039; =&gt; $location,\n\t&#039;subject&#039;  =&gt; $subject,\n\t&#039;body&#039;     =&gt; $body\n];\n$base_url_outlookLive = &#039;https:\/\/outlook.live.com\/owa\/&#039;; \n$base_url_outlook365 = &#039;https:\/\/outlook.office.com\/owa\/&#039;; \n$url_outlookLive      = add_query_arg( $params, $base_url_outlookLive ); \n$url_outlook365      = add_query_arg( $params, $base_url_outlook365 ); \n\n\n?&gt;\n&lt;tr&gt;\n\t&lt;td class=&quot;tec-tickets__email-table-content-event-links-container&quot;&gt;\n\t\t&lt;table role=&quot;presentation&quot; class=&quot;tec-tickets__email-table-content-event-links-table&quot;&gt;\n\t\t\t&lt;tr&gt;\n\t\t\t\t&lt;td class=&quot;tec-tickets__email-table-content-event-links-table-data&quot; align=&quot;center&quot;&gt;\n\n\t\t\t\t\t&lt;?php $this-&gt;template( &#039;template-parts\/body\/event\/links\/ical&#039; ); ?&gt;\n\n\t\t\t\t\t&lt;?php $this-&gt;template( &#039;template-parts\/body\/event\/links\/gcal&#039; ); ?&gt;\n\n\t\t\t\t\t&lt;a\n\t\t\t\t\t\ttarget=&quot;_blank&quot;\n\t\t\t\t\t\trel=&quot;noopener noreferrer&quot;\n\t\t\t\t\t\thref=&quot;&lt;?php echo esc_url( $url_outlookLive ); ?&gt;&quot;\n\t\t\t\t\t\tclass=&quot;tec-tickets__email-table-content-event-links-outlook-live-link&quot;\n\t\t\t\t\t\tstyle=&quot;padding: 0 8px;&quot;\n\t\t\t\t\t&gt;\n\t\t\t\t\t\t&lt;?php echo esc_html_x( &#039;Add to Outlook Live&#039;, &#039;Button on Ticket Email&#039;, &#039;the-events-calendar&#039; ); ?&gt;\n\t\t\t\t\t&lt;\/a&gt;\n\n\t\t\t\t\t&lt;a\n\t\t\t\t\t\ttarget=&quot;_blank&quot;\n\t\t\t\t\t\trel=&quot;noopener noreferrer&quot;\n\t\t\t\t\t\thref=&quot;&lt;?php echo esc_url( $url_outlook365 ); ?&gt;&quot;\n\t\t\t\t\t\tclass=&quot;tec-tickets__email-table-content-event-links-outlook-365-link&quot;\n\t\t\t\t\t&gt;\n\t\t\t\t\t\t&lt;?php echo esc_html_x( &#039;Add to Outlook365&#039;, &#039;Button on Ticket Email&#039;, &#039;the-events-calendar&#039; ); ?&gt;\n\t\t\t\t\t&lt;\/a&gt;\n\n\t\t\t\t&lt;\/td&gt;\n\t\t\t&lt;\/tr&gt;\n\t\t&lt;\/table&gt;\n\t&lt;\/td&gt;\n&lt;\/tr&gt;\n<\/pre><\/div>\n\n\n<p>Be sure to reference the guide linked above if you need help on creating an Editing Template Overrides. Here is what the additional links look like in the Ticket Email: <br><\/p>\n\n\n<style>.kb-image1896614_4676f6-02 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image1896614_4676f6-02\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"782\" height=\"576\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2024\/09\/Screenshot-2025-10-28-120754.png\" alt=\"\" class=\"kb-img wp-image-1967584\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2024\/09\/Screenshot-2025-10-28-120754.png 782w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2024\/09\/Screenshot-2025-10-28-120754-300x221.png 300w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2024\/09\/Screenshot-2025-10-28-120754-768x566.png 768w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-add-custom-bcc-emails-to-the-rsvp-email\">Add Custom BCC Emails to the RSVP Email<\/h2>\n\n\n\n<p class=\"has-background\" style=\"background-color:var(--global-palette8)\"><strong>\u26a0\ufe0f<\/strong> <strong>Note:<\/strong> These snippets won\u2019t work if RSVP emails are configured to use the Ticket email template. Disable the&nbsp;<strong>Use Ticket Email&nbsp;<\/strong><a href=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2024\/04\/et_rsvp_email_settings.jpg\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">option<\/a> under&nbsp;<strong>Tickets &gt; Settings &gt; Emails &gt; RSVP Email<\/strong>.<\/p>\n\n\n\n<p>By default, registrants will receive an email including their RSVP info upon registration. The site administrator or the organizer does not get any kind of notification. This can be achieved, however, with one of the below snippets.<\/p>\n\n\n\n<p>Add the code snippet to the <em>functions.php<\/em> file of your theme, or use your preferred method for integrating snippets into your WordPress site, such as the free <a href=\"https:\/\/wordpress.org\/plugins\/code-snippets\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Snippets<\/a> plugin.<\/p>\n\n\n\n<p>With this simple snippet, you can add any email address to the BCC field of the email.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\/\/* Do NOT include the opening php tag, if there&#039;s already one.\n\n\/**\n* Add a custom email address to the BCC field on all Event Tickets&#039; RSVP ticket emails\n*\/\nadd_filter( &#039;tec_tickets_emails_dispatcher_rsvp_headers&#039;, &#039;my_add_bcc_email_headers&#039; );\n\nfunction my_add_bcc_email_headers( $headers ) {\n\n\t$headers&#x5B;&#039;Bcc&#039;] = &#039;YOUR NAME &lt;your@email.com&gt;&#039;;\n\t\n\treturn $headers;\n}\n<\/pre><\/div>\n\n\n<p>To add event organizers to the BBC for the RSVP Email you can use this modified version.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\/\/* Do NOT include the opening php tag, if there&#039;s already one.\n\n\/**\n * Add the event organizer to the BCC field on the Event Tickets&#039; RSVP ticket emails.\n *\/\nadd_filter( &#039;tec_tickets_emails_dispatcher_rsvp_headers&#039;, &#039;my_add_bcc_email_organizers_headers&#039;, 10, 2 );\n\nfunction my_add_bcc_email_organizers_headers( $headers, $dispatcher ) {\n\t$email   = $dispatcher-&gt;get_email();\n\t$post_id = $email-&gt;get( &#039;post_id&#039; );\n\n\tif ( ! $post_id || ! function_exists( &#039;tribe_get_event&#039; ) )  {\n\t\treturn $headers;\n\t}\n\n\t$event = tribe_get_event( $post_id );\n\n\tif ( empty( $event ) ) {\n\t\treturn $headers;\n\t}\n\n\t\/\/ Bail, if there&#039;s no organizer set.\n\tif ( ! tribe_has_organizer( $post_id ) ) {\n\t\treturn $headers;\n\t}\n\n\t\/\/ Get the organizers.\n\t$organizers = tribe_get_organizer_ids( $post_id );\n\n\t\/\/ Loop through the organizers.\n\tforeach ( $organizers as $organizer_id ) {\n\t\t\/\/ Get the organizer email address.\n\t\t$organizer_email = stripslashes_deep( html_entity_decode( tribe_get_organizer_email( $organizer_id ), ENT_COMPAT, &#039;UTF-8&#039; ) );\n\n\t\t\/\/ Add the organizer email info to our emails array.\n\t\t$emails&#x5B;] = $organizer_email;\n\t}\n\n\t\/\/ Bail, if there are no organizer email addresses.\n\tif ( empty( $emails ) ) {\n\t\treturn $headers;\n\t}\n\n\t\/\/ List the email addresses and add them to the BCC field.\n\t$headers&#x5B;&#039;Bcc&#039;] = implode( &quot;,&quot;, $emails );\n\n\treturn $headers;\n}\n<\/pre><\/div>\n\n\n<p>The above snippets are for the RSVP ticket emails specifically. To do something similar for other (RSVP and Tickets Commerce) emails you need to use the appropriate version of the <code>tec_tickets_emails_dispatcher_{$email_slug}_headers<\/code> filter, where the <code>$email_slug<\/code> can have the following values:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rsvp<\/li>\n\n\n\n<li>rsvp-not-going<\/li>\n\n\n\n<li>ticket<\/li>\n\n\n\n<li>completed-order<\/li>\n\n\n\n<li>purchase-receipt<\/li>\n<\/ul>\n\n\n\n<p>So, for example, for the purchase receipt email, the filter name would be <code>tec_tickets_emails_dispatcher_purchase-receipt_headers<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-for-developers\">For Developers<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/tickets-emails-template-files\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tickets Emails Template Files<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/theeventscalendar.com\/knowledgebase\/customizing-template-files-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Customizing Template Files<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.theeventscalendar.com\/reference\/hooks\/tribe_tickets_plus_email_enabled\/\" target=\"_blank\" rel=\"noreferrer noopener\">tribe_tickets_plus_email_enabled<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.theeventscalendar.com\/reference\/hooks\/edd_email_ticket_receipt\/\">edd_email_ticket_receipt<\/a><\/li>\n\n\n\n<li>tec_tickets_emails_dispatcher_to<\/li>\n\n\n\n<li><span style=\"text-decoration: underline;\"><a href=\"https:\/\/docs.theeventscalendar.com\/reference\/hooks\/tec_tickets_emails_this-slug_placeholders\/\">tec_tickets_emails_completed-order_placeholders<\/a><\/span><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conditionally Disable Ticket Emails When using the Event Tickets plugin, tickets are automatically emailed to your customers as soon as purchase is complete. The confirmation email includes the ticket details and is essential to the attendee experience. However, there may be scenarios where you want to turn off confirmation emails, especially if you&#8217;re handling ticket&#8230;<\/p>\n","protected":false},"author":59,"featured_media":1955565,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_swpsp_post_exclude":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"ep_exclude_from_search":false,"footnotes":""},"categories":[24,59],"tags":[],"stellar-product-taxonomy":[155,156],"class_list":["post-1896614","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customizing","category-php-function-snippets","stellar-product-taxonomy-event-tickets","stellar-product-taxonomy-event-tickets-plus"],"acf":[],"taxonomy_info":{"category":[{"value":24,"label":"Customizations"},{"value":59,"label":"PHP Functions &amp; Snippets"}],"stellar-product-taxonomy":[{"value":155,"label":"Event Tickets"},{"value":156,"label":"Event Tickets Plus"}]},"featured_image_src_large":["https:\/\/images.theeventscalendar.com\/kb\/uploads\/2023\/02\/social-share-1024x538.png",1024,538,true],"author_info":{"display_name":"Masood","author_link":"https:\/\/theeventscalendar.com\/knowledgebase\/author\/masood\/"},"comment_info":0,"category_info":[{"term_id":24,"name":"Customizations","slug":"customizing","term_group":0,"term_taxonomy_id":24,"taxonomy":"category","description":"","parent":0,"count":157,"filter":"raw","term_order":"0","cat_ID":24,"category_count":157,"category_description":"","cat_name":"Customizations","category_nicename":"customizing","category_parent":0},{"term_id":59,"name":"PHP Functions &amp; Snippets","slug":"php-function-snippets","term_group":0,"term_taxonomy_id":59,"taxonomy":"category","description":"","parent":24,"count":127,"filter":"raw","term_order":"0","cat_ID":59,"category_count":127,"category_description":"","cat_name":"PHP Functions &amp; Snippets","category_nicename":"php-function-snippets","category_parent":24}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1896614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=1896614"}],"version-history":[{"count":9,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1896614\/revisions"}],"predecessor-version":[{"id":1968740,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1896614\/revisions\/1968740"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/media\/1955565"}],"wp:attachment":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=1896614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=1896614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=1896614"},{"taxonomy":"stellar-product-taxonomy","embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/stellar-product-taxonomy?post=1896614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}