To add a custom active placeholder {delivery_date}
in woocommerce email subject, you will use the following hooked function.
You will check before, that delivery_date
is the correct post meta key used to save the checkout field value to the order (check in wp_postmeta
database table for the order post_id
).
The code:
add_filter( 'woocommerce_email_format_string' , 'add_custom_email_format_string', 10, 2 );
function add_custom_email_format_string( $string, $email ) {
$meta_key = 'delivery_date'; // The post meta key used to save the value in the order
$placeholder = '{delivery_date}'; // The corresponding placeholder to be used
$order = $email->object; // Get the instance of the WC_Order Object
$value = $order->get_meta($meta_key) ? $order->get_meta($meta_key) : ''; // Get the value
// Return the clean replacement value string for "{delivery_date}" placeholder
return str_replace( $placeholder, $value, $string );
}
Code goes in function.php file of your active child theme (or active theme). It should works.
Then in Woocommerce > Settings > Emails > "New Order" notification, you will be able to use the dynamic placeholder {delivery_date}
…