I suggest   use this plugin   to add snippets   (otherwise you should create child theme  and put code to  functions.php )

Following plugins supported: PDF Product Vouchers, Woocommerce Subscriptions, WooCommerce Bookings, WooCommerce TM Extra Product Options

WooCommerce PDF Invoices & Packing Slips

Creditnote Fields

// add Credit Note details
add_filter('woe_get_order_fields', 'woe_add_order_fields');
function woe_add_order_fields($fields) {
	$fields['credit_note_number'] = array( 'label' => 'Credit Note Number', 'colname' => 'Credit Note Number', 'checked' => 1 );
	$fields['credit_note_date'] = array( 'label' => 'Credit Note Date', 'colname' => 'Credit Note Date', 'checked' => 1 );
	$fields['formatted_credit_note_number'] = array( 'label' => 'Formatted Credit Note Number', 'colname' => 'Formatted  Credit Note Number', 'checked' => 1 );
	return $fields;
}
add_filter('woe_get_order_value_credit_note_number', 'woe_get_credit_note_field', 10, 3);
add_filter('woe_get_order_value_credit_note_date', 'woe_get_credit_note_field', 10, 3);
add_filter('woe_get_order_value_formatted_credit_note_number', 'woe_get_credit_note_field', 10, 3);
function woe_get_credit_note_field($value,$order, $field) {
	 $refunds = $order->get_refunds();
 	 if ( !empty( $refunds ) )  // take 1st!
		$value = get_post_meta( $refunds[0]->id, '_wcpdf_'.$field, true);
	return $value;
}

PDF Product Vouchers

// Export product "Voucher Number"
// add product field 
add_filter('woe_get_order_product_fields', function ($fields,$format) {
	$fields['voucher'] = array( 'label' => 'Voucher Number', 'colname' => 'Voucher Number', 'checked' => 1 );
	return $fields;
}, 10, 2);

// add product field 
add_filter('woe_get_order_product_value_voucher', function ($value,$order, $item, $product) {
	$voucher_meta = $item->get_meta( '_voucher_id', false );
	if( $voucher_meta ) {
		$voucher = wc_pdf_product_vouchers_get_voucher( $voucher_meta[0]->value );
		if( $voucher )
			$value = $voucher->get_voucher_number();
	}
	return $value;
}, 10, 4);

Woocommerce Subscriptions

subscription-new-fields

// add status and dates as new columns
class WOE_Subscription_Fields_mod {
	function __construct() {
		add_filter('woe_get_order_fields', array($this,'add_order_fields') );
		add_action('woe_order_export_started', array($this,'get_subscription_details') );
		add_filter('woe_fetch_order_row', array($this,'fill_new_columns'), 10, 2);
	}
	
	function add_order_fields($fields) {
		$fields['sub_status'] = array('segment'=>'cart','label'=>'Sub. Status', 'colname'=>'Sub. Status', 'value'=>'','checked'=>1);
		$fields['sub_start_date'] = array('segment'=>'cart','label'=>'Sub. Start Date', 'colname'=>'Sub. Start Date', 'value'=>'','checked'=>1);
		$fields['sub_next_payment'] = array('segment'=>'cart','label'=>'Sub. Next Payment', 'colname'=>'Sub. Next Payment', 'value'=>'','checked'=>1);
		$fields['sub_last_order_date'] = array('segment'=>'cart','label'=>'Sub. Last Order Date', 'colname'=>'Sub. Last Order Date', 'value'=>'','checked'=>1);
		return $fields;
	}
	
	function get_subscription_details($order_id) {
		$this->sub = array();
		
		if(  WC_Order_Export_Data_Extractor::$object_type=='shop_order' ) {
			$subs = wcs_get_subscriptions_for_order($order_id, array('order_type'=>'any'));		
			$subs = array_values($subs); 
			if(!$subs)
				return $order_id;
			$sub = array_shift($subs);	
		} elseif(WC_Order_Export_Data_Extractor::$object_type=='shop_subscription' ) {
			$sub = wcs_get_subscription($order_id);
		} else {
			return $order_id;// unknow type
		}	
		$this->sub['status'] = $sub->status;
		//$this->sub['start_date'] = $sub->get_date_to_display("start_date"); //was 
		
		$this->sub['start_date'] = date_i18n( wc_date_format(), $sub->get_time( 'date_created', 'site' ) );
		$this->sub['next_payment'] = $sub->get_time( 'next_payment_date', 'site' ) ? date_i18n( wc_date_format(), $sub->get_time( 'next_payment_date', 'site' ) ) : '-';
		$this->sub['last_order_date'] = date_i18n( wc_date_format(), $sub->get_time( 'last_order_date_created', 'site' ) );
		return $order_id;
	}
	
	// add new values to row
	function fill_new_columns($row,$order_id) {
		foreach($this->sub as $k=>$v)
			if(isset($row['sub_'.$k]))
				$row['sub_'.$k] = $v;
		return $row;
	}
}
new WOE_Subscription_Fields_mod();

WooCommerce Bookings

class WOE_Bookings{
	function __construct() {
		add_filter('woe_get_order_product_fields',array($this,'add_product_fields') );
		add_filter('woe_get_order_product_item',array($this,'fetch_booking') );
		
		add_filter('woe_get_order_product_value_booking_start_date', array($this,'get_booking_field_start_date'), 10, 4 );
		add_filter('woe_get_order_product_value_booking_start_time', array($this,'get_booking_field_start_time'), 10, 4 );
		add_filter('woe_get_order_product_value_booking_end_date', array($this,'get_booking_field_end_date'), 10, 4 );
		add_filter('woe_get_order_product_value_booking_end_time', array($this,'get_booking_field_end_time'), 10, 4 );
	}	
	
	function add_product_fields($fields) {
		$fields['booking_start_date'] = array('label'=>'Booking Start Date','colname'=>'Booking Start Date','checked'=>1,'segment'=>'cart');
		$fields['booking_start_time'] = array('label'=>'Booking Start Time','colname'=>'Booking Start Time','checked'=>1,'segment'=>'cart');
		$fields['booking_end_date'] = array('label'=>'Booking End Date','colname'=>'Booking End Date','checked'=>1,'segment'=>'cart');
		$fields['booking_end_time'] = array('label'=>'Booking End Time','colname'=>'Booking End Time','checked'=>1,'segment'=>'cart');
		return $fields;
	}
	
	// booking for item 
	function fetch_booking($item) {
		global $wpdb;
		$this->booking = false;
		$booking_id = $wpdb->get_var( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key= '_booking_order_item_id' AND meta_value=" . intval( $item->get_id() ) );
		if( $booking_id ) {
			$this->booking =  new WC_Booking($booking_id);
		}
		return $item;
	}
	
	function get_booking_field_start_date($value,$order, $item, $product) {
		return $this->booking ? date_i18n( wc_date_format(), $this->booking->start) : $value;
	}		
	function get_booking_field_start_time($value,$order, $item, $product) {
		return $this->booking ? date_i18n( wc_time_format(), $this->booking->start) : $value;
	}		
	function get_booking_field_end_date($value,$order, $item, $product) {
		return $this->booking ? date_i18n( wc_date_format(), $this->booking->end) : $value;
	}		
	function get_booking_field_end_time($value,$order, $item, $product) {
		return $this->booking ? date_i18n( wc_time_format(), $this->booking->end) : $value;
	}		
}	
new WOE_Bookings();

WooCommerce TM Extra Product Options

You should EDIT  and TWEAK code , see comments!

class WOE_add_extra_fields {
	var $tm_fields = array('Age','Sex'); // EDIT list here 
	function __construct() {
		add_filter('woe_get_order_product_fields',array($this,'add_product_fields') );
		add_filter('woe_get_order_product_item_meta', array($this,'fill_tm_fields') );
	}	
	
	function add_product_fields($fields) {
		foreach($this->tm_fields as $pos=>$name) {
			$fields['tm_field_'.$pos] = array('label'=>$name,'colname'=>$name,'checked'=>1);
		}	
		return $fields;
	}
	
	//TWEAK  output for each field 
	function format_line($tm_field) {
		return $tm_field['value'];  // can use $tm_field['name'], $tm_field['price'] , $tm_field['quantity'] 
	}	
	
	function fill_tm_fields($item_meta) {
		// Gather TM values to array
		$product_fields = array();
		$product_fields[] = array();
		
		//Cart Fees
		if( isset($item_meta["_tmcartfee_data"])   AND  is_array($tmfields = maybe_unserialize($item_meta["_tmcartfee_data"][0]))  ) {
			foreach($tmfields[0] as $tm_field) {
				$name = $tm_field['name'];
				if( !isset($product_fields[$name]) ) 
					$product_fields[$name] = array();
				$product_fields[$name][] = $this->format_line($tm_field); 
			}
		}
		
		//Cart Items
		if( isset($item_meta["_tmcartepo_data"])   AND  is_array($tmfields = maybe_unserialize($item_meta["_tmcartepo_data"][0]))  ) {
			foreach($tmfields as $tm_field) {
				$name = $tm_field['name'];
				if( !isset($product_fields[$name]) ) 
					$product_fields[$name] = array();
				$product_fields[$name][] = $this->format_line($tm_field); 
			}
		}
		
		//make list 
		foreach($product_fields as $name=>$values)
			$product_fields[ $name ] = join("\n", $values);
		
		// add to item meta 
		foreach($this->tm_fields as $pos=>$name) {
			 // it must be array !
			$item_meta['tm_field_'.$pos] = array( isset($product_fields[$name]) ? $product_fields[$name] : "" );
		}	
		return $item_meta;
	}
}	
new WOE_add_extra_fields();