plugins - How to include a custom field in the woocommerce email?

admin2025-06-04  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

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

Share Improve this question asked Jan 3, 2019 at 1:25 Bradley JoeBradley Joe 11 silver badge1 bronze badge 2
  • please check url: cloudways/blog/… – vikrant zilpe Commented Jan 3, 2019 at 7:51
  • and docs.woocommerce/document/… – vikrant zilpe Commented Jan 3, 2019 at 8:05
Add a comment  | 

1 Answer 1

Reset to default 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

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749049299a315922.html

最新回复(0)