I have added a custom field on the checkout page using this:

add_action( 'woocommerce_checkout_fields', 
'woo_add_conditional_checkout_fields' );
function woo_add_conditional_checkout_fields( $fields ) {
foreach( WC()->cart->get_cart() as $cart_item ){
    $product_id = $cart_item['product_id'];
            $fields['billing']['billing_field_newfield'] = array(
                'label'     => __('New Field', 'woocommerce'),
                'placeholder'   => _x('', 'placeholder', 'woocommerce'),
                'required'  => true,
                'class'     => array('form-row-wide'),
                'clear'     => false
return $fields;

Now, I would like to include whatever the user enters in this field in the 'New Order' woocommerce email, however when I go to Woocommerce > Settings > Emails > New Order and put {billing_field_newfield} in the subject, I just get {billing_field_newfield} in the email and not its actual value.

Does anyone know how to do this?



1 Answer 1


Adding custom fields to emails

/* To use: 
   1. Add this snippet to your theme's functions.php file
   2. Change the meta key names in the snippet
   3. Create a custom field in the order post - e.g. key = "Tracking Code" value = abcdefg
   4. When next updating the status, or during any other event which emails 
          the user, they will see this field in their email

add_filter('woocommerce_email_order_meta_keys', 'my_custom_order_meta_keys');
function my_custom_order_meta_keys( $keys ) {
  $keys[] = 'Tracking Code'; // This will look for a custom field called 'Tracking Code' and add it to emails
  return $keys;

Woocommerce documentation: Customizing checkout fields using actions and filters

  • nice solution @vizrantzilpe . Any way of doing all keys begining with x for example I have _participant_h_j_fname where h is the number of the item e.g. 1 for item 1 and j the number of persosn e.g. j for person 1. This may go all the way up to _participant_99_99_fname for example Oct 14, 2020 at 11:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.