0

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?

Thanks

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

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.