How to add custom macro for the email?

 
You can add custom macro by using 'rp_wcec_custom_macros' filter.
 
Here's the example of using this:
add_filter('rp_wcec_custom_macros', 'rp_wcec_add_custom_macros', 10, 2);

function rp_wcec_add_custom_macros($custom_macros, $args) {

$custom_macros['macro_key'] = array(
'value' => 'macro_value',
);

return $custom_macros;
}
Note that you will need to replace macro_key and macro_value with actual key and value of your macro.
And of course you can call for your own methods/functions to get that key or value, and use the parameters being sent in this filter ($custom_macros, $args).
 
Here's the more advanced example that allows to extract some meta data from the order and use that as macro's value:
add_filter('rp_wcec_custom_macros', 'rp_wcec_add_custom_macros', 10, 2);

function rp_wcec_add_custom_macros($custom_macros, $args) {

    // Configure the parameters
    $custom_macro_key = 'custom_macro_key';
    $custom_macro_label = __('custom_macro_label');
    $custom_macro_value = 'no value'; // default value
    
    // Get the order in args
    $order = $args['order'];
    
    // Check if order is actually an object
    if (is_object($order)) {
        
        // Get order id correctly
        $id = $order->get_id();
        
        // Change the value to needed order/post meta
        $custom_macro_value = get_post_meta($id, 'YOUR_META_KEY_HERE', true);
    }
    
    // Add custom macro and return the whole array
    $custom_macros[$custom_macro_key] = array(
        'label' => $custom_macro_label,
        'value' => $custom_macro_value,
    );
    
    return $custom_macros;  
}
 

 

Here's another advanced example that allows using the values from our WooCommerce Custom Fields plugin.

Have more questions? Submit a request