WooTickets Attendee List

One of the biggest missing features in Tri.be’s WooTickets plugin is the ability to add/manage WooTickets attendee lists.

While plugins like Event Espresso are more robust in this regard, our clients decided to go with WooTickets for a number of reasons, though already having a WooCommerce store on the site was probably the biggest. The expectation was that this functionality would develop in the WooTickets plugin as time went on, but unfortunately that hasn’t happened yet (going on two years)… but hopefully will soon.

In the meantime, the Wootickets Attendees List plugin by Buzz Web Media goes a long way towards remedying this, offering basic functionality to add/manage attendees based on the number of tickets being purchased. However, the one thing lacking is the ability to easily view attendees in the WordPress Admin and also to receive Attendee lists in the Admin email receipts (or customer receipts for that matter).

Currently, the attendee information is visible in the Order Admin under custom fields, but for new users of WordPress, it can be confusing. It’s also possible that this section of the admin is turned off in the screen options for the user, and they’re not seeing it at all.

Updated: A plugin version is now available for download, including all code on this page (some of which has been updated). If you want the latest code, with the easiest install possible, download this plugin, and activate it after installing the Buzz Web Media Plugin. This post will be updated ASAP with new code (03/16/15).

Note: This is currently for WooCommerce version 2.2.x, if there are changes for 2.3, we will update this post.

Updated: For Woocommerce 2.3, it’s easiest to just add the code to your theme’s functions.php file. Unless you want to make some of the visual changes below in the WP Admin, you can safely paste the code just below into your functions.php file to view the Attendees in your admin. To receive the list in your emails, paste in the 2.3 code in the emails section below that, and you’ll be good to go.

Add Attendee Lists to WooCommerce Order Page

Fortunately, it’s pretty straightforward to add this functionality. First, download the plugin from Buzz Web Media.

Then find the closing php tag which looks like this:

?>

And paste in the following code just before that.

/**
* Display field value on the admin order page
**/
add_action( 'woocommerce_admin_order_data_after_billing_address', 'ci_custom_checkout_field_display_admin_order_meta', 10, 1 ); 

function ci_custom_checkout_field_display_admin_order_meta($order){

	$attendees_info = get_post_meta( $order->id );

		$a_i = 1;

		foreach ($attendees_info as $attendee_info) {

			$curr_name_key = $a_i.' Attendee Name';
			$curr_name_value =  get_post_meta( $order->id, $curr_name_key, true);

			$curr_email_key = $a_i.' Attendee Email';
			$curr_email_value =  get_post_meta( $order->id, $curr_email_key, true);
			// delete the following two lines if you're not using version with phone number
			$curr_phone_key = $a_i.' Attendee Phone';
			$curr_phone_value =  get_post_meta( $order->id, $curr_phone_key, true);

			if ( $curr_name_value ==  "" ) {
				// do nothing
			} else {
	        	echo '<hr>';
	        	echo '<p><strong>Attendee ' . $a_i . ' Name :</strong> '.$curr_name_value.'<br />';
				echo '<strong>Attendee ' . $a_i . ' Email :</strong> '.$curr_email_value.'<br />';
                                // delete the following line if you're not using version with phone number
				echo '<strong>Attendee ' . $a_i . ' Phone :</strong> '.$curr_phone_value.'</p>';
				echo '<hr>';

			$a_i++;

			} // end blank post meta check

		} // end foreach loop

} // end display function

Upload the file to your plugins folder, activate and you’ll be good to go. We did tweak some of the other formatting above to clean things up a bit. The main thing we did was to hook into the ‘woocommerce_before_order_notes’ hook instead of ‘woocommerce_after_order_notes’. We also added this bit of css, to widen out the output, before line 66:

/* CUSTOM */
#order_comments_field {
	width: 100% !important;
}
/* END CUSTOM */

You might want to do the same, but shouldn’t be necessary.

Add Attendee Lists to WooCommerce Admin Emails

If you’d like to also receive the attendees list in your admin (or customer) emails, that’s pretty straightforward as well. As @Mike points out below, this post has been updated for Woocommerce 2.3.X and up. Just paste the following code into your theme’s functions.php file:

add_action( 'woocommerce_email_order_meta', 'ci_add_attendees_to_email' );

function ci_add_attendees_to_email() {

	global $order;

	$attendees_info = get_post_meta( $order->id );

		$a_i = 1;

			echo '<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;margin-top: 30px;" border="1" bordercolor="#eee"><thead>';
	        echo '<tr>';
	        echo '<th scope="col" colspan="3" style="text-align:left; border: 1px solid #eee;text-align: center;">Event Attendees</th>';
	        echo '</tr></thead><tbody><tr>';

		foreach ($attendees_info as $attendee_info) {

			$curr_name_key = $a_i.' Attendee Name';
			$curr_name_value =  get_post_meta( $order->id, $curr_name_key, true);
			//echo $curr_name_value;
			$curr_email_key = $a_i.' Attendee Email';
			$curr_email_value =  get_post_meta( $order->id, $curr_email_key, true);
			//echo $curr_email_value;
			$curr_phone_key = $a_i.' Attendee Phone';
			$curr_phone_value =  get_post_meta( $order->id, $curr_phone_key, true);
			//echo $curr_phone_value;

			if ( $curr_name_value ==  "" ) {
				// do nothing
			} else {
				echo '<tr>';
	        	echo '<td style="text-align: center;"><strong>Name:</strong><br />'.$curr_name_value.'</td>';
				echo '<td style="text-align: center;"><strong>Email:</strong><br />'.$curr_email_value.'</td>';
				echo '<td style="text-align: center;"><strong>Phone:</strong><br />'.$curr_phone_value.'</td>';
				echo '</tr>';

			$a_i++;

			echo '</tbody></table>';

			} //end blank post meta check

		} //end foreach loop

}

For Woocommerce 2.2.X and down, we just edited the templates directly. Copy the emails/admin-new-order.php template from Woocommerce into your themes Woocommerce folder (for more on customizing Woocommerce template files, read this tutorial).

Then, just above this line:

<?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>

Paste in:

<?php
/**
* Display attendees information in the admin email
**/
		$attendees_info = get_post_meta( $order->id );

		$a_i = 1;

		foreach ($attendees_info as $attendee_info) {

			$curr_name_key = $a_i.' Attendee Name';
			$curr_name_value =  get_post_meta( $order->id, $curr_name_key, true);
			$curr_email_key = $a_i.' Attendee Email';
			$curr_email_value =  get_post_meta( $order->id, $curr_email_key, true);
			// delete the following two lines if you're not using version with phone number
			$curr_phone_key = $a_i.' Attendee Phone';
			$curr_phone_value =  get_post_meta( $order->id, $curr_phone_key, true);

			if ( $curr_name_value ==  "" ) {
				// do nothing
			} else {
	        	echo '<hr>';
	        	echo '<p><strong>Attendee ' . $a_i . ' Name :</strong> '.$curr_name_value.'<br />';
				echo '<strong>Attendee ' . $a_i . ' Email :</strong> '.$curr_email_value.'<br />';
                                // delete the following line if you're not using version with phone number
				echo '<strong>Attendee ' . $a_i . ' Phone :</strong> '.$curr_phone_value.'</p>';
				echo '<hr>';

			$a_i++;

			} //end blank post meta check

		} //end foreach loop

/**
* end attendees display function
**/ ?>

Add Attendee Lists to WooCommerce Admin Plain Text Emails

If your admins are receiving plain text emails, you’ll also want to put the same code into that template. So in the emails/plain/admin-new-order.php template, find the ending line:

echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );

Before that line, you’ll want to add:

/**
* Display attendees information in the plain text admin email
**/
	$attendees_info = get_post_meta( $order->id );

		$a_i = 1;

		foreach ($attendees_info as $attendee_info) {

			$curr_name_key = $a_i." Attendee Name";
			$curr_name_value =  get_post_meta( $order->id, $curr_name_key, true);
			$curr_email_key = $a_i." Attendee Email";
			$curr_email_value =  get_post_meta( $order->id, $curr_email_key, true);
			// delete the following two lines if you're using the version without phone number
			$curr_phone_key = $a_i." Attendee Phone";
			$curr_phone_value =  get_post_meta( $order->id, $curr_phone_key, true);

			if ( $curr_name_value ==  "" ) {
				// do nothing
			} else {

	        	echo "\n****************************************************\n\n";
	        	echo "\nAttendee " . $a_i . " Name : " . $curr_name_value . "\n";
				echo "\nAttendee " . $a_i . " Email : " . $curr_email_value . "\n";
                                // delete the following line if you're using the version without phone number
				echo "\nAttendee " . $a_i . " Phone : " . $curr_phone_value . "\n";
				echo "\n****************************************************\n\n";

			$a_i++;

			} //end blank post meta check

		} //end foreach loop

/**
* end display attendees function
**/

That’s it, you’ll be good to go!

If you want to add to the customer emails, just repeat the process for adding to the admin emails the the appropriate customer email (based on when you want them to receive this information— when the order is processed, completed, etc.).

34 Comments

  1. PATRICE INFORMATIQUE on February 25th, 2016 at 12:31 am

    Hi John

    Great tuto and plug’in save my life from my customer…
    Just a question how can i display this form for a category product type

    Thanks for your helps

    Patrice



  2. MarcyKate on September 10th, 2015 at 3:56 pm

    I’m so glad I found this plugin – it’s just what I need to sell our workshop registrations. However, it also appears to be bringing up these required event attendee fields on ALL checkout pages, not just ones associated with events. For example, we also plan to sell online courses and possibly manuals and other such things for which those fields don’t make much sense. I’m sure I must have something set incorrectly but I can’t figure out what it is. Any suggestions to make it only show up for events would be helpful!



    • john on September 10th, 2015 at 4:24 pm

      Hi MarcyKate, this page has gotten a little out of order, we need to go in and clean it up and properly compile the information that’s here. There’s an answer above to this issue, but it’s buried in the comments.

      That’s a bug in the original BuzzMedia plugin – if you change line 117 to the following

      if (get_post_meta($_product->id, '_tribe_wooticket_for_event', true) > 0)

      From this:

      if (get_post_meta($_product->id, '_tribe_wooticket_for_event') > 0)

      That should do the trick for you – if not let us know! 🙂



  3. martijn haan on August 21st, 2015 at 3:05 am

    Hi,
    I would only like to see the attendee name option when a customer buys more than one ticket for an event.
    Because when he/she buys one ticket, almost always his own name is the attendee name, and than I do not want to double info.
    Second. Could the attendee name otherwise be prefilled with the ticket buyers name and email?
    So if he/she buys for someone else, the customer can himself change this info?

    greetings, Martijn



  4. john on August 15th, 2015 at 9:32 am

    Hi Jamie — good point, I was hoping someone would chime in with a good solution. It’s not *too* difficult to accomplish, but does require custom coding.

    To repeat something I said above, I think for functionality like this, I’d take a look at Events Espresso. The ECP Tickets plugin just isn’t designed/built for more than just the basics. I do hope this will change in the future, but if you’re doing a lot of events, or need to have more control over the ticketing process, I think Events Espresso makes a huge amount of sense.

    You wouldn’t be using Woocommerce for checkout, which could potentially be an issue, but if that isn’t a deal-breaker for you (if you don’t mind one products checkout and one events checkout), take a look.



  5. Jamie O'Donnell on July 19th, 2015 at 4:27 am

    Can anyone advise a solution to a customer who may be purchasing tickets to multiple events? At the moment the Attendee List plugin just lists fields for the total number of attendees with no way of differentiating which field belongs to which event.



  6. Ian on April 22nd, 2015 at 1:38 am

    Hi,

    This is superb and I wish I’d found this post sooner as spent ages writing my own version 🙁

    The one issue I’m stuck on and hope you can assist with, how can you add the extra information to the attendee list CSV export?

    For the life of me, I can’t seem to tie this in

    Any help/pointers are very much appreciated

    Thanks for your time

    Kind Regards,

    Ian



    • john on April 22nd, 2015 at 8:27 am

      Yes, this is the sticking point Ian. Both Simon and I had looked into it, and Tri.be doesn’t have any functions to hook into that functionality so you’re going to have to edit core files which is a bit of a pain long-term, and I think it’s going to be a bit of a project to get it working.

      My final thinking was the easiest solution (if you don’t have to do a lot of exports all the time) is to use something like WP CSV: https://wordpress.org/plugins/wp-csv/ to export your orders into CSV, import that into Excel or whatever you’re using, and basically manually merge (or perhaps could be automated) the Wootickets CSV export with your orders export.

      That’s the way I’d probably go — like I said, working with the .csv export is a much bigger project than this was…

      If you do go this route, please do report back. Would love to hear how you solve the problem. 🙂



      • ian on April 24th, 2015 at 2:29 am

        One thing I tried was this…

        1) Create a file called export.php. I saved this in the main root directory (along with wp-config.php, wp-load.php etc). My export.php file had this:

        #define('WP_USE_THEMES', false);
        require_once('wp-load.php');

        if (isset($_GET['event_id'])) {

        global $wpdb;

        $meta_key = $_GET['event_id'];
        $filename = $wpdb->get_var( $wpdb->prepare(
        "
        SELECT post_name
        FROM `$wpdb->posts`
        WHERE `ID` =%s
        LIMIT 1
        ",
        $meta_key
        ) );

        $event_id = $_GET['event_id'];

        $select = "
        SELECT pm1.meta_value AS 'Order #', pm2.meta_value AS 'Attendee Names'
        FROM $wpdb->postmeta pm, $wpdb->postmeta pm1, $wpdb->postmeta pm2
        WHERE pm.meta_key = '_tribe_wooticket_event'
        AND pm.meta_value = '".$event_id."'
        AND pm1.meta_key = '_tribe_wooticket_order'
        AND pm.post_id = pm1.post_id
        AND pm2.meta_key LIKE '% Attendee Name'
        AND pm1.meta_value=pm2.post_id
        GROUP BY pm2.meta_id
        ORDER BY `pm1`.`post_id` DESC
        ";

        $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );

        $fields = mysql_num_fields ( $export );

        for ( $i = 0; $i < $fields; $i++ ) {
        $header .= mysql_field_name( $export , $i ) . "\t";
        }

        while( $row = mysql_fetch_row( $export ) ) {
        $line = '';
        foreach( $row as $value ) {
        if ( ( !isset( $value ) ) || ( $value == "" ) ) {
        $value = "\t";
        } else {
        $value = str_replace( '"' , '""' , $value );
        $value = '"' . $value . '"' . "\t";

        }
        $line .= $value;
        }
        $data .= trim( $line ) . "\n";
        }
        $data = str_replace( "\r" , "" , $data );

        if ( $data == "" ) {
        $data = "\n(0) Attendees Registered!\n";
        }

        header("Content-type: application/octet-stream");
        header("Content-Disposition: attachment; filename=".$filename."-Attendees.csv");
        header("Pragma: no-cache");
        header("Expires: 0");
        print "$header\n$data";
        }else{
        echo 'No Event Information Available. If you believe you\'re seeing this message in error, please contact us on XXXX';
        }

        Then in the-events-calendar/lib/tickets I did edit tribe-tickets-attendees.php to include a custom link which passed the event_id to the export.php file via the URL

        Not ideal but did allow a list of guest names to be exported.

        I’m by no means a developer/coder so wonder if there is a better solution!?

        Such a shame this just isn’t part of the default functionality!!



  7. Danish Abdullah on April 12th, 2015 at 8:36 am

    Hi,

    I hope all of the persons are happy and well… and thankyou for these great extensions work…

    Can you people explain me about the “Event Attendee’s” meta values…??? Can we add more fields… e.g. in my case we want to add fields for the attendee’s…

    1) First Name
    2) Last Name
    3) Email
    4) Company
    5) Job Title

    Please let me about it guys…

    Regards,
    Danish Abdullah



    • john on April 16th, 2015 at 7:45 am

      Thank you, Danish — yes, this would be very straightforward, not complicated at all but you’ll need to make the changes in a few places — both in the plugin on this site and in the original plugin.

      Basically, in the original plugin if you copy lines 50-55 and paste in a new field for each of your new values (changing the values), add them also to line 82 in the same format, and then copy line 103 and pasting in a new line for each of those new values.

      For the extension downloaded on this site, once the above changes are made it should be clear as to where to add these new fields to it as well.

      If you need an example, go to BuzzWebMedia’s website and download both versions and compare the one without the phone to the one with the phone — that should make it clear what changes need to be made.



  8. Jonah West on April 8th, 2015 at 8:47 am

    Thanks for the reply John! Yeah, I monkeyed with the code a bit but couldn’t get it to work. Not a PHP pro… I’d love to get this working again and would be happy to zap you some moola to expedite getting this fixed 🙂 Let me know if that’s an arrangement we can make. I’m sure others would appreciate a fix as well!



    • john on April 15th, 2015 at 6:15 pm

      Hey Jonah — it’s just a bug in the original plugin, nothing to do with WC 2.3.X like I was thinking…

      Change this line (117 in my copy):

      if (get_post_meta($_product->id, '_tribe_wooticket_for_event') > 0)

      To this:

      if (get_post_meta($_product->id, '_tribe_wooticket_for_event', true) > 0)

      That’ll fix it. 🙂



  9. Jonah West on April 5th, 2015 at 9:07 am

    Hi guys, thanks so much for this plugin! For some reason, I’m seeing attendee inputs even when I do not have a product with tickets in my cart… I know it must be related to the wt_count_attendees() function but I can’t figure out what’s wrong. I’m running WooCommerce 2.3.7

    Any ideas?

    Thanks,
    Jonah



    • john on April 6th, 2015 at 8:33 pm

      Yes, I’m seeing that too. The site we’ve used this with successfully only has ticket products, so I’m not sure when this started for sure, but I’d guess 2.3 has changed the structure of the product objects in the cart. It’s an issue with the BuzzMedia plugin, but we can take a longer look soon and report back.



    • Ian on April 22nd, 2015 at 1:43 am

      Hi

      I had similar and had to alter the buzz media plugin.

      Around line 31 I had:

      if($attendee_count > 0) {

      I changed it to

      if($attendee_count > 1) {

      That seemed to do it for me!

      I also found the formatting a tad odd so commented out line 32:

      #echo ""; //close the Billing Address section to create new group of fields
      </code
      And moved this to after the for loop (lines 36 - 57)

      Hope that helps!



      • john on April 22nd, 2015 at 8:12 am

        It’s interesting that worked, or that you didn’t have to do “>= 1”. The issue was the get_post_meta function was returning an array instead of the actual quantity, so the comparison was meaningless… specifying ‘true’ made sure it returned that quantity number. Maybe it is actually a change in Woocommerce that broke this after all. Are you using the current version?

        Thanks for taking the time to post this Ian!



        • ian on April 24th, 2015 at 2:18 am

          Hmmm, perhaps I should change that line to >=1 as you say.

          It certainly makes more sense!



          • ian on April 24th, 2015 at 4:19 am

            Actually, you’re right this doesn’t make a difference.

            Equally, I’ve found as I use Worldpay I get the following error:

            Fatal error: Call to undefined method WooCommerce::add_error() i

            This is because the field was hidden and seemed to be looking for input from the Name/ Email fields.

            If you show the form and add details its fine. Even if you change the required values to false, it still needs the input (which is weird!)

            This is a right pain as it looks pants that it shows the Form even if you have a none ticket product in the basket/checkout

            Back to the drawing board me thinks!!



  10. john on March 16th, 2015 at 8:04 pm

    @Richard — I’ve emailed you the plugin, and also updated this post. We’ll rewrite this post to simplify things shortly.



  11. Richard on March 14th, 2015 at 8:19 am

    Cool re. the plugin :-). Part of the problem with the code above is the use of < instead of .

    Shame about the export functionality :-(.

    I await the email. Thanks.

    R.



  12. Richard on March 13th, 2015 at 4:57 pm

    Hi John,

    Thanks for writing this post.

    I am running WooTickets on two sites, one with WooCommerce 2.0.20 and one with WooCommerce 2.3.6. I tried adding the above code to my functions.php theme file on the latter site and got errors.

    Are you able to do as you mentioned above and condense the code into a downloadable plugin? I really hope so.

    Thanks,
    Richard



    • john on March 14th, 2015 at 7:01 am

      Hi Richard — yes, give us a day or so. You’re absolutely right. We had looked into the .csv export and Simon is correct in his assessment. It’s really something that Tri.be needs to integrate on their end.

      But for the features on this page — we’ll wrap that up in a plugin ASAP. We’ll email you when the page has been updated.



  13. Simon Guilliard on March 3rd, 2015 at 7:28 am

    Just realised that I didn’t post my code for adding ticket attendee details to the the attendee admin page:


    function add_oxpro_custom_attendee_column( $columns ) {
    $columns['oxpro_ticket_name_id'] = 'Ticket Dets';
    return $columns;
    }

    function populate_oxpro_attendee_column( $existing, $item, $column ) {
    if ( 'oxpro_ticket_name_id' !== $column ) return $existing;
    $order = new WC_Order( $item['order_id'] );
    //var_dump ($order);
    $attendees_info = get_post_meta( $order->id);
    $a_i = 1;

    foreach ($attendees_info as $attendee_info) {

    $curr_name_key = $a_i .' Attendee Name';
    $curr_name_value = get_post_meta( $order->id, $curr_name_key, true);
    //echo $curr_name_value;
    $curr_email_key = $a_i .' Attendee Email';
    $curr_email_value = get_post_meta( $order->id, $curr_email_key, true);
    //echo $curr_email_value;
    $curr_phone_key = $a_i .' Attendee Phone';
    $curr_phone_value = get_post_meta( $order->id, $curr_phone_key, true);
    //echo $curr_phone_value;

    if ( $curr_name_value == "" ) {
    // do nothing
    } else {
    //echo '';
    echo '#' . $a_i . ' Name : '.$curr_name_value.'';
    echo '#' . $a_i . ' Email : '.$curr_email_value.'';
    // delete the following line if you're not using version with phone number
    echo '#' . $a_i . ' Phone : '.$curr_phone_value.'';
    echo '';

    $a_i++;
    }
    }
    }

    This is all added using the following filters:

    add_filter( 'manage_tribe_events_page_tickets-attendees_columns', 'add_oxpro_custom_attendee_column', 20 );
    add_filter( 'tribe_events_tickets_attendees_table_column', 'populate_oxpro_attendee_column', 10, 3 );

    Sorry, that might explain what I’m trying to do. I now want to take that same information & add to the CSV & Email exports that are generated from the same page.



  14. john on March 3rd, 2015 at 7:05 am

    Hi Simon — I’ll also look at the export functionality for you, and condense this code (and post) all into one plugin that you can just download. Now that there’s multiple versions of the code for different WC versions, it’s not as straightforward.

    I think I know what’s happening for you — put the 2.3 email code in the functions.php file of your theme — in WC 2.3, it’s easiest if you don’t edit the email template files but just place the code in your theme and that will add the attendees to all your emails with the hook:

    woocommerce_email_order_meta action

    I’m sure it’s similar with the export functionality, I will report back on that later today – thanks for that link, will start there!



  15. Simon Guilliard on March 3rd, 2015 at 6:59 am

    Ok, seems this can’t be done without editing core plugin files, but I can live with that by just creating a backup of the file I’ve edited and managing any version upgrades accordingly.

    Seems the data is filtered out by the _generate_filtered_attendees_list() private function in the-events-calendar/lib/tickets/tribe-tickets-pro.php

    This function is used by both maybe_generate_attendees_csv() & ajax_handler_attendee_mail_list()



  16. Simon Guilliard on March 3rd, 2015 at 6:24 am

    I’m hoping that the CSV export uses the same code base as the Email…



  17. Simon Guilliard on March 3rd, 2015 at 6:22 am


  18. Simon Guilliard on March 3rd, 2015 at 6:14 am

    Hi John,

    I am using WC2.3+ and adding the attendees is working fine now I’ve made the changes I mentioned before. Before the change, the attendees weren’t showing up.

    Now I’m trying to fidn the right array from within the-events-calendar/views/tickets/attendees-email.php in order to do the same thing on the attendees email. The attendees show up in the attendees list, but not on the email when clicking the ’email’ or ‘export’ buttons’ ‘Print’ works ok, but this is just a screen dump of what’s there.

    Not sure if that answers your question?



  19. Simon Guilliard on March 2nd, 2015 at 6:26 pm

    To get the second function for adding attendees to Woocommerce Admin Emails I had to make the following change:


    function ci_add_attendees_to_email($order) {

    //global $order; Comment out or remove this

    Now if I someone has already got these fields to show up in the email or export version of the Attendees list (the-events-calendar/views/tickets/attendees-email.php) you’ll save me a job… 🙂



    • john on March 2nd, 2015 at 6:33 pm

      Hi Simon – haven’t tried the export list, but the code for the emails are above… do you have WC 2.3+ and only want the emails going to the admin?



  20. john on February 20th, 2015 at 2:44 pm

    Thanks @Mike, appreciate you asking about this. The post has been updated to reflect the fact that’s it’s easier/better to leave the email templates alone and put both pieces of code in your functions.php file.



  21. Mike on February 19th, 2015 at 5:32 pm

    The code snippet got truncated. It’s the get template code for ’emails/email-addresses.php’ snippet to include attendee info in emails.



  22. Mike on February 19th, 2015 at 5:31 pm

    I don’t see this code:

    $order ) ); ?>

    In any of the woocommerce email files. Did it get updated in WC 2.3x? I am running 2.3.4 on a local sandbox to try and (finally) update our site to current WC and TEC Pro levels.

    Thanks SO much for this help! Also, if you are interested in some light freelance work, we need some light modifications of the default display of TEC Pro event listing pages (/wp-admin/edit.php?post_type=tribe_events). I will email with more details.